Print this page
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/cmd/zoneadmd/zoneadmd.h
+++ new/usr/src/cmd/zoneadmd/zoneadmd.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
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) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
24 24 * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
25 25 * Copyright 2016 Joyent, Inc.
26 26 */
27 27
28 28 #ifndef _ZONEADMD_H
29 29 #define _ZONEADMD_H
30 30
31 31 #ifdef __cplusplus
32 32 extern "C" {
33 33 #endif
34 34
35 35 #include <libdladm.h>
36 36
37 37 /*
38 38 * Multi-threaded programs should avoid MT-unsafe library calls (i.e., any-
39 39 * thing which could try to acquire a user-level lock unprotected by an atfork
40 40 * handler) between fork(2) and exec(2). See the pthread_atfork(3THR) man
41 41 * page for details. In particular, we want to avoid calls to zerror() in
42 42 * such situations, as it calls setlocale(3c) which is susceptible to such
43 43 * problems. So instead we have the child use one of the special exit codes
44 44 * below when needed, and the parent look out for such possibilities and call
45 45 * zerror() there.
46 46 *
47 47 * Since 0, 1 and 2 are generally used for success, general error, and usage,
48 48 * we start with 3.
49 49 */
50 50 #define ZEXIT_FORK 3
51 51 #define ZEXIT_EXEC 4
52 52 #define ZEXIT_ZONE_ENTER 5
53 53
54 54 #define DEVFSADM "devfsadm"
55 55 #define DEVFSADM_PATH "/usr/sbin/devfsadm"
56 56
57 57 #define EXEC_PREFIX "exec "
58 58 #define EXEC_LEN (strlen(EXEC_PREFIX))
59 59
60 60 #define CLUSTER_BRAND_NAME "cluster"
61 61 #define LABELED_BRAND_NAME "labeled"
62 62
|
↓ open down ↓ |
62 lines elided |
↑ open up ↑ |
63 63 #define SHUTDOWN_WAIT 60
64 64 #define SHUTDOWN_DEFAULT "/sbin/init 0"
65 65 #define SHUTDOWN_FMRI "svc:/system/zones:default"
66 66
67 67 /* 0755 is the default directory mode. */
68 68 #define DEFAULT_DIR_MODE \
69 69 (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
70 70 #define DEFAULT_DIR_USER -1 /* user ID for chown: -1 means don't change */
71 71 #define DEFAULT_DIR_GROUP -1 /* grp ID for chown: -1 means don't change */
72 72
73 -#define ALT_MOUNT(mount_cmd) ((mount_cmd) != Z_MNT_BOOT)
73 +#define ALT_MOUNT(mount_cmd) ((mount_cmd) != Z_MNT_BOOT)
74 74
75 75 typedef struct zlog {
76 76 FILE *logfile; /* file to log to */
77 77
78 78 /*
79 79 * The following are used if logging to a buffer.
80 80 */
81 81 char *log; /* remaining log */
82 82 size_t loglen; /* size of remaining log */
83 83 char *buf; /* underlying storage */
84 84 size_t buflen; /* total len of 'buf' */
85 85 char *locale; /* locale to use for gettext() */
86 86 } zlog_t;
87 87
88 88 extern zlog_t logsys;
89 89
90 90 extern mutex_t lock;
91 91 extern mutex_t msglock;
92 92 extern boolean_t in_death_throes;
93 93 extern boolean_t bringup_failure_recovery;
94 94 extern char *zone_name;
95 95 extern char zonepath[MAXNAMELEN];
96 96 extern zone_dochandle_t snap_hndl;
|
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
97 97 extern char pool_name[MAXNAMELEN];
98 98 extern char brand_name[MAXNAMELEN];
99 99 extern char default_brand[MAXNAMELEN];
100 100 extern char boot_args[BOOTARGS_MAX];
101 101 extern boolean_t zone_isnative;
102 102 extern boolean_t zone_iscluster;
103 103 extern dladm_handle_t dld_handle;
104 104
105 105 extern void zerror(zlog_t *, boolean_t, const char *, ...);
106 106 extern char *localize_msg(char *locale, const char *msg);
107 -extern void nwifent_free_attrs(struct zone_nwiftab *);
108 107
109 108 /*
110 109 * Eventstream interfaces.
111 110 */
112 111 typedef enum {
113 112 Z_EVT_NULL = 0,
114 113 Z_EVT_ZONE_BOOTING,
115 114 Z_EVT_ZONE_REBOOTING,
116 115 Z_EVT_ZONE_HALTED,
117 116 Z_EVT_ZONE_READIED,
118 117 Z_EVT_ZONE_UNINSTALLING,
119 118 Z_EVT_ZONE_BOOTFAILED
120 119 } zone_evt_t;
121 120
122 121 extern int eventstream_init();
123 122 extern void eventstream_write(zone_evt_t evt);
124 123
125 124 /*
126 125 * Zone mount styles. Boot is the standard mount we do when booting the zone,
127 126 * scratch is the standard scratch zone mount for upgrade and update is a
128 127 * variation on the scratch zone where we don't lofs mount the zone's /etc
129 128 * and /var back into the scratch zone so that we can then do an
130 129 * 'update on attach' within the scratch zone.
|
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
131 130 */
132 131 typedef enum {
133 132 Z_MNT_BOOT = 0,
134 133 Z_MNT_SCRATCH,
135 134 Z_MNT_UPDATE
136 135 } zone_mnt_t;
137 136
138 137 /*
139 138 * Virtual platform interfaces.
140 139 */
141 -extern zoneid_t vplat_create(zlog_t *, zone_mnt_t, zoneid_t);
140 +extern zoneid_t vplat_create(zlog_t *, zone_mnt_t);
142 141 extern int vplat_bringup(zlog_t *, zone_mnt_t, zoneid_t);
143 -extern int vplat_teardown(zlog_t *, boolean_t, boolean_t, boolean_t);
142 +extern int vplat_teardown(zlog_t *, boolean_t, boolean_t);
144 143 extern int vplat_get_iptype(zlog_t *, zone_iptype_t *);
145 144
146 145 /*
147 146 * Filesystem mounting interfaces.
148 147 */
149 148 extern int valid_mount_path(zlog_t *, const char *, const char *,
150 149 const char *, const char *);
151 150 extern int make_one_dir(zlog_t *, const char *, const char *,
152 151 mode_t, uid_t, gid_t);
153 152 extern void resolve_lofs(zlog_t *zlogp, char *path, size_t pathlen);
154 153
155 154 /*
156 155 * Console subsystem routines.
157 156 */
158 157 extern int init_console(zlog_t *);
159 158 extern void serve_console(zlog_t *);
160 159 extern void zcons_statechanged();
161 160
162 161 /*
163 162 * Memory capping thread creation.
164 163 */
165 164 extern void create_mcap_thread(zlog_t *, zoneid_t);
166 165 extern void destroy_mcap_thread();
167 166
168 167 /*
169 168 * Zone FD log thread creation.
170 169 */
171 170 extern void create_log_thread(zlog_t *, zoneid_t);
|
↓ open down ↓ |
18 lines elided |
↑ open up ↑ |
172 171 extern void destroy_log_thread();
173 172
174 173 /*
175 174 * Contract handling.
176 175 */
177 176 extern int init_template(void);
178 177
179 178 /*
180 179 * Routine to manage child processes.
181 180 */
182 -extern int do_subproc(zlog_t *, char *, char **, boolean_t);
181 +extern int do_subproc(zlog_t *, char *, char **);
183 182
184 183 #ifdef __cplusplus
185 184 }
186 185 #endif
187 186
188 187 #endif /* _ZONEADMD_H */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX