xref: /illumos-gate/usr/src/lib/libv12n/common/libv12n.h (revision 82629e3015252bf18319ba3815c773df23e21436)
1*82629e30SMike Christensen /*
2*82629e30SMike Christensen  * CDDL HEADER START
3*82629e30SMike Christensen  *
4*82629e30SMike Christensen  * The contents of this file are subject to the terms of the
5*82629e30SMike Christensen  * Common Development and Distribution License (the "License").
6*82629e30SMike Christensen  * You may not use this file except in compliance with the License.
7*82629e30SMike Christensen  *
8*82629e30SMike Christensen  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*82629e30SMike Christensen  * or http://www.opensolaris.org/os/licensing.
10*82629e30SMike Christensen  * See the License for the specific language governing permissions
11*82629e30SMike Christensen  * and limitations under the License.
12*82629e30SMike Christensen  *
13*82629e30SMike Christensen  * When distributing Covered Code, include this CDDL HEADER in each
14*82629e30SMike Christensen  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*82629e30SMike Christensen  * If applicable, add the following below this CDDL HEADER, with the
16*82629e30SMike Christensen  * fields enclosed by brackets "[]" replaced with your own identifying
17*82629e30SMike Christensen  * information: Portions Copyright [yyyy] [name of copyright owner]
18*82629e30SMike Christensen  *
19*82629e30SMike Christensen  * CDDL HEADER END
20*82629e30SMike Christensen  */
21*82629e30SMike Christensen /*
22*82629e30SMike Christensen  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
23*82629e30SMike Christensen  * Use is subject to license terms.
24*82629e30SMike Christensen  */
25*82629e30SMike Christensen 
26*82629e30SMike Christensen #ifndef _SYS_LIBV12N_H
27*82629e30SMike Christensen #define	_SYS_LIBV12N_H
28*82629e30SMike Christensen 
29*82629e30SMike Christensen #include <sys/types.h>
30*82629e30SMike Christensen #include <uuid/uuid.h>
31*82629e30SMike Christensen 
32*82629e30SMike Christensen #ifdef	__cplusplus
33*82629e30SMike Christensen extern "C" {
34*82629e30SMike Christensen #endif
35*82629e30SMike Christensen 
36*82629e30SMike Christensen /* Max length of an v12n name/uuid/serialno */
37*82629e30SMike Christensen #define	V12N_NAME_MAX		1024
38*82629e30SMike Christensen 
39*82629e30SMike Christensen /* Virtualization capabilities - bit mask */
40*82629e30SMike Christensen #define	V12N_CAP_SUPPORTED	0x1	/* Virtualization supported */
41*82629e30SMike Christensen #define	V12N_CAP_ENABLED	0x2	/* Virtualization enabled */
42*82629e30SMike Christensen #define	V12N_CAP_IMPL_LDOMS	0x4	/* LDoms Implementation */
43*82629e30SMike Christensen 
44*82629e30SMike Christensen /* LDoms Domain role types - bit mask */
45*82629e30SMike Christensen #define	V12N_ROLE_CONTROL	0x1	/* LDoms Ctrl domain (zero = Guest) */
46*82629e30SMike Christensen #define	V12N_ROLE_IO		0x2	/* I/O domain */
47*82629e30SMike Christensen #define	V12N_ROLE_SERVICE	0x4	/* Service domain */
48*82629e30SMike Christensen #define	V12N_ROLE_ROOT		0x8	/* Root domain */
49*82629e30SMike Christensen 
50*82629e30SMike Christensen int v12n_capabilities(void);
51*82629e30SMike Christensen int v12n_domain_roles(void);
52*82629e30SMike Christensen int v12n_domain_uuid(uuid_t);
53*82629e30SMike Christensen size_t v12n_domain_name(char *, size_t);
54*82629e30SMike Christensen size_t v12n_ctrl_domain(char *, size_t);
55*82629e30SMike Christensen size_t v12n_chassis_serialno(char *, size_t);
56*82629e30SMike Christensen 
57*82629e30SMike Christensen #ifdef	__cplusplus
58*82629e30SMike Christensen }
59*82629e30SMike Christensen #endif
60*82629e30SMike Christensen 
61*82629e30SMike Christensen #endif /* _SYS_LIBV12N_H */
62