xref: /onnv-gate/usr/src/uts/sun4v/sys/glvc.h (revision 1840:4b02d3c3fea5)
10Sstevel@tonic-gate /*
20Sstevel@tonic-gate  * CDDL HEADER START
30Sstevel@tonic-gate  *
40Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*1840Swh94709  * Common Development and Distribution License (the "License").
6*1840Swh94709  * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate  *
80Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate  * See the License for the specific language governing permissions
110Sstevel@tonic-gate  * and limitations under the License.
120Sstevel@tonic-gate  *
130Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate  *
190Sstevel@tonic-gate  * CDDL HEADER END
200Sstevel@tonic-gate  */
210Sstevel@tonic-gate /*
22*1840Swh94709  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
230Sstevel@tonic-gate  * Use is subject to license terms.
240Sstevel@tonic-gate  */
250Sstevel@tonic-gate 
260Sstevel@tonic-gate #ifndef	_GLVC_H
270Sstevel@tonic-gate #define	_GLVC_H
280Sstevel@tonic-gate 
290Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
300Sstevel@tonic-gate 
310Sstevel@tonic-gate #ifdef __cplusplus
320Sstevel@tonic-gate extern "C" {
330Sstevel@tonic-gate #endif
340Sstevel@tonic-gate 
35*1840Swh94709 /*
36*1840Swh94709  * Service channel related Hypervisor function numbers.
37*1840Swh94709  */
38*1840Swh94709 #define	SVC_SEND		0x80
39*1840Swh94709 #define	SVC_RECV		0x81
40*1840Swh94709 #define	SVC_GETSTATUS		0x82
41*1840Swh94709 #define	SVC_SETSTATUS		0x83
42*1840Swh94709 #define	SVC_CLRSTATUS		0x84
43*1840Swh94709 
44*1840Swh94709 #ifndef _ASM
45*1840Swh94709 
46*1840Swh94709 /*
47*1840Swh94709  * VSC API versioning.
48*1840Swh94709  *
49*1840Swh94709  * Current glvc driver supports VSC API version 1.0.
50*1840Swh94709  */
51*1840Swh94709 #define	GLVC_VSC_MAJOR_VER_1	0x1ull
52*1840Swh94709 #define	GLVC_VSC_MAJOR_VER	GLVC_VSC_MAJOR_VER_1
53*1840Swh94709 
54*1840Swh94709 #define	GLVC_VSC_MINOR_VER_0	0x0ull
55*1840Swh94709 #define	GLVC_VSC_MINOR_VER	GLVC_VSC_MINOR_VER_0
56*1840Swh94709 
570Sstevel@tonic-gate /* for ioctl */
580Sstevel@tonic-gate #define	GLVC_XPORT_IOCTL_DATA_PEEK		1
590Sstevel@tonic-gate #define	GLVC_XPORT_IOCTL_OPT_OP			2
600Sstevel@tonic-gate 
610Sstevel@tonic-gate typedef struct glvc_xport_msg_peek {
620Sstevel@tonic-gate 	caddr_t		buf;	/* ptr to buffer to hold peeked data */
630Sstevel@tonic-gate 	size_t		buflen;	/* number of bytes of peeked data */
640Sstevel@tonic-gate 	uint16_t	flags;	/* future control flags - set to 0 */
650Sstevel@tonic-gate } glvc_xport_msg_peek_t;
660Sstevel@tonic-gate 
670Sstevel@tonic-gate typedef struct glvc_xport_msg_peek32 {
680Sstevel@tonic-gate 	uint32_t	buf32;	/* 32 bit ptr to buffer to hold peeked data */
690Sstevel@tonic-gate 	uint32_t	buflen32;	/* number of bytes of peeked data */
700Sstevel@tonic-gate 	uint16_t	flags;		/* future control flags - set to 0 */
710Sstevel@tonic-gate } glvc_xport_msg_peek32_t;
720Sstevel@tonic-gate 
730Sstevel@tonic-gate #define	GLVC_XPORT_OPT_GET			1
740Sstevel@tonic-gate #define	GLVC_XPORT_OPT_SET			2
750Sstevel@tonic-gate 
760Sstevel@tonic-gate #define	GLVC_XPORT_OPT_MTU_SZ			1
770Sstevel@tonic-gate #define	GLVC_XPORT_OPT_LINGER_TO			2
780Sstevel@tonic-gate #define	GLVC_XPORT_OPT_REG_STATUS			3
790Sstevel@tonic-gate 
800Sstevel@tonic-gate typedef struct glvc_xport_opt_op {
810Sstevel@tonic-gate 	int32_t		op_sel;		/* operation selector(ex: GET) */
820Sstevel@tonic-gate 	int32_t		opt_sel;	/* option selector (ex: MTU) */
830Sstevel@tonic-gate 	uint32_t	opt_val;	/* option value to use */
840Sstevel@tonic-gate } glvc_xport_opt_op_t;
850Sstevel@tonic-gate 
86*1840Swh94709 #endif /* _ASM */
87*1840Swh94709 
880Sstevel@tonic-gate #ifdef __cplusplus
890Sstevel@tonic-gate }
900Sstevel@tonic-gate #endif
910Sstevel@tonic-gate 
920Sstevel@tonic-gate #endif /* _GLVC_H */
93