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