xref: /onnv-gate/usr/src/lib/libdladm/common/libdlmgmt.h (revision 12824:66c93397e15b)
15895Syz147064 /*
25895Syz147064  * CDDL HEADER START
35895Syz147064  *
45895Syz147064  * The contents of this file are subject to the terms of the
55895Syz147064  * Common Development and Distribution License (the "License").
65895Syz147064  * You may not use this file except in compliance with the License.
75895Syz147064  *
85895Syz147064  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
95895Syz147064  * or http://www.opensolaris.org/os/licensing.
105895Syz147064  * See the License for the specific language governing permissions
115895Syz147064  * and limitations under the License.
125895Syz147064  *
135895Syz147064  * When distributing Covered Code, include this CDDL HEADER in each
145895Syz147064  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
155895Syz147064  * If applicable, add the following below this CDDL HEADER, with the
165895Syz147064  * fields enclosed by brackets "[]" replaced with your own identifying
175895Syz147064  * information: Portions Copyright [yyyy] [name of copyright owner]
185895Syz147064  *
195895Syz147064  * CDDL HEADER END
205895Syz147064  */
215895Syz147064 /*
22*12824SCathy.Zhou@Sun.COM  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
235895Syz147064  */
245895Syz147064 
255895Syz147064 /*
265895Syz147064  * This file includes structures, macros used to communicate with linkmgmt
275895Syz147064  * daemon.
285895Syz147064  */
295895Syz147064 
305895Syz147064 #ifndef _LIBDLMGMT_H
315895Syz147064 #define	_LIBDLMGMT_H
325895Syz147064 
335895Syz147064 #include <sys/types.h>
345895Syz147064 #include <libdladm.h>
355895Syz147064 
365895Syz147064 #ifdef __cplusplus
375895Syz147064 extern "C" {
385895Syz147064 #endif
395895Syz147064 
405895Syz147064 /*
415895Syz147064  * datalink management related macros, structures.
425895Syz147064  */
435895Syz147064 
445895Syz147064 /*
455895Syz147064  * Door call commands.
465895Syz147064  */
475895Syz147064 #define	DLMGMT_CMD_CREATE_LINKID	(DLMGMT_CMD_BASE + 0)
485895Syz147064 #define	DLMGMT_CMD_DESTROY_LINKID	(DLMGMT_CMD_BASE + 1)
495895Syz147064 #define	DLMGMT_CMD_REMAP_LINKID		(DLMGMT_CMD_BASE + 2)
505895Syz147064 #define	DLMGMT_CMD_CREATECONF		(DLMGMT_CMD_BASE + 3)
51*12824SCathy.Zhou@Sun.COM #define	DLMGMT_CMD_OPENCONF		(DLMGMT_CMD_BASE + 4)
525895Syz147064 #define	DLMGMT_CMD_WRITECONF		(DLMGMT_CMD_BASE + 5)
535895Syz147064 #define	DLMGMT_CMD_UP_LINKID		(DLMGMT_CMD_BASE + 6)
545895Syz147064 #define	DLMGMT_CMD_SETATTR		(DLMGMT_CMD_BASE + 7)
555895Syz147064 #define	DLMGMT_CMD_UNSETATTR		(DLMGMT_CMD_BASE + 8)
565895Syz147064 #define	DLMGMT_CMD_REMOVECONF		(DLMGMT_CMD_BASE + 9)
575895Syz147064 #define	DLMGMT_CMD_DESTROYCONF		(DLMGMT_CMD_BASE + 10)
585895Syz147064 #define	DLMGMT_CMD_GETATTR		(DLMGMT_CMD_BASE + 11)
59*12824SCathy.Zhou@Sun.COM #define	DLMGMT_CMD_GETCONFSNAPSHOT	(DLMGMT_CMD_BASE + 12)
6010616SSebastien.Roy@Sun.COM #define	DLMGMT_CMD_ZONEBOOT		(DLMGMT_CMD_BASE + 13)
6110616SSebastien.Roy@Sun.COM #define	DLMGMT_CMD_ZONEHALT		(DLMGMT_CMD_BASE + 14)
625895Syz147064 
635895Syz147064 typedef struct dlmgmt_door_createid_s {
645895Syz147064 	int			ld_cmd;
655895Syz147064 	char			ld_link[MAXLINKNAMELEN];
665895Syz147064 	datalink_class_t	ld_class;
675895Syz147064 	uint32_t		ld_media;
685895Syz147064 	boolean_t		ld_prefix;
695895Syz147064 	uint32_t		ld_flags;
705895Syz147064 } dlmgmt_door_createid_t;
715895Syz147064 
725895Syz147064 typedef struct dlmgmt_door_destroyid_s {
735895Syz147064 	int		ld_cmd;
745895Syz147064 	datalink_id_t	ld_linkid;
755895Syz147064 	uint32_t	ld_flags;
765895Syz147064 } dlmgmt_door_destroyid_t;
775895Syz147064 
785895Syz147064 typedef struct dlmgmt_door_remapid_s {
795895Syz147064 	int		ld_cmd;
805895Syz147064 	datalink_id_t	ld_linkid;
815895Syz147064 	char		ld_link[MAXLINKNAMELEN];
825895Syz147064 } dlmgmt_door_remapid_t;
835895Syz147064 
845895Syz147064 typedef struct dlmgmt_door_upid_s {
855895Syz147064 	int		ld_cmd;
865895Syz147064 	datalink_id_t	ld_linkid;
875895Syz147064 } dlmgmt_door_upid_t;
885895Syz147064 
895895Syz147064 typedef struct dlmgmt_door_createconf_s {
905895Syz147064 	int			ld_cmd;
915895Syz147064 	char			ld_link[MAXLINKNAMELEN];
925895Syz147064 	datalink_id_t		ld_linkid;
935895Syz147064 	datalink_class_t	ld_class;
945895Syz147064 	uint32_t		ld_media;
955895Syz147064 } dlmgmt_door_createconf_t;
965895Syz147064 
975895Syz147064 typedef struct dlmgmt_door_setattr_s {
985895Syz147064 	int			ld_cmd;
99*12824SCathy.Zhou@Sun.COM 	int			ld_confid;
1005895Syz147064 	char			ld_attr[MAXLINKATTRLEN];
1015895Syz147064 	size_t			ld_attrsz;
1025895Syz147064 	dladm_datatype_t	ld_type;
1036263Sseb 	char			ld_attrval[MAXLINKATTRVALLEN];
1045895Syz147064 } dlmgmt_door_setattr_t;
1055895Syz147064 
1065895Syz147064 typedef struct dlmgmt_door_unsetattr_s {
1075895Syz147064 	int		ld_cmd;
108*12824SCathy.Zhou@Sun.COM 	int		ld_confid;
1095895Syz147064 	char		ld_attr[MAXLINKATTRLEN];
1105895Syz147064 } dlmgmt_door_unsetattr_t;
1115895Syz147064 
1125895Syz147064 typedef struct dlmgmt_door_writeconf_s {
1135895Syz147064 	int		ld_cmd;
114*12824SCathy.Zhou@Sun.COM 	int		ld_confid;
1155895Syz147064 } dlmgmt_door_writeconf_t;
1165895Syz147064 
1175895Syz147064 typedef struct dlmgmt_door_removeconf_s {
1185895Syz147064 	int		ld_cmd;
1195895Syz147064 	datalink_id_t	ld_linkid;
1205895Syz147064 } dlmgmt_door_removeconf_t;
1215895Syz147064 
1225895Syz147064 typedef struct dlmgmt_door_destroyconf_s {
1235895Syz147064 	int		ld_cmd;
124*12824SCathy.Zhou@Sun.COM 	int		ld_confid;
1255895Syz147064 } dlmgmt_door_destroyconf_t;
1265895Syz147064 
127*12824SCathy.Zhou@Sun.COM typedef struct dlmgmt_door_openconf_s {
1285895Syz147064 	int		ld_cmd;
1295895Syz147064 	datalink_id_t	ld_linkid;
130*12824SCathy.Zhou@Sun.COM } dlmgmt_door_openconf_t;
131*12824SCathy.Zhou@Sun.COM 
132*12824SCathy.Zhou@Sun.COM typedef struct dlmgmt_door_getconfsnapshot_s {
133*12824SCathy.Zhou@Sun.COM 	int		ld_cmd;
134*12824SCathy.Zhou@Sun.COM 	datalink_id_t	ld_linkid;
135*12824SCathy.Zhou@Sun.COM } dlmgmt_door_getconfsnapshot_t;
1365895Syz147064 
1375895Syz147064 typedef struct dlmgmt_door_getattr_s {
1385895Syz147064 	int		ld_cmd;
139*12824SCathy.Zhou@Sun.COM 	int		ld_confid;
1405895Syz147064 	char		ld_attr[MAXLINKATTRLEN];
1415895Syz147064 } dlmgmt_door_getattr_t;
1425895Syz147064 
143*12824SCathy.Zhou@Sun.COM typedef struct dlmgmt_createconf_retval_s {
1445895Syz147064 	uint_t			lr_err;
145*12824SCathy.Zhou@Sun.COM 	int			lr_confid;
146*12824SCathy.Zhou@Sun.COM } dlmgmt_createconf_retval_t;
1475895Syz147064 
148*12824SCathy.Zhou@Sun.COM typedef struct dlmgmt_openconf_retval_s {
149*12824SCathy.Zhou@Sun.COM 	uint_t		lr_err;
150*12824SCathy.Zhou@Sun.COM 	int		lr_confid;
151*12824SCathy.Zhou@Sun.COM } dlmgmt_openconf_retval_t;
1528460SArtem.Kachitchkin@Sun.COM 
153*12824SCathy.Zhou@Sun.COM typedef struct dlmgmt_getconfsnapshot_retval_s {
154*12824SCathy.Zhou@Sun.COM 	uint_t		lr_err;
155*12824SCathy.Zhou@Sun.COM 	size_t		lr_nvlsz;
156*12824SCathy.Zhou@Sun.COM 	/* buffer for nvl */
157*12824SCathy.Zhou@Sun.COM } dlmgmt_getconfsnapshot_retval_t;
1588460SArtem.Kachitchkin@Sun.COM 
15910616SSebastien.Roy@Sun.COM typedef struct dlmgmt_door_zone_s {
16010616SSebastien.Roy@Sun.COM 	int			ld_cmd;
16110616SSebastien.Roy@Sun.COM 	zoneid_t		ld_zoneid;
16210616SSebastien.Roy@Sun.COM } dlmgmt_door_zoneboot_t, dlmgmt_door_zonehalt_t;
16310616SSebastien.Roy@Sun.COM 
1646263Sseb typedef struct dlmgmt_retval_s	dlmgmt_remapid_retval_t,
1656263Sseb 				dlmgmt_upid_retval_t,
1666263Sseb 				dlmgmt_destroyid_retval_t,
1676263Sseb 				dlmgmt_setattr_retval_t,
1686263Sseb 				dlmgmt_unsetattr_retval_t,
1696263Sseb 				dlmgmt_writeconf_retval_t,
1706263Sseb 				dlmgmt_removeconf_retval_t,
17110616SSebastien.Roy@Sun.COM 				dlmgmt_destroyconf_retval_t,
17210616SSebastien.Roy@Sun.COM 				dlmgmt_zoneboot_retval_t,
17310616SSebastien.Roy@Sun.COM 				dlmgmt_zonehalt_retval_t;
1745895Syz147064 
1755895Syz147064 typedef struct dlmgmt_linkid_retval_s	dlmgmt_createid_retval_t;
1765895Syz147064 
1775895Syz147064 #ifdef __cplusplus
1785895Syz147064 }
1795895Syz147064 #endif
1805895Syz147064 
1815895Syz147064 #endif /* _LIBDLMGMT_H */
182