c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish/*
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * CDDL HEADER START
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish *
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * The contents of this file are subject to the terms of the
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * Common Development and Distribution License (the "License").
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * You may not use this file except in compliance with the License.
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish *
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * or http://www.opensolaris.org/os/licensing.
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * See the License for the specific language governing permissions
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * and limitations under the License.
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish *
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * When distributing Covered Code, include this CDDL HEADER in each
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * If applicable, add the following below this CDDL HEADER, with the
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * fields enclosed by brackets "[]" replaced with your own identifying
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * information: Portions Copyright [yyyy] [name of copyright owner]
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish *
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * CDDL HEADER END
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish/*
fc256490629fe68815f7e0f23cf9b3545720cfacJason Beloro * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * Use is subject to license terms.
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#ifndef _SYS_HSVC_H
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define _SYS_HSVC_H
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish/*
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * Niagara services information
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#ifdef __cplusplus
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirishextern "C" {
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#endif
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish/*
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * Hypervisor service groups
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_SUN4V 0x0000
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_CORE 0x0001
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#define HSVC_GROUP_INTR 0x0002
3b890a5b92df88d9d90b2d7ac57e8c1e93e59e6ajb#define HSVC_GROUP_SOFT_STATE 0x0003
2f0fcb93196badcdd803715656c809058d9f3114Jason Beloro#define HSVC_GROUP_TM 0x0080
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_VPCI 0x0100
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_LDC 0x0101
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_VSC 0x0102
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_NCS 0x0103
4496171313bed39e96f21bc2f9faf2868e267ae3girish#define HSVC_GROUP_RNG 0x0104
4df55fde49134f9735f84011f23a767c75e393c7Janie Lu#define HSVC_GROUP_PBOOT 0x0105
8d26100c1d185652ac4e12e1b6c2337446ad0746Wyllys Ingersoll#define HSVC_GROUP_TPM 0x0107
fc256490629fe68815f7e0f23cf9b3545720cfacJason Beloro#define HSVC_GROUP_SDIO 0x0108
fc256490629fe68815f7e0f23cf9b3545720cfacJason Beloro#define HSVC_GROUP_SDIO_ERR 0x0109
4df55fde49134f9735f84011f23a767c75e393c7Janie Lu#define HSVC_GROUP_REBOOT_DATA 0x0110
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_NIAGARA_CPU 0x0200
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_FIRE_PERF 0x0201
4496171313bed39e96f21bc2f9faf2868e267ae3girish#define HSVC_GROUP_NIAGARA2_CPU 0x0202
4496171313bed39e96f21bc2f9faf2868e267ae3girish#define HSVC_GROUP_NIU 0x0204
59ac0c1669407488b67ae9e273667a340dccc611davemq#define HSVC_GROUP_VFALLS_CPU 0x0205
4df55fde49134f9735f84011f23a767c75e393c7Janie Lu#define HSVC_GROUP_KT_CPU 0x0209
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_GROUP_DIAG 0x0300
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#ifndef _ASM
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#include <sys/types.h>
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish/*
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * Hypervisor service negotiation data strcture
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirishstruct hsvc_info {
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish int hsvc_rev; /* data structure revision number */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish void *hsvc_private; /* reserved for the framework */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish uint64_t hsvc_group; /* hypervisor API group */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish uint64_t hsvc_major; /* API group major number */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish uint64_t hsvc_minor; /* API group minor number */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish char *hsvc_modname; /* module name */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish};
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirishtypedef struct hsvc_info hsvc_info_t;
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish/*
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * hsvc_rev field
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#define HSVC_REV_1 1
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish/*
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * External interface
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirishextern int hsvc_register(hsvc_info_t *hsvcreq, uint64_t *supported_minor);
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirishextern int hsvc_unregister(hsvc_info_t *hsvcreq);
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirishextern int hsvc_version(uint64_t hsvc_group, uint64_t *major, uint64_t *minor);
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#endif /* _ASM */
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#ifdef __cplusplus
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish}
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#endif
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish#endif /* _SYS_HSVC_H */