xref: /illumos-gate/usr/src/cmd/isns/isnsadm/isnsadm.h (revision fcf3ce44)
1*fcf3ce44SJohn Forte /*
2*fcf3ce44SJohn Forte  * CDDL HEADER START
3*fcf3ce44SJohn Forte  *
4*fcf3ce44SJohn Forte  * The contents of this file are subject to the terms of the
5*fcf3ce44SJohn Forte  * Common Development and Distribution License (the "License").
6*fcf3ce44SJohn Forte  * You may not use this file except in compliance with the License.
7*fcf3ce44SJohn Forte  *
8*fcf3ce44SJohn Forte  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*fcf3ce44SJohn Forte  * or http://www.opensolaris.org/os/licensing.
10*fcf3ce44SJohn Forte  * See the License for the specific language governing permissions
11*fcf3ce44SJohn Forte  * and limitations under the License.
12*fcf3ce44SJohn Forte  *
13*fcf3ce44SJohn Forte  * When distributing Covered Code, include this CDDL HEADER in each
14*fcf3ce44SJohn Forte  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*fcf3ce44SJohn Forte  * If applicable, add the following below this CDDL HEADER, with the
16*fcf3ce44SJohn Forte  * fields enclosed by brackets "[]" replaced with your own identifying
17*fcf3ce44SJohn Forte  * information: Portions Copyright [yyyy] [name of copyright owner]
18*fcf3ce44SJohn Forte  *
19*fcf3ce44SJohn Forte  * CDDL HEADER END
20*fcf3ce44SJohn Forte  */
21*fcf3ce44SJohn Forte /*
22*fcf3ce44SJohn Forte  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23*fcf3ce44SJohn Forte  * Use is subject to license terms.
24*fcf3ce44SJohn Forte  */
25*fcf3ce44SJohn Forte 
26*fcf3ce44SJohn Forte #ifndef _ISNSADM_H
27*fcf3ce44SJohn Forte #define	_ISNSADM_H
28*fcf3ce44SJohn Forte 
29*fcf3ce44SJohn Forte #ifdef	__cplusplus
30*fcf3ce44SJohn Forte extern "C" {
31*fcf3ce44SJohn Forte #endif
32*fcf3ce44SJohn Forte 
33*fcf3ce44SJohn Forte #include <stdio.h>
34*fcf3ce44SJohn Forte #include <stdlib.h>
35*fcf3ce44SJohn Forte #include <string.h>
36*fcf3ce44SJohn Forte #include <libintl.h>
37*fcf3ce44SJohn Forte #include <unistd.h>
38*fcf3ce44SJohn Forte #include <sys/types.h>
39*fcf3ce44SJohn Forte #include <netinet/in.h>
40*fcf3ce44SJohn Forte #include <inttypes.h>
41*fcf3ce44SJohn Forte #include <cmdparse.h>
42*fcf3ce44SJohn Forte 
43*fcf3ce44SJohn Forte #ifdef _BIG_ENDIAN
44*fcf3ce44SJohn Forte #define	htonll(x)   (x)
45*fcf3ce44SJohn Forte #define	ntohll(x)   (x)
46*fcf3ce44SJohn Forte #else
47*fcf3ce44SJohn Forte #define	htonll(x)   ((((unsigned long long)htonl(x)) << 32) + htonl(x >> 32))
48*fcf3ce44SJohn Forte #define	ntohll(x)   ((((unsigned long long)ntohl(x)) << 32) + ntohl(x >> 32))
49*fcf3ce44SJohn Forte #endif
50*fcf3ce44SJohn Forte 
51*fcf3ce44SJohn Forte /* DEFINES */
52*fcf3ce44SJohn Forte /* subcommands */
53*fcf3ce44SJohn Forte #define	LISTNODE		SUBCOMMAND(0)
54*fcf3ce44SJohn Forte #define	LISTDD			SUBCOMMAND(1)
55*fcf3ce44SJohn Forte #define	LISTDDSET		SUBCOMMAND(2)
56*fcf3ce44SJohn Forte #define	CREATEDD		SUBCOMMAND(3)
57*fcf3ce44SJohn Forte #define	CREATEDDSET		SUBCOMMAND(4)
58*fcf3ce44SJohn Forte #define	DELETEDD		SUBCOMMAND(5)
59*fcf3ce44SJohn Forte #define	DELETEDDSET		SUBCOMMAND(6)
60*fcf3ce44SJohn Forte #define	ADDNODE			SUBCOMMAND(7)
61*fcf3ce44SJohn Forte #define	ADDDD			SUBCOMMAND(8)
62*fcf3ce44SJohn Forte #define	REMOVENODE		SUBCOMMAND(9)
63*fcf3ce44SJohn Forte #define	REMOVEDD		SUBCOMMAND(10)
64*fcf3ce44SJohn Forte #define	MODIFYDD		SUBCOMMAND(11)
65*fcf3ce44SJohn Forte #define	MODIFYDDSET		SUBCOMMAND(12)
66*fcf3ce44SJohn Forte #define	ENABLEDDSET		SUBCOMMAND(13)
67*fcf3ce44SJohn Forte #define	DISABLEDDSET		SUBCOMMAND(14)
68*fcf3ce44SJohn Forte #define	SHOWCONFIG		SUBCOMMAND(15)
69*fcf3ce44SJohn Forte 
70*fcf3ce44SJohn Forte /* reader lookup return value definition */
71*fcf3ce44SJohn Forte #define	NO_MATCH		0
72*fcf3ce44SJohn Forte #define	READER_MATCH		1
73*fcf3ce44SJohn Forte #define	END_READER_MATCH	2
74*fcf3ce44SJohn Forte 
75*fcf3ce44SJohn Forte /* Association Request type */
76*fcf3ce44SJohn Forte typedef enum {
77*fcf3ce44SJohn Forte 	dd_to_node,
78*fcf3ce44SJohn Forte 	node_to_dd,
79*fcf3ce44SJohn Forte 	dd_to_ddset,
80*fcf3ce44SJohn Forte 	ddset_to_dd
81*fcf3ce44SJohn Forte } association_t;
82*fcf3ce44SJohn Forte 
83*fcf3ce44SJohn Forte /* Modify Requet type */
84*fcf3ce44SJohn Forte typedef enum {
85*fcf3ce44SJohn Forte 	dd_name_change,
86*fcf3ce44SJohn Forte 	ddset_name_change,
87*fcf3ce44SJohn Forte 	dds_state_change,
88*fcf3ce44SJohn Forte 	dd_bootlist_feature_change
89*fcf3ce44SJohn Forte } modify_type;
90*fcf3ce44SJohn Forte 
91*fcf3ce44SJohn Forte #define	COMMAND_SYNTAX_FAILED	1
92*fcf3ce44SJohn Forte 
93*fcf3ce44SJohn Forte /*  msg code */
94*fcf3ce44SJohn Forte typedef enum {
95*fcf3ce44SJohn Forte     SUBCOMMAND_SUCCESS = 200,
96*fcf3ce44SJohn Forte     SUCCESS_WITH_NO_OBJECT,
97*fcf3ce44SJohn Forte     ERROR_PARTIAL_SUCCESS,
98*fcf3ce44SJohn Forte     ERROR_PARTIAL_FAILURE,
99*fcf3ce44SJohn Forte     ERROR_NO_ADDITIONAL_PARTIAL_FAILIRE_INFO,
100*fcf3ce44SJohn Forte     ERROR_XML_READER_NULL,
101*fcf3ce44SJohn Forte     ERROR_XML_RESPONSE_ERROR,
102*fcf3ce44SJohn Forte     ERROR_XML_NAME_ATTR_NOT_FOUND,
103*fcf3ce44SJohn Forte     ERROR_XML_ID_ATTR_NOT_FOUND,
104*fcf3ce44SJohn Forte     ERROR_XML_TYPE_ATTR_NOT_FOUND,
105*fcf3ce44SJohn Forte     ERROR_XML_ALIAS_ATTR_NOT_FOUND,
106*fcf3ce44SJohn Forte     ERROR_XML_DD_OBJECT_NOT_FOUND,
107*fcf3ce44SJohn Forte     ERROR_XML_DD_SET_OBJECT_NOT_FOUND,
108*fcf3ce44SJohn Forte     ERROR_XML_STATUS_ELEM_NOT_FOUND,
109*fcf3ce44SJohn Forte     ERROR_XML_MESSAGE_ELEM_NOT_FOUND,
110*fcf3ce44SJohn Forte     ERROR_XML_ISNSSERVER_ELEM_NOT_FOUND,
111*fcf3ce44SJohn Forte     ERROR_XML_CREATE_BUFFER_FAILED,
112*fcf3ce44SJohn Forte     ERROR_XML_CREATE_WRITER_FAILED,
113*fcf3ce44SJohn Forte     ERROR_XML_START_DOC_FAILED,
114*fcf3ce44SJohn Forte     ERROR_XML_END_DOC_FAILED,
115*fcf3ce44SJohn Forte     ERROR_XML_START_ELEMENT_FAILED,
116*fcf3ce44SJohn Forte     ERROR_XML_WRITE_ELEMENT_FAILED,
117*fcf3ce44SJohn Forte     ERROR_XML_END_ELEMENT_FAILED,
118*fcf3ce44SJohn Forte     ERROR_XML_WRITE_ATTRIBUTE_FAILED,
119*fcf3ce44SJohn Forte     ERROR_XML_STRDUP_FAILED,
120*fcf3ce44SJohn Forte     ERROR_XML_ADD_CHILD_FAILED,
121*fcf3ce44SJohn Forte     ERROR_XML_PARSE_MEMORY_FAILED,
122*fcf3ce44SJohn Forte     ERROR_XML_XPATH_NEW_CONTEXT_FAILED,
123*fcf3ce44SJohn Forte     ERROR_DOOR_CALL_FAILED,
124*fcf3ce44SJohn Forte     ERROR_DOOR_OPEN_FAILED,
125*fcf3ce44SJohn Forte     ERROR_ISNS_SMF_SERVICE_NOT_ONLINE,
126*fcf3ce44SJohn Forte     ERROR_MALLOC_FAILED,
127*fcf3ce44SJohn Forte     ERROR_DDMEMBER_NOT_FOUND,
128*fcf3ce44SJohn Forte     ERROR_DDSETMEMBER_NOT_FOUND,
129*fcf3ce44SJohn Forte     ERROR_DDMEMBER_ALREADY_EXIST,
130*fcf3ce44SJohn Forte     ERROR_DDSETMEMBER_ALREADY_EXIST,
131*fcf3ce44SJohn Forte     ERROR_OPERATION_NOT_ALLOWED_FOR_DEFAULT_DD,
132*fcf3ce44SJohn Forte     ERROR_OPERATION_NOT_ALLOWED_FOR_DEFAULT_DDSET,
133*fcf3ce44SJohn Forte     ERROR_DD_NAME_IN_USE,
134*fcf3ce44SJohn Forte     ERROR_DDSET_NAME_IN_USE,
135*fcf3ce44SJohn Forte     ERROR_SERVER_BUSY,
136*fcf3ce44SJohn Forte     ERROR_SERVER_INTERNAL_ERROR,
137*fcf3ce44SJohn Forte     UNKNOWN
138*fcf3ce44SJohn Forte } msg_code_t;
139*fcf3ce44SJohn Forte 
140*fcf3ce44SJohn Forte /* proto type */
141*fcf3ce44SJohn Forte char *getTextMessage(msg_code_t code);
142*fcf3ce44SJohn Forte 
143*fcf3ce44SJohn Forte #ifdef	__cplusplus
144*fcf3ce44SJohn Forte }
145*fcf3ce44SJohn Forte #endif
146*fcf3ce44SJohn Forte 
147*fcf3ce44SJohn Forte #endif /* _ISNSADM_H */
148