4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
24 */
25
26 #ifndef _INSTZONES_API_H
27 #define _INSTZONES_API_H
28
29
30 /*
31 * Module: instzones_api.h
32 * Group: libinstzones
33 * Description: This module contains the libinstzones API data structures,
34 * constants, and function prototypes.
35 */
36
37 /*
38 * required includes
39 */
40
41 /* System includes */
42
43 #include <stdarg.h>
74
75 /* flag for zone locking functions */
76
77 typedef unsigned long ZLOCKS_T;
78
79 /* flags for zone locking */
80
81 #define ZLOCKS_ZONE_ADMIN ((ZLOCKS_T)0x00000001) /* zone admin */
82 #define ZLOCKS_PKG_ADMIN ((ZLOCKS_T)0x00000002) /* package admin */
83 #define ZLOCKS_ALL ((ZLOCKS_T)0xFFFFFFFF) /* all locks */
84 #define ZLOCKS_NONE ((ZLOCKS_T)0x00000000) /* no locks */
85
86 /*
87 * external function definitions
88 */
89
90 /* zones.c */
91
92 extern boolean_t z_zones_are_implemented(void);
93 extern void z_set_zone_root(const char *zroot);
94 extern boolean_t z_zlist_is_zone_runnable(zoneList_t a_zoneList,
95 int a_zoneIndex);
96 extern boolean_t z_zlist_restore_zone_state(zoneList_t a_zoneList,
97 int a_zoneIndex);
98 extern boolean_t z_zlist_change_zone_state(zoneList_t a_zoneList,
99 int a_zoneIndex, zone_state_t a_newState);
100 extern char *z_get_zonename(void);
101 extern zone_state_t z_zlist_get_current_state(zoneList_t a_zoneList,
102 int a_zoneIndex);
103 extern zone_state_t z_zlist_get_original_state(zoneList_t a_zoneList,
104 int a_zoneIndex);
105 extern int z_zoneExecCmdArray(int *r_status, char **r_results,
106 char *a_inputFile, char *a_path, char *a_argv[],
107 const char *a_zoneName, int *a_fds);
108 extern int z_zone_exec(const char *zonename, const char *path,
109 char *argv[], char *a_stdoutPath,
110 char *a_stderrPath, int *a_fds);
111 extern boolean_t z_create_zone_admin_file(char *a_zoneAdminFilename,
112 char *a_userAdminFilename);
113 extern void z_free_zone_list(zoneList_t a_zoneList);
114 extern zoneList_t z_get_nonglobal_zone_list(void);
115 extern zoneList_t z_get_nonglobal_zone_list_by_brand(zoneBrandList_t *);
116 extern void z_free_brand_list(zoneBrandList_t *a_brandList);
117 extern zoneBrandList_t *z_make_brand_list(const char *brandList,
118 const char *delim);
119 extern boolean_t z_lock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
120 extern boolean_t z_non_global_zones_exist(void);
121 extern boolean_t z_running_in_global_zone(void);
122 extern void z_set_output_functions(_z_printf_fcn_t a_echo_fcn,
123 _z_printf_fcn_t a_echo_debug_fcn,
124 _z_printf_fcn_t a_progerr_fcn);
125 extern int z_set_zone_spec(const char *zlist);
126 extern int z_verify_zone_spec(void);
127 extern boolean_t z_on_zone_spec(const char *zonename);
128 extern boolean_t z_global_only(void);
129 extern boolean_t z_unlock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
130 extern boolean_t z_lock_this_zone(ZLOCKS_T a_lflags);
131 extern boolean_t z_unlock_this_zone(ZLOCKS_T a_lflags);
132 extern char *z_zlist_get_zonename(zoneList_t a_zoneList,
133 int a_zoneId);
134 extern char *z_zlist_get_zonepath(zoneList_t a_zoneList,
|
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22 /*
23 * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
24 * Copyright 2015 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
25 */
26
27 #ifndef _INSTZONES_API_H
28 #define _INSTZONES_API_H
29
30
31 /*
32 * Module: instzones_api.h
33 * Group: libinstzones
34 * Description: This module contains the libinstzones API data structures,
35 * constants, and function prototypes.
36 */
37
38 /*
39 * required includes
40 */
41
42 /* System includes */
43
44 #include <stdarg.h>
75
76 /* flag for zone locking functions */
77
78 typedef unsigned long ZLOCKS_T;
79
80 /* flags for zone locking */
81
82 #define ZLOCKS_ZONE_ADMIN ((ZLOCKS_T)0x00000001) /* zone admin */
83 #define ZLOCKS_PKG_ADMIN ((ZLOCKS_T)0x00000002) /* package admin */
84 #define ZLOCKS_ALL ((ZLOCKS_T)0xFFFFFFFF) /* all locks */
85 #define ZLOCKS_NONE ((ZLOCKS_T)0x00000000) /* no locks */
86
87 /*
88 * external function definitions
89 */
90
91 /* zones.c */
92
93 extern boolean_t z_zones_are_implemented(void);
94 extern void z_set_zone_root(const char *zroot);
95 extern int z_zlist_is_zone_auto_create_be(zoneList_t, int,
96 boolean_t *);
97 extern boolean_t z_zlist_is_zone_runnable(zoneList_t a_zoneList,
98 int a_zoneIndex);
99 extern boolean_t z_zlist_restore_zone_state(zoneList_t a_zoneList,
100 int a_zoneIndex);
101 extern boolean_t z_zlist_change_zone_state(zoneList_t a_zoneList,
102 int a_zoneIndex, zone_state_t a_newState);
103 extern char *z_get_zonename(void);
104 extern zone_state_t z_zlist_get_current_state(zoneList_t a_zoneList,
105 int a_zoneIndex);
106 extern zone_state_t z_zlist_get_original_state(zoneList_t a_zoneList,
107 int a_zoneIndex);
108 extern int z_zoneExecCmdArray(int *r_status, char **r_results,
109 char *a_inputFile, char *a_path, char *a_argv[],
110 const char *a_zoneName, int *a_fds);
111 extern int z_zone_exec(const char *zonename, const char *path,
112 char *argv[], char *a_stdoutPath,
113 char *a_stderrPath, int *a_fds);
114 extern boolean_t z_create_zone_admin_file(char *a_zoneAdminFilename,
115 char *a_userAdminFilename);
116 extern void z_free_zone_list(zoneList_t a_zoneList);
117 extern zoneList_t z_get_nonglobal_zone_list(void);
118 extern zoneList_t z_get_nonglobal_branded_zone_list(void);
119 extern zoneList_t z_get_nonglobal_zone_list_by_brand(zoneBrandList_t *);
120 extern void z_free_brand_list(zoneBrandList_t *a_brandList);
121 extern zoneBrandList_t *z_make_brand_list(const char *brandList,
122 const char *delim);
123 extern boolean_t z_lock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
124 extern boolean_t z_non_global_zones_exist(void);
125 extern boolean_t z_running_in_global_zone(void);
126 extern void z_set_output_functions(_z_printf_fcn_t a_echo_fcn,
127 _z_printf_fcn_t a_echo_debug_fcn,
128 _z_printf_fcn_t a_progerr_fcn);
129 extern int z_set_zone_spec(const char *zlist);
130 extern int z_verify_zone_spec(void);
131 extern boolean_t z_on_zone_spec(const char *zonename);
132 extern boolean_t z_global_only(void);
133 extern boolean_t z_unlock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
134 extern boolean_t z_lock_this_zone(ZLOCKS_T a_lflags);
135 extern boolean_t z_unlock_this_zone(ZLOCKS_T a_lflags);
136 extern char *z_zlist_get_zonename(zoneList_t a_zoneList,
137 int a_zoneId);
138 extern char *z_zlist_get_zonepath(zoneList_t a_zoneList,
|