libzonecfg.h revision 0209230bf1261579beab4f55226bb509e6b850cb
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * CDDL HEADER START
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * The contents of this file are subject to the terms of the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Common Development and Distribution License (the "License").
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * You may not use this file except in compliance with the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * or http://www.opensolaris.org/os/licensing.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * See the License for the specific language governing permissions
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * and limitations under the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * When distributing Covered Code, include this CDDL HEADER in each
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * If applicable, add the following below this CDDL HEADER, with the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * fields enclosed by brackets "[]" replaced with your own identifying
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * information: Portions Copyright [yyyy] [name of copyright owner]
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * CDDL HEADER END
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Use is subject to license terms.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#pragma ident "%Z%%M% %I% %E% SMI"
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Zone configuration header file.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy/* sys/socket.h is required by net/if.h, which has a constant needed here */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_EMPTY_DOCUMENT 1 /* XML doc root element is null */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_WRONG_DOC_TYPE 2 /* top-level XML doc element != zone */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_BAD_PROPERTY 3 /* libxml-level property problem */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_TEMP_FILE 4 /* problem creating temporary file */
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy#define Z_SAVING_FILE 5 /* libxml error saving or validating */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_BOGUS_ZONE_NAME 7 /* illegal zone name */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_REQD_RESOURCE_MISSING 8 /* required resource missing */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_REQD_PROPERTY_MISSING 9 /* required property missing */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_BAD_HANDLE 10 /* bad document handle */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NOMEM 11 /* out of memory (like ENOMEM) */
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy#define Z_INVAL 12 /* invalid argument (like EINVAL) */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_ACCES 13 /* permission denied (like EACCES) */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_TOO_BIG 14 /* string won't fit in char array */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_MISC_FS 15 /* miscellaneous file-system error */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NO_RESOURCE_TYPE 17 /* no/wrong resource type */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NO_RESOURCE_ID 18 /* no/wrong resource id */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NO_PROPERTY_TYPE 19 /* no/wrong property type */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NO_PROPERTY_ID 20 /* no/wrong property id */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_BAD_ZONE_STATE 21 /* zone state invalid for given task */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_INVALID_DOCUMENT 22 /* libxml can't validate against DTD */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NAME_IN_USE 23 /* zone name already in use (rename) */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NO_SUCH_ID 24 /* delete_index: no old ID */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_UPDATING_INDEX 25 /* add/modify/delete_index problem */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_LOCKING_FILE 26 /* problem locking index file */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_UNLOCKING_FILE 27 /* problem unlocking index file */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_SYSTEM 28 /* consult errno instead */
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy#define Z_INSUFFICIENT_SPEC 29 /* resource insufficiently specified */
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy#define Z_RESOLVED_PATH 34 /* resolved path mismatch */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_IPV6_ADDR_PREFIX_LEN 35 /* IPv6 address prefix length needed */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_BOGUS_ADDRESS 36 /* not IPv[4|6] address or host name */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_PRIV_PROHIBITED 37 /* specified privilege is prohibited */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_PRIV_REQUIRED 38 /* required privilege is missing */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_PRIV_UNKNOWN 39 /* specified privilege is unknown */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_BRAND_ERROR 40 /* brand-specific error */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_INCOMPATIBLE 41 /* incompatible settings */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_ALIAS_DISALLOW 42 /* rctl alias disallowed */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_CLEAR_DISALLOW 43 /* clear property disallowed */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_POOL 44 /* generic libpool error */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_POOLS_NOT_ACTIVE 45 /* pool service not enabled */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_POOL_ENABLE 46 /* pools enable failed */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_NO_POOL 47 /* no such pool configured */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_POOL_CREATE 48 /* pool create failed */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define Z_POOL_BIND 49 /* pool bind failed */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Warning: these are shared with the admin/install consolidation.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Do not insert states between any of the currently defined states,
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * and any new states must be evaluated for impact on range comparisons.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#define ZONE_INDEX_FILE ZONE_CONFIG_ROOT "/index"
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy/* Owner, group, and mode (defined by packaging) for the config directory */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy/* Owner, group, and mode (defined by packaging) for the index file */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy/* The maximum length of the VERSION string in the pkginfo(4) file. */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * Shortened alias names for the zones rctls.
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy * Bit flag definitions for passing into libzonecfg functions.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy * The integer field expresses the current values on a get.
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy * On a put, it represents the new values if >= 0 or "don't change" if < 0.
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy char zone_name[ZONENAME_MAX]; /* name of the zone */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy int zone_state; /* configured | incomplete | installed */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy char zone_path[MAXPATHLEN]; /* path to zone storage */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy uuid_t zone_uuid; /* unique ID for zone */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy char zone_newname[ZONENAME_MAX]; /* for doing renames */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedytypedef struct zone_dochandle *zone_dochandle_t; /* opaque handle */
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedytypedef struct zone_fsopt {
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy char zone_fs_special[MAXPATHLEN]; /* special file */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy char zone_fs_dir[MAXPATHLEN]; /* mount point */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy char zone_fs_type[FSTYPSZ]; /* e.g. ufs */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy zone_fsopt_t *zone_fs_options; /* mount options */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy char zone_fs_raw[MAXPATHLEN]; /* device to fsck */
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy struct zone_rctlvaltab *zone_rctlval_next;
char *zone_devperm_acl;
extern int zonecfg_get_template_handle(const char *, const char *,
extern int zonecfg_destroy_snapshot(const char *);
extern int zonecfg_create_snapshot(const char *);
extern char *zonecfg_strerror(int);
extern int zonecfg_access(const char *, int);
extern void zonecfg_set_root(const char *);
extern const char *zonecfg_get_root(void);
extern int zonecfg_validate_zonename(const char *);
struct zone_fstab *);
struct zone_fstab *);
extern int zonecfg_find_mounts(char *, int(*)(const char *, void *),
struct zone_nwiftab *);
struct zone_devtab *);
struct zone_rctltab *);
struct zone_rctlvaltab *);
struct zone_rctlvaltab *);
struct zone_attrtab *);
boolean_t *);
size_t);
struct zone_dstab *);
extern int zonecfg_destroy_tmp_pool(char *, char *, int);
extern int zonecfg_enable_rcapd(char *, int);
extern int zonecfg_get_attach_handle(const char *, const char *,
void *data);
struct zone_devpermtab *);
rctlblk_t *);
size_t);
size_t);
char *, size_t);
#ifdef __cplusplus