d62bc4badc1c1f1549c961cfb8b420e650e1272byz/*
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * CDDL HEADER START
d62bc4badc1c1f1549c961cfb8b420e650e1272byz *
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * The contents of this file are subject to the terms of the
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * Common Development and Distribution License (the "License").
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * You may not use this file except in compliance with the License.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz *
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * or http://www.opensolaris.org/os/licensing.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * See the License for the specific language governing permissions
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * and limitations under the License.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz *
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * When distributing Covered Code, include this CDDL HEADER in each
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * If applicable, add the following below this CDDL HEADER, with the
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * fields enclosed by brackets "[]" replaced with your own identifying
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * information: Portions Copyright [yyyy] [name of copyright owner]
d62bc4badc1c1f1549c961cfb8b420e650e1272byz *
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * CDDL HEADER END
d62bc4badc1c1f1549c961cfb8b420e650e1272byz */
d62bc4badc1c1f1549c961cfb8b420e650e1272byz/*
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz */
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz/*
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * This file includes structures, macros used to communicate with linkmgmt
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * daemon.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz */
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#ifndef _LIBDLMGMT_H
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define _LIBDLMGMT_H
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#include <sys/types.h>
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#include <libdladm.h>
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#ifdef __cplusplus
d62bc4badc1c1f1549c961cfb8b420e650e1272byzextern "C" {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#endif
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz/*
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * datalink management related macros, structures.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz */
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz/*
d62bc4badc1c1f1549c961cfb8b420e650e1272byz * Door call commands.
d62bc4badc1c1f1549c961cfb8b420e650e1272byz */
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_CREATE_LINKID (DLMGMT_CMD_BASE + 0)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_DESTROY_LINKID (DLMGMT_CMD_BASE + 1)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_REMAP_LINKID (DLMGMT_CMD_BASE + 2)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_CREATECONF (DLMGMT_CMD_BASE + 3)
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou#define DLMGMT_CMD_OPENCONF (DLMGMT_CMD_BASE + 4)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_WRITECONF (DLMGMT_CMD_BASE + 5)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_UP_LINKID (DLMGMT_CMD_BASE + 6)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_SETATTR (DLMGMT_CMD_BASE + 7)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_UNSETATTR (DLMGMT_CMD_BASE + 8)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_REMOVECONF (DLMGMT_CMD_BASE + 9)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_DESTROYCONF (DLMGMT_CMD_BASE + 10)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#define DLMGMT_CMD_GETATTR (DLMGMT_CMD_BASE + 11)
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou#define DLMGMT_CMD_GETCONFSNAPSHOT (DLMGMT_CMD_BASE + 12)
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy#define DLMGMT_CMD_ZONEBOOT (DLMGMT_CMD_BASE + 13)
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy#define DLMGMT_CMD_ZONEHALT (DLMGMT_CMD_BASE + 14)
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_createid_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz char ld_link[MAXLINKNAMELEN];
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_class_t ld_class;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz uint32_t ld_media;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz boolean_t ld_prefix;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz uint32_t ld_flags;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_createid_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_destroyid_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_id_t ld_linkid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz uint32_t ld_flags;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_destroyid_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_remapid_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_id_t ld_linkid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz char ld_link[MAXLINKNAMELEN];
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_remapid_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_upid_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_id_t ld_linkid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_upid_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_createconf_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz char ld_link[MAXLINKNAMELEN];
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_id_t ld_linkid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_class_t ld_class;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz uint32_t ld_media;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_createconf_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_setattr_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int ld_confid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz char ld_attr[MAXLINKATTRLEN];
d62bc4badc1c1f1549c961cfb8b420e650e1272byz size_t ld_attrsz;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz dladm_datatype_t ld_type;
024b0a258461f282a92b1b1283c3b8b083f9f33fseb char ld_attrval[MAXLINKATTRVALLEN];
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_setattr_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_unsetattr_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int ld_confid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz char ld_attr[MAXLINKATTRLEN];
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_unsetattr_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_writeconf_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int ld_confid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_writeconf_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_removeconf_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_id_t ld_linkid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_removeconf_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_destroyconf_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int ld_confid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_destroyconf_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhoutypedef struct dlmgmt_door_openconf_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz datalink_id_t ld_linkid;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou} dlmgmt_door_openconf_t;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhoutypedef struct dlmgmt_door_getconfsnapshot_s {
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int ld_cmd;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou datalink_id_t ld_linkid;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou} dlmgmt_door_getconfsnapshot_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_door_getattr_s {
d62bc4badc1c1f1549c961cfb8b420e650e1272byz int ld_cmd;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int ld_confid;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz char ld_attr[MAXLINKATTRLEN];
d62bc4badc1c1f1549c961cfb8b420e650e1272byz} dlmgmt_door_getattr_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhoutypedef struct dlmgmt_createconf_retval_s {
62ee1d25bffb3d6d74798efe1199f7e86a29a14eArtem Kachitchkine uint_t lr_err;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int lr_confid;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou} dlmgmt_createconf_retval_t;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhoutypedef struct dlmgmt_openconf_retval_s {
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou uint_t lr_err;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou int lr_confid;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou} dlmgmt_openconf_retval_t;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhoutypedef struct dlmgmt_getconfsnapshot_retval_s {
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou uint_t lr_err;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou size_t lr_nvlsz;
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou /* buffer for nvl */
327151705b7439cb7ab35c370f682cac7ef9523aCathy Zhou} dlmgmt_getconfsnapshot_retval_t;
62ee1d25bffb3d6d74798efe1199f7e86a29a14eArtem Kachitchkine
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roytypedef struct dlmgmt_door_zone_s {
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy int ld_cmd;
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy zoneid_t ld_zoneid;
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy} dlmgmt_door_zoneboot_t, dlmgmt_door_zonehalt_t;
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
024b0a258461f282a92b1b1283c3b8b083f9f33fsebtypedef struct dlmgmt_retval_s dlmgmt_remapid_retval_t,
024b0a258461f282a92b1b1283c3b8b083f9f33fseb dlmgmt_upid_retval_t,
024b0a258461f282a92b1b1283c3b8b083f9f33fseb dlmgmt_destroyid_retval_t,
024b0a258461f282a92b1b1283c3b8b083f9f33fseb dlmgmt_setattr_retval_t,
024b0a258461f282a92b1b1283c3b8b083f9f33fseb dlmgmt_unsetattr_retval_t,
024b0a258461f282a92b1b1283c3b8b083f9f33fseb dlmgmt_writeconf_retval_t,
024b0a258461f282a92b1b1283c3b8b083f9f33fseb dlmgmt_removeconf_retval_t,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy dlmgmt_destroyconf_retval_t,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy dlmgmt_zoneboot_retval_t,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy dlmgmt_zonehalt_retval_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byztypedef struct dlmgmt_linkid_retval_s dlmgmt_createid_retval_t;
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#ifdef __cplusplus
d62bc4badc1c1f1549c961cfb8b420e650e1272byz}
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#endif
d62bc4badc1c1f1549c961cfb8b420e650e1272byz
d62bc4badc1c1f1549c961cfb8b420e650e1272byz#endif /* _LIBDLMGMT_H */