Print this page
patch zone-auto-create-be


   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,