1d62bc4baSyz /* 2d62bc4baSyz * CDDL HEADER START 3d62bc4baSyz * 4d62bc4baSyz * The contents of this file are subject to the terms of the 5d62bc4baSyz * Common Development and Distribution License (the "License"). 6d62bc4baSyz * You may not use this file except in compliance with the License. 7d62bc4baSyz * 8d62bc4baSyz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9d62bc4baSyz * or http://www.opensolaris.org/os/licensing. 10d62bc4baSyz * See the License for the specific language governing permissions 11d62bc4baSyz * and limitations under the License. 12d62bc4baSyz * 13d62bc4baSyz * When distributing Covered Code, include this CDDL HEADER in each 14d62bc4baSyz * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15d62bc4baSyz * If applicable, add the following below this CDDL HEADER, with the 16d62bc4baSyz * fields enclosed by brackets "[]" replaced with your own identifying 17d62bc4baSyz * information: Portions Copyright [yyyy] [name of copyright owner] 18d62bc4baSyz * 19d62bc4baSyz * CDDL HEADER END 20d62bc4baSyz */ 21d62bc4baSyz /* 2232715170SCathy Zhou * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 23d62bc4baSyz */ 24d62bc4baSyz 25d62bc4baSyz /* 26d62bc4baSyz * This file includes structures, macros used to communicate with linkmgmt 27d62bc4baSyz * daemon. 28d62bc4baSyz */ 29d62bc4baSyz 30d62bc4baSyz #ifndef _LIBDLMGMT_H 31d62bc4baSyz #define _LIBDLMGMT_H 32d62bc4baSyz 33d62bc4baSyz #include <sys/types.h> 34d62bc4baSyz #include <libdladm.h> 35d62bc4baSyz 36d62bc4baSyz #ifdef __cplusplus 37d62bc4baSyz extern "C" { 38d62bc4baSyz #endif 39d62bc4baSyz 40d62bc4baSyz /* 41d62bc4baSyz * datalink management related macros, structures. 42d62bc4baSyz */ 43d62bc4baSyz 44d62bc4baSyz /* 45d62bc4baSyz * Door call commands. 46d62bc4baSyz */ 47d62bc4baSyz #define DLMGMT_CMD_CREATE_LINKID (DLMGMT_CMD_BASE + 0) 48d62bc4baSyz #define DLMGMT_CMD_DESTROY_LINKID (DLMGMT_CMD_BASE + 1) 49d62bc4baSyz #define DLMGMT_CMD_REMAP_LINKID (DLMGMT_CMD_BASE + 2) 50d62bc4baSyz #define DLMGMT_CMD_CREATECONF (DLMGMT_CMD_BASE + 3) 5132715170SCathy Zhou #define DLMGMT_CMD_OPENCONF (DLMGMT_CMD_BASE + 4) 52d62bc4baSyz #define DLMGMT_CMD_WRITECONF (DLMGMT_CMD_BASE + 5) 53d62bc4baSyz #define DLMGMT_CMD_UP_LINKID (DLMGMT_CMD_BASE + 6) 54d62bc4baSyz #define DLMGMT_CMD_SETATTR (DLMGMT_CMD_BASE + 7) 55d62bc4baSyz #define DLMGMT_CMD_UNSETATTR (DLMGMT_CMD_BASE + 8) 56d62bc4baSyz #define DLMGMT_CMD_REMOVECONF (DLMGMT_CMD_BASE + 9) 57d62bc4baSyz #define DLMGMT_CMD_DESTROYCONF (DLMGMT_CMD_BASE + 10) 58d62bc4baSyz #define DLMGMT_CMD_GETATTR (DLMGMT_CMD_BASE + 11) 5932715170SCathy Zhou #define DLMGMT_CMD_GETCONFSNAPSHOT (DLMGMT_CMD_BASE + 12) 602b24ab6bSSebastien Roy #define DLMGMT_CMD_ZONEBOOT (DLMGMT_CMD_BASE + 13) 612b24ab6bSSebastien Roy #define DLMGMT_CMD_ZONEHALT (DLMGMT_CMD_BASE + 14) 62d62bc4baSyz 63d62bc4baSyz typedef struct dlmgmt_door_createid_s { 64d62bc4baSyz int ld_cmd; 65d62bc4baSyz char ld_link[MAXLINKNAMELEN]; 66d62bc4baSyz datalink_class_t ld_class; 67d62bc4baSyz uint32_t ld_media; 68d62bc4baSyz boolean_t ld_prefix; 69d62bc4baSyz uint32_t ld_flags; 70d62bc4baSyz } dlmgmt_door_createid_t; 71d62bc4baSyz 72d62bc4baSyz typedef struct dlmgmt_door_destroyid_s { 73d62bc4baSyz int ld_cmd; 74d62bc4baSyz datalink_id_t ld_linkid; 75d62bc4baSyz uint32_t ld_flags; 76d62bc4baSyz } dlmgmt_door_destroyid_t; 77d62bc4baSyz 78d62bc4baSyz typedef struct dlmgmt_door_remapid_s { 79d62bc4baSyz int ld_cmd; 80d62bc4baSyz datalink_id_t ld_linkid; 81d62bc4baSyz char ld_link[MAXLINKNAMELEN]; 82d62bc4baSyz } dlmgmt_door_remapid_t; 83d62bc4baSyz 84d62bc4baSyz typedef struct dlmgmt_door_upid_s { 85d62bc4baSyz int ld_cmd; 86d62bc4baSyz datalink_id_t ld_linkid; 87d62bc4baSyz } dlmgmt_door_upid_t; 88d62bc4baSyz 89d62bc4baSyz typedef struct dlmgmt_door_createconf_s { 90d62bc4baSyz int ld_cmd; 91d62bc4baSyz char ld_link[MAXLINKNAMELEN]; 92d62bc4baSyz datalink_id_t ld_linkid; 93d62bc4baSyz datalink_class_t ld_class; 94d62bc4baSyz uint32_t ld_media; 95d62bc4baSyz } dlmgmt_door_createconf_t; 96d62bc4baSyz 97d62bc4baSyz typedef struct dlmgmt_door_setattr_s { 98d62bc4baSyz int ld_cmd; 9932715170SCathy Zhou int ld_confid; 100d62bc4baSyz char ld_attr[MAXLINKATTRLEN]; 101*640aa5d6SRyan Goodfellow uint32_t ld_attrsz; 102d62bc4baSyz dladm_datatype_t ld_type; 103024b0a25Sseb char ld_attrval[MAXLINKATTRVALLEN]; 104d62bc4baSyz } dlmgmt_door_setattr_t; 105d62bc4baSyz 106d62bc4baSyz typedef struct dlmgmt_door_unsetattr_s { 107d62bc4baSyz int ld_cmd; 10832715170SCathy Zhou int ld_confid; 109d62bc4baSyz char ld_attr[MAXLINKATTRLEN]; 110d62bc4baSyz } dlmgmt_door_unsetattr_t; 111d62bc4baSyz 112d62bc4baSyz typedef struct dlmgmt_door_writeconf_s { 113d62bc4baSyz int ld_cmd; 11432715170SCathy Zhou int ld_confid; 115d62bc4baSyz } dlmgmt_door_writeconf_t; 116d62bc4baSyz 117d62bc4baSyz typedef struct dlmgmt_door_removeconf_s { 118d62bc4baSyz int ld_cmd; 119d62bc4baSyz datalink_id_t ld_linkid; 120d62bc4baSyz } dlmgmt_door_removeconf_t; 121d62bc4baSyz 122d62bc4baSyz typedef struct dlmgmt_door_destroyconf_s { 123d62bc4baSyz int ld_cmd; 12432715170SCathy Zhou int ld_confid; 125d62bc4baSyz } dlmgmt_door_destroyconf_t; 126d62bc4baSyz 12732715170SCathy Zhou typedef struct dlmgmt_door_openconf_s { 128d62bc4baSyz int ld_cmd; 129d62bc4baSyz datalink_id_t ld_linkid; 13032715170SCathy Zhou } dlmgmt_door_openconf_t; 13132715170SCathy Zhou 13232715170SCathy Zhou typedef struct dlmgmt_door_getconfsnapshot_s { 13332715170SCathy Zhou int ld_cmd; 13432715170SCathy Zhou datalink_id_t ld_linkid; 13532715170SCathy Zhou } dlmgmt_door_getconfsnapshot_t; 136d62bc4baSyz 137d62bc4baSyz typedef struct dlmgmt_door_getattr_s { 138d62bc4baSyz int ld_cmd; 13932715170SCathy Zhou int ld_confid; 140d62bc4baSyz char ld_attr[MAXLINKATTRLEN]; 141d62bc4baSyz } dlmgmt_door_getattr_t; 142d62bc4baSyz 14332715170SCathy Zhou typedef struct dlmgmt_createconf_retval_s { 14462ee1d25SArtem Kachitchkine uint_t lr_err; 14532715170SCathy Zhou int lr_confid; 14632715170SCathy Zhou } dlmgmt_createconf_retval_t; 14732715170SCathy Zhou 14832715170SCathy Zhou typedef struct dlmgmt_openconf_retval_s { 14932715170SCathy Zhou uint_t lr_err; 15032715170SCathy Zhou int lr_confid; 15132715170SCathy Zhou } dlmgmt_openconf_retval_t; 15232715170SCathy Zhou 15332715170SCathy Zhou typedef struct dlmgmt_getconfsnapshot_retval_s { 15432715170SCathy Zhou uint_t lr_err; 155*640aa5d6SRyan Goodfellow uint32_t lr_nvlsz; 15632715170SCathy Zhou /* buffer for nvl */ 15732715170SCathy Zhou } dlmgmt_getconfsnapshot_retval_t; 15862ee1d25SArtem Kachitchkine 1592b24ab6bSSebastien Roy typedef struct dlmgmt_door_zone_s { 1602b24ab6bSSebastien Roy int ld_cmd; 1612b24ab6bSSebastien Roy zoneid_t ld_zoneid; 1622b24ab6bSSebastien Roy } dlmgmt_door_zoneboot_t, dlmgmt_door_zonehalt_t; 1632b24ab6bSSebastien Roy 164024b0a25Sseb typedef struct dlmgmt_retval_s dlmgmt_remapid_retval_t, 165024b0a25Sseb dlmgmt_upid_retval_t, 166024b0a25Sseb dlmgmt_destroyid_retval_t, 167024b0a25Sseb dlmgmt_setattr_retval_t, 168024b0a25Sseb dlmgmt_unsetattr_retval_t, 169024b0a25Sseb dlmgmt_writeconf_retval_t, 170024b0a25Sseb dlmgmt_removeconf_retval_t, 1712b24ab6bSSebastien Roy dlmgmt_destroyconf_retval_t, 1722b24ab6bSSebastien Roy dlmgmt_zoneboot_retval_t, 1732b24ab6bSSebastien Roy dlmgmt_zonehalt_retval_t; 174d62bc4baSyz 175d62bc4baSyz typedef struct dlmgmt_linkid_retval_s dlmgmt_createid_retval_t; 176d62bc4baSyz 177d62bc4baSyz #ifdef __cplusplus 178d62bc4baSyz } 179d62bc4baSyz #endif 180d62bc4baSyz 181d62bc4baSyz #endif /* _LIBDLMGMT_H */ 182