1d62bc4baSyz147064 /* 2d62bc4baSyz147064 * CDDL HEADER START 3d62bc4baSyz147064 * 4d62bc4baSyz147064 * The contents of this file are subject to the terms of the 5d62bc4baSyz147064 * Common Development and Distribution License (the "License"). 6d62bc4baSyz147064 * You may not use this file except in compliance with the License. 7d62bc4baSyz147064 * 8d62bc4baSyz147064 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9d62bc4baSyz147064 * or http://www.opensolaris.org/os/licensing. 10d62bc4baSyz147064 * See the License for the specific language governing permissions 11d62bc4baSyz147064 * and limitations under the License. 12d62bc4baSyz147064 * 13d62bc4baSyz147064 * When distributing Covered Code, include this CDDL HEADER in each 14d62bc4baSyz147064 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15d62bc4baSyz147064 * If applicable, add the following below this CDDL HEADER, with the 16d62bc4baSyz147064 * fields enclosed by brackets "[]" replaced with your own identifying 17d62bc4baSyz147064 * information: Portions Copyright [yyyy] [name of copyright owner] 18d62bc4baSyz147064 * 19d62bc4baSyz147064 * CDDL HEADER END 20d62bc4baSyz147064 */ 21d62bc4baSyz147064 /* 22*2b24ab6bSSebastien Roy * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23d62bc4baSyz147064 * Use is subject to license terms. 24d62bc4baSyz147064 */ 25d62bc4baSyz147064 26d62bc4baSyz147064 /* 27d62bc4baSyz147064 * This file includes structures, macros used to communicate with linkmgmt 28d62bc4baSyz147064 * daemon. 29d62bc4baSyz147064 */ 30d62bc4baSyz147064 31d62bc4baSyz147064 #ifndef _LIBDLMGMT_H 32d62bc4baSyz147064 #define _LIBDLMGMT_H 33d62bc4baSyz147064 34d62bc4baSyz147064 #include <sys/types.h> 35d62bc4baSyz147064 #include <libdladm.h> 36d62bc4baSyz147064 37d62bc4baSyz147064 #ifdef __cplusplus 38d62bc4baSyz147064 extern "C" { 39d62bc4baSyz147064 #endif 40d62bc4baSyz147064 41d62bc4baSyz147064 /* 42d62bc4baSyz147064 * datalink management related macros, structures. 43d62bc4baSyz147064 */ 44d62bc4baSyz147064 45d62bc4baSyz147064 /* 46d62bc4baSyz147064 * Door call commands. 47d62bc4baSyz147064 */ 48d62bc4baSyz147064 #define DLMGMT_CMD_CREATE_LINKID (DLMGMT_CMD_BASE + 0) 49d62bc4baSyz147064 #define DLMGMT_CMD_DESTROY_LINKID (DLMGMT_CMD_BASE + 1) 50d62bc4baSyz147064 #define DLMGMT_CMD_REMAP_LINKID (DLMGMT_CMD_BASE + 2) 51d62bc4baSyz147064 #define DLMGMT_CMD_CREATECONF (DLMGMT_CMD_BASE + 3) 52d62bc4baSyz147064 #define DLMGMT_CMD_READCONF (DLMGMT_CMD_BASE + 4) 53d62bc4baSyz147064 #define DLMGMT_CMD_WRITECONF (DLMGMT_CMD_BASE + 5) 54d62bc4baSyz147064 #define DLMGMT_CMD_UP_LINKID (DLMGMT_CMD_BASE + 6) 55d62bc4baSyz147064 #define DLMGMT_CMD_SETATTR (DLMGMT_CMD_BASE + 7) 56d62bc4baSyz147064 #define DLMGMT_CMD_UNSETATTR (DLMGMT_CMD_BASE + 8) 57d62bc4baSyz147064 #define DLMGMT_CMD_REMOVECONF (DLMGMT_CMD_BASE + 9) 58d62bc4baSyz147064 #define DLMGMT_CMD_DESTROYCONF (DLMGMT_CMD_BASE + 10) 59d62bc4baSyz147064 #define DLMGMT_CMD_GETATTR (DLMGMT_CMD_BASE + 11) 6062ee1d25SArtem Kachitchkine #define DLMGMT_CMD_LINKPROP_GETNEXT (DLMGMT_CMD_BASE + 12) 61*2b24ab6bSSebastien Roy #define DLMGMT_CMD_ZONEBOOT (DLMGMT_CMD_BASE + 13) 62*2b24ab6bSSebastien Roy #define DLMGMT_CMD_ZONEHALT (DLMGMT_CMD_BASE + 14) 63d62bc4baSyz147064 64d62bc4baSyz147064 typedef struct dlmgmt_door_createid_s { 65d62bc4baSyz147064 int ld_cmd; 66d62bc4baSyz147064 char ld_link[MAXLINKNAMELEN]; 67d62bc4baSyz147064 datalink_class_t ld_class; 68d62bc4baSyz147064 uint32_t ld_media; 69d62bc4baSyz147064 boolean_t ld_prefix; 70d62bc4baSyz147064 uint32_t ld_flags; 71d62bc4baSyz147064 } dlmgmt_door_createid_t; 72d62bc4baSyz147064 73d62bc4baSyz147064 typedef struct dlmgmt_door_destroyid_s { 74d62bc4baSyz147064 int ld_cmd; 75d62bc4baSyz147064 datalink_id_t ld_linkid; 76d62bc4baSyz147064 uint32_t ld_flags; 77d62bc4baSyz147064 } dlmgmt_door_destroyid_t; 78d62bc4baSyz147064 79d62bc4baSyz147064 typedef struct dlmgmt_door_remapid_s { 80d62bc4baSyz147064 int ld_cmd; 81d62bc4baSyz147064 datalink_id_t ld_linkid; 82d62bc4baSyz147064 char ld_link[MAXLINKNAMELEN]; 83d62bc4baSyz147064 } dlmgmt_door_remapid_t; 84d62bc4baSyz147064 85d62bc4baSyz147064 typedef struct dlmgmt_door_upid_s { 86d62bc4baSyz147064 int ld_cmd; 87d62bc4baSyz147064 datalink_id_t ld_linkid; 88d62bc4baSyz147064 } dlmgmt_door_upid_t; 89d62bc4baSyz147064 90d62bc4baSyz147064 typedef struct dlmgmt_door_createconf_s { 91d62bc4baSyz147064 int ld_cmd; 92d62bc4baSyz147064 char ld_link[MAXLINKNAMELEN]; 93d62bc4baSyz147064 datalink_id_t ld_linkid; 94d62bc4baSyz147064 datalink_class_t ld_class; 95d62bc4baSyz147064 uint32_t ld_media; 96d62bc4baSyz147064 } dlmgmt_door_createconf_t; 97d62bc4baSyz147064 98d62bc4baSyz147064 typedef struct dlmgmt_door_setattr_s { 99d62bc4baSyz147064 int ld_cmd; 100d62bc4baSyz147064 dladm_conf_t ld_conf; 101d62bc4baSyz147064 char ld_attr[MAXLINKATTRLEN]; 102d62bc4baSyz147064 size_t ld_attrsz; 103d62bc4baSyz147064 dladm_datatype_t ld_type; 104024b0a25Sseb char ld_attrval[MAXLINKATTRVALLEN]; 105d62bc4baSyz147064 } dlmgmt_door_setattr_t; 106d62bc4baSyz147064 107d62bc4baSyz147064 typedef struct dlmgmt_door_unsetattr_s { 108d62bc4baSyz147064 int ld_cmd; 109d62bc4baSyz147064 dladm_conf_t ld_conf; 110d62bc4baSyz147064 char ld_attr[MAXLINKATTRLEN]; 111d62bc4baSyz147064 } dlmgmt_door_unsetattr_t; 112d62bc4baSyz147064 113d62bc4baSyz147064 typedef struct dlmgmt_door_writeconf_s { 114d62bc4baSyz147064 int ld_cmd; 115d62bc4baSyz147064 dladm_conf_t ld_conf; 116d62bc4baSyz147064 } dlmgmt_door_writeconf_t; 117d62bc4baSyz147064 118d62bc4baSyz147064 typedef struct dlmgmt_door_removeconf_s { 119d62bc4baSyz147064 int ld_cmd; 120d62bc4baSyz147064 datalink_id_t ld_linkid; 121d62bc4baSyz147064 } dlmgmt_door_removeconf_t; 122d62bc4baSyz147064 123d62bc4baSyz147064 typedef struct dlmgmt_door_destroyconf_s { 124d62bc4baSyz147064 int ld_cmd; 125d62bc4baSyz147064 dladm_conf_t ld_conf; 126d62bc4baSyz147064 } dlmgmt_door_destroyconf_t; 127d62bc4baSyz147064 128d62bc4baSyz147064 typedef struct dlmgmt_door_readconf_s { 129d62bc4baSyz147064 int ld_cmd; 130d62bc4baSyz147064 datalink_id_t ld_linkid; 131d62bc4baSyz147064 } dlmgmt_door_readconf_t; 132d62bc4baSyz147064 133d62bc4baSyz147064 typedef struct dlmgmt_door_getattr_s { 134d62bc4baSyz147064 int ld_cmd; 135d62bc4baSyz147064 dladm_conf_t ld_conf; 136d62bc4baSyz147064 char ld_attr[MAXLINKATTRLEN]; 137d62bc4baSyz147064 } dlmgmt_door_getattr_t; 138d62bc4baSyz147064 139d62bc4baSyz147064 typedef struct dlmgmt_handle_retval_s { 140d62bc4baSyz147064 uint_t lr_err; 141d62bc4baSyz147064 dladm_conf_t lr_conf; 142d62bc4baSyz147064 } dlmgmt_createconf_retval_t, dlmgmt_readconf_retval_t; 143d62bc4baSyz147064 14462ee1d25SArtem Kachitchkine typedef struct dlmgmt_door_linkprop_getnext_s { 14562ee1d25SArtem Kachitchkine int ld_cmd; 14662ee1d25SArtem Kachitchkine dladm_conf_t ld_conf; 14762ee1d25SArtem Kachitchkine char ld_last_attr[MAXLINKATTRLEN]; 14862ee1d25SArtem Kachitchkine } dlmgmt_door_linkprop_getnext_t; 14962ee1d25SArtem Kachitchkine 15062ee1d25SArtem Kachitchkine typedef struct dlmgmt_linkprop_getnext_retval_s { 15162ee1d25SArtem Kachitchkine uint_t lr_err; 15262ee1d25SArtem Kachitchkine char lr_attr[MAXLINKATTRLEN]; 15362ee1d25SArtem Kachitchkine uint_t lr_type; 15462ee1d25SArtem Kachitchkine uint_t lr_attrsz; 15562ee1d25SArtem Kachitchkine char lr_attrval[MAXLINKATTRVALLEN]; 15662ee1d25SArtem Kachitchkine } dlmgmt_linkprop_getnext_retval_t; 15762ee1d25SArtem Kachitchkine 158*2b24ab6bSSebastien Roy typedef struct dlmgmt_door_zone_s { 159*2b24ab6bSSebastien Roy int ld_cmd; 160*2b24ab6bSSebastien Roy zoneid_t ld_zoneid; 161*2b24ab6bSSebastien Roy } dlmgmt_door_zoneboot_t, dlmgmt_door_zonehalt_t; 162*2b24ab6bSSebastien Roy 163024b0a25Sseb typedef struct dlmgmt_retval_s dlmgmt_remapid_retval_t, 164d62bc4baSyz147064 dlmgmt_upid_retval_t, 165d62bc4baSyz147064 dlmgmt_destroyid_retval_t, 166d62bc4baSyz147064 dlmgmt_setattr_retval_t, 167d62bc4baSyz147064 dlmgmt_unsetattr_retval_t, 168d62bc4baSyz147064 dlmgmt_writeconf_retval_t, 169d62bc4baSyz147064 dlmgmt_removeconf_retval_t, 170*2b24ab6bSSebastien Roy dlmgmt_destroyconf_retval_t, 171*2b24ab6bSSebastien Roy dlmgmt_zoneboot_retval_t, 172*2b24ab6bSSebastien Roy dlmgmt_zonehalt_retval_t; 173d62bc4baSyz147064 174d62bc4baSyz147064 typedef struct dlmgmt_linkid_retval_s dlmgmt_createid_retval_t; 175d62bc4baSyz147064 176d62bc4baSyz147064 #ifdef __cplusplus 177d62bc4baSyz147064 } 178d62bc4baSyz147064 #endif 179d62bc4baSyz147064 180d62bc4baSyz147064 #endif /* _LIBDLMGMT_H */ 181