110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz/*
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * CDDL HEADER START
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz *
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * The contents of this file are subject to the terms of the
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * Common Development and Distribution License (the "License").
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * You may not use this file except in compliance with the License.
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz *
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * or http://www.opensolaris.org/os/licensing.
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * See the License for the specific language governing permissions
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * and limitations under the License.
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz *
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * When distributing Covered Code, include this CDDL HEADER in each
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * If applicable, add the following below this CDDL HEADER, with the
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * fields enclosed by brackets "[]" replaced with your own identifying
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * information: Portions Copyright [yyyy] [name of copyright owner]
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz *
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * CDDL HEADER END
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz */
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz/*
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz * Use is subject to license terms.
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz */
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#ifndef _FPC_IMPL_4V_H
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#define _FPC_IMPL_4V_H
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#pragma ident "%Z%%M% %I% %E% SMI"
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#ifdef __cplusplus
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartzextern "C" {
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#endif
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#ifndef _ASM
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartztypedef uint64_t devhandle_t;
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#define DEVHDLE_MASK 0xFFFFFFF
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartzextern int fpc_get_fire_perfreg(devhandle_t dev_hdl, int regid, uint64_t *data);
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartzextern int fpc_set_fire_perfreg(devhandle_t dev_hdl, int regid, uint64_t data);
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#endif /* _ASM */
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz/*
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz * Fire performance counter fasttraps.
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz *
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz * These are in the HSVC_GROUP_FIRE_PERF hypervisor group of functionality.
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz */
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define FIRE_GET_PERFREG 0x120
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define FIRE_SET_PERFREG 0x121
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz/*
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz * Performance counter register definitions.
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz */
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_JBC_SEL 0
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_JBC_CNT0 1
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_JBC_CNT1 2
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_IMU_SEL 3
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_IMU_CNT0 4
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_IMU_CNT1 5
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_MMU_SEL 6
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_MMU_CNT0 7
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_MMU_CNT1 8
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_TLU_SEL 9
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_TLU_CNT0 10
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_TLU_CNT1 11
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_TLU_CNT2 12
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_LNK_SEL 13
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_LNK_CNT1 14
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz#define HVIO_FIRE_PERFREG_PCIE_LNK_CNT2 15
0ad689d678ef901f32945172f48ddc7b16dde50dschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#ifdef __cplusplus
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz}
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#endif
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz
110e73f9b5ccaa10e26a8f79807001a5da72604eschwartz#endif /* _FPC_IMPL_4V_H */