4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
23 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
25 * Copyright 1998-2002 Sun Microsystems, Inc. All rights reserved.
26 * Use is subject to license terms.
29 #ifndef _SYS_CONFIG_ADMIN_H
30 #define _SYS_CONFIG_ADMIN_H
35 * this file supports usage of the interfaces defined in
36 * config_admin.3x. which are contained in /usr/lib/libcfgadm.so.1
39 #include <sys/param.h>
49 #define CFGA_AP_LOG_ID_LEN 20
50 #define CFGA_AP_PHYS_ID_LEN MAXPATHLEN
51 #define CFGA_INFO_LEN 4096
52 #define CFGA_TYPE_LEN 12
54 #define CFGA_CLASS_LEN 12
55 #define CFGA_LOG_EXT_LEN 30
57 #define CFGA_DYN_SEP "::"
58 #define CFGA_PHYS_EXT_LEN (CFGA_AP_PHYS_ID_LEN + CFGA_LOG_EXT_LEN)
62 * Configuration change state commands
75 * Configuration states
80 CFGA_STAT_DISCONNECTED
,
82 CFGA_STAT_UNCONFIGURED
,
87 * Configuration conditions
90 CFGA_COND_UNKNOWN
= 0,
100 #define CFGA_FLAG_FORCE 1
101 #define CFGA_FLAG_VERBOSE 2
102 #define CFGA_FLAG_LIST_ALL 4
104 typedef char cfga_ap_log_id_t
[CFGA_AP_LOG_ID_LEN
];
105 typedef char cfga_ap_phys_id_t
[CFGA_AP_PHYS_ID_LEN
];
106 typedef char cfga_info_t
[CFGA_INFO_LEN
];
107 typedef char cfga_type_t
[CFGA_TYPE_LEN
];
108 typedef int cfga_flags_t
;
109 typedef int cfga_busy_t
;
112 typedef char cfga_log_ext_t
[CFGA_LOG_EXT_LEN
];
113 typedef char cfga_phys_ext_t
[CFGA_PHYS_EXT_LEN
];
114 typedef char cfga_class_t
[CFGA_CLASS_LEN
];
116 typedef struct cfga_list_data
{
117 cfga_log_ext_t ap_log_id
; /* Attachment point logical id */
118 cfga_phys_ext_t ap_phys_id
; /* Attachment point physical id */
119 cfga_class_t ap_class
; /* Attachment point class */
120 cfga_stat_t ap_r_state
; /* Receptacle state */
121 cfga_stat_t ap_o_state
; /* Occupant state */
122 cfga_cond_t ap_cond
; /* Attachment point condition */
123 cfga_busy_t ap_busy
; /* Busy indicators */
124 time_t ap_status_time
; /* Attachment point last change */
125 cfga_info_t ap_info
; /* Miscellaneous information */
126 cfga_type_t ap_type
; /* Occupant type */
130 * The following structure is retained for backward compatibility
132 typedef struct cfga_stat_data
{
133 cfga_ap_log_id_t ap_log_id
; /* Attachment point logical id */
134 cfga_ap_phys_id_t ap_phys_id
; /* Attachment point physical id */
135 cfga_stat_t ap_r_state
; /* Receptacle state */
136 cfga_stat_t ap_o_state
; /* Occupant state */
137 cfga_cond_t ap_cond
; /* Attachment point condition */
138 cfga_busy_t ap_busy
; /* Busy indicators */
139 time_t ap_status_time
; /* Attachment point last change */
140 cfga_info_t ap_info
; /* Miscellaneous information */
141 cfga_type_t ap_type
; /* Occupant type */
145 struct cfga_confirm
{
146 int (*confirm
)(void *appdata_ptr
, const char *message
);
151 int (*message_routine
)(void *appdata_ptr
, const char *message
);
156 * Library function error codes returned by all functions below
157 * except config_strerror which is used to decode the error
171 CFGA_INSUFFICENT_CONDITION
,
180 * config_admin.3x library interfaces
183 cfga_err_t
config_change_state(cfga_cmd_t state_change_cmd
, int num_ap_ids
,
184 char *const *ap_ids
, const char *options
, struct cfga_confirm
*confp
,
185 struct cfga_msg
*msgp
, char **errstring
, cfga_flags_t flags
);
187 cfga_err_t
config_private_func(const char *function
, int num_ap_ids
,
188 char *const *ap_ids
, const char *options
, struct cfga_confirm
*confp
,
189 struct cfga_msg
*msgp
, char **errstring
, cfga_flags_t flags
);
191 cfga_err_t
config_test(int num_ap_ids
, char *const *ap_ids
,
192 const char *options
, struct cfga_msg
*msgp
, char **errstring
,
195 cfga_err_t
config_list_ext(int num_ap_ids
, char *const *ap_ids
,
196 struct cfga_list_data
**ap_id_list
, int *nlist
, const char *options
,
197 const char *listopts
, char **errstring
, cfga_flags_t flags
);
199 cfga_err_t
config_help(int num_ap_ids
, char *const *ap_ids
,
200 struct cfga_msg
*msgp
, const char *options
, cfga_flags_t flags
);
202 const char *config_strerror(cfga_err_t cfgerrnum
);
204 int config_ap_id_cmp(const cfga_ap_log_id_t ap_id1
,
205 const cfga_ap_log_id_t ap_id2
);
207 void config_unload_libs();
210 * The following two routines are retained only for backward compatibility
212 cfga_err_t
config_stat(int num_ap_ids
, char *const *ap_ids
,
213 struct cfga_stat_data
*buf
, const char *options
, char **errstring
);
215 cfga_err_t
config_list(struct cfga_stat_data
**ap_di_list
, int *nlist
,
216 const char *options
, char **errstring
);
219 #ifdef CFGA_PLUGIN_LIB
221 * Plugin library routine hooks - only to be used by the generic
222 * library and plugin libraries (who must define CFGA_PLUGIN_LIB
223 * prior to the inclusion of this header).
226 cfga_err_t
cfga_change_state(cfga_cmd_t
, const char *, const char *,
227 struct cfga_confirm
*, struct cfga_msg
*, char **, cfga_flags_t
);
228 cfga_err_t
cfga_private_func(const char *, const char *, const char *,
229 struct cfga_confirm
*, struct cfga_msg
*, char **, cfga_flags_t
);
230 cfga_err_t
cfga_test(const char *, const char *, struct cfga_msg
*,
231 char **, cfga_flags_t
);
232 cfga_err_t
cfga_list_ext(const char *, struct cfga_list_data
**, int *,
233 const char *, const char *, char **, cfga_flags_t
);
234 cfga_err_t
cfga_help(struct cfga_msg
*, const char *, cfga_flags_t
);
235 int cfga_ap_id_cmp(const cfga_ap_log_id_t
,
236 const cfga_ap_log_id_t
);
240 * Plugin version information.
242 #define CFGA_HSL_V1 1
243 #define CFGA_HSL_V2 2
244 #define CFGA_HSL_VERS CFGA_HSL_V2
247 * The following two routines are retained only for backward compatibility.
249 cfga_err_t
cfga_stat(const char *, struct cfga_stat_data
*,
250 const char *, char **);
251 cfga_err_t
cfga_list(const char *, struct cfga_stat_data
**, int *,
252 const char *, char **);
255 #endif /* CFGA_PLUGIN_LIB */
261 #endif /* _SYS_CONFIG_ADMIN_H */