hsvc.h revision 4496171313bed39e96f21bc2f9faf2868e267ae3
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/*
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish * Copyright 2006 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#pragma ident "%Z%%M% %I% %E% SMI"
c56c1e58d46678af913f4c68f2ef9dcacb5f282fgirish
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
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
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
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 */