Print this page
patch zone-auto-create-be
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/lib/libinstzones/hdrs/instzones_api.h
+++ new/usr/src/lib/libinstzones/hdrs/instzones_api.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21
22 22 /*
23 23 * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
24 + * Copyright 2015 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
24 25 */
25 26
26 27 #ifndef _INSTZONES_API_H
27 28 #define _INSTZONES_API_H
28 29
29 30
30 31 /*
31 32 * Module: instzones_api.h
32 33 * Group: libinstzones
33 34 * Description: This module contains the libinstzones API data structures,
34 35 * constants, and function prototypes.
35 36 */
36 37
37 38 /*
38 39 * required includes
39 40 */
40 41
41 42 /* System includes */
42 43
43 44 #include <stdarg.h>
44 45 #include <stdio.h>
45 46 #include <string.h>
46 47 #include <termios.h>
47 48 #include <sys/mman.h>
48 49 #include <sys/param.h>
49 50 #include <sys/types.h>
50 51 #include <sys/ioctl.h>
51 52 #include <libzonecfg.h>
52 53
53 54 /*
54 55 * C++ prefix
55 56 */
56 57
57 58 #ifdef __cplusplus
58 59 extern "C" {
59 60 #endif
60 61
61 62
62 63 /* function prototypes */
63 64
64 65 /* PRINTFLIKE1 */
65 66 typedef void (*_z_printf_fcn_t)(char *a_format, ...);
66 67
67 68 /* zone list structure */
68 69
69 70 typedef struct _zoneListElement_t *zoneList_t;
70 71
71 72 /* zone brand list structure */
72 73
73 74 typedef struct _zoneBrandList zoneBrandList_t;
74 75
75 76 /* flag for zone locking functions */
76 77
77 78 typedef unsigned long ZLOCKS_T;
78 79
79 80 /* flags for zone locking */
80 81
81 82 #define ZLOCKS_ZONE_ADMIN ((ZLOCKS_T)0x00000001) /* zone admin */
82 83 #define ZLOCKS_PKG_ADMIN ((ZLOCKS_T)0x00000002) /* package admin */
83 84 #define ZLOCKS_ALL ((ZLOCKS_T)0xFFFFFFFF) /* all locks */
↓ open down ↓ |
50 lines elided |
↑ open up ↑ |
84 85 #define ZLOCKS_NONE ((ZLOCKS_T)0x00000000) /* no locks */
85 86
86 87 /*
87 88 * external function definitions
88 89 */
89 90
90 91 /* zones.c */
91 92
92 93 extern boolean_t z_zones_are_implemented(void);
93 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 *);
94 97 extern boolean_t z_zlist_is_zone_runnable(zoneList_t a_zoneList,
95 98 int a_zoneIndex);
96 99 extern boolean_t z_zlist_restore_zone_state(zoneList_t a_zoneList,
97 100 int a_zoneIndex);
98 101 extern boolean_t z_zlist_change_zone_state(zoneList_t a_zoneList,
99 102 int a_zoneIndex, zone_state_t a_newState);
100 103 extern char *z_get_zonename(void);
101 104 extern zone_state_t z_zlist_get_current_state(zoneList_t a_zoneList,
102 105 int a_zoneIndex);
103 106 extern zone_state_t z_zlist_get_original_state(zoneList_t a_zoneList,
104 107 int a_zoneIndex);
↓ open down ↓ |
1 lines elided |
↑ open up ↑ |
105 108 extern int z_zoneExecCmdArray(int *r_status, char **r_results,
106 109 char *a_inputFile, char *a_path, char *a_argv[],
107 110 const char *a_zoneName, int *a_fds);
108 111 extern int z_zone_exec(const char *zonename, const char *path,
109 112 char *argv[], char *a_stdoutPath,
110 113 char *a_stderrPath, int *a_fds);
111 114 extern boolean_t z_create_zone_admin_file(char *a_zoneAdminFilename,
112 115 char *a_userAdminFilename);
113 116 extern void z_free_zone_list(zoneList_t a_zoneList);
114 117 extern zoneList_t z_get_nonglobal_zone_list(void);
118 +extern zoneList_t z_get_nonglobal_branded_zone_list(void);
115 119 extern zoneList_t z_get_nonglobal_zone_list_by_brand(zoneBrandList_t *);
116 120 extern void z_free_brand_list(zoneBrandList_t *a_brandList);
117 121 extern zoneBrandList_t *z_make_brand_list(const char *brandList,
118 122 const char *delim);
119 123 extern boolean_t z_lock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
120 124 extern boolean_t z_non_global_zones_exist(void);
121 125 extern boolean_t z_running_in_global_zone(void);
122 126 extern void z_set_output_functions(_z_printf_fcn_t a_echo_fcn,
123 127 _z_printf_fcn_t a_echo_debug_fcn,
124 128 _z_printf_fcn_t a_progerr_fcn);
125 129 extern int z_set_zone_spec(const char *zlist);
126 130 extern int z_verify_zone_spec(void);
127 131 extern boolean_t z_on_zone_spec(const char *zonename);
128 132 extern boolean_t z_global_only(void);
129 133 extern boolean_t z_unlock_zones(zoneList_t a_zlst, ZLOCKS_T a_lflags);
130 134 extern boolean_t z_lock_this_zone(ZLOCKS_T a_lflags);
131 135 extern boolean_t z_unlock_this_zone(ZLOCKS_T a_lflags);
132 136 extern char *z_zlist_get_zonename(zoneList_t a_zoneList,
133 137 int a_zoneId);
134 138 extern char *z_zlist_get_zonepath(zoneList_t a_zoneList,
135 139 int a_zoneId);
136 140 extern char *z_zlist_get_scratch(zoneList_t a_zoneList,
137 141 int a_zoneId);
138 142 extern boolean_t z_umount_lz_mount(char *a_lzMountPoint);
139 143 extern boolean_t z_mount_in_lz(char **r_lzMountPoint,
140 144 char **r_lzRootPath,
141 145 char *a_zoneName, char *a_gzPath,
142 146 char *a_mountPointPrefix);
143 147 extern boolean_t z_is_zone_branded(char *zoneName);
144 148 extern boolean_t z_is_zone_brand_in_list(char *zoneName,
145 149 zoneBrandList_t *brands);
146 150 extern boolean_t z_zones_are_implemented(void);
147 151
148 152 /* zones_exec.c */
149 153 extern int z_ExecCmdArray(int *r_status, char **r_results,
150 154 char *a_inputFile, char *a_cmd, char **a_args);
151 155 /*VARARGS*/
152 156 extern int z_ExecCmdList(int *r_status, char **r_results,
153 157 char *a_inputFile, char *a_cmd, ...);
154 158
155 159 /* zones_paths.c */
156 160 extern char *z_make_zone_root(char *);
157 161 extern void z_path_canonize(char *file);
158 162 extern void z_canoninplace(char *file);
159 163
160 164 /* zones_lofs.c */
161 165 extern void z_destroyMountTable(void);
162 166 extern int z_createMountTable(void);
163 167 extern int z_isPathWritable(const char *);
164 168 extern void z_resolve_lofs(char *path, size_t);
165 169
166 170 /* zones_states.c */
167 171 extern int UmountAllZones(char *mntpnt);
168 172
169 173 /*
170 174 * C++ postfix
171 175 */
172 176
173 177 #ifdef __cplusplus
174 178 }
175 179 #endif
176 180
177 181 #endif /* _INSTZONES_API_H */
↓ open down ↓ |
53 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX