Lots of changes
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / zone.h
1 /* Declarations of zone functions and types.
2    Copyright (C) 2008 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, write to the Free
17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18    02111-1307 USA.  */
19
20 #ifndef _SYS_ZONE_H
21 #define _SYS_ZONE_H
22
23 #include <sys/types.h>
24 #include <sys/priv.h>
25
26 typedef struct _mac_label_impl m_label_t;
27 typedef m_label_t bslabel_t;
28
29 /* Subcall numbers.  */
30 #define ZONE_CREATE     0
31 #define ZONE_DESTROY    1
32 #define ZONE_GETATTR    2
33 #define ZONE_ENTER      3
34 #define ZONE_LIST       4
35 #define ZONE_SHUTDOWN   5
36 #define ZONE_LOOKUP     6
37 #define ZONE_BOOT       7
38 #define ZONE_VERSION    8
39 #define ZONE_SETATTR    9
40 #define ZONE_ADD_DATALINK       10
41 #define ZONE_DEL_DATALINK       11
42 #define ZONE_CHECK_DATALINK     12
43 #define ZONE_LIST_DATALINK      13
44
45 #define GLOBAL_ZONEID   0
46 #define MIN_ZONEID      0
47 #define MIN_USERZONEID  1
48 #define MAX_ZONEID      9999
49 #define ZONEID_WIDTH    4
50 #define ALL_ZONES       (-1)
51
52 /* Zone attributes.  */
53 #define ZONE_ATTR_ROOT          1
54 #define ZONE_ATTR_NAME          2
55 #define ZONE_ATTR_STATUS        3
56 #define ZONE_ATTR_PRIVSET       4
57 #define ZONE_ATTR_UNIQID        5
58 #define ZONE_ATTR_POOLID        6
59 #define ZONE_ATTR_INITPID       7
60 #define ZONE_ATTR_SLBL          8
61 #define ZONE_ATTR_INITNAME      9
62 #define ZONE_ATTR_BOOTARGS      10
63 #define ZONE_ATTR_BRAND         11
64 #define ZONE_ATTR_PHYS_MCAP     12
65 #define ZONE_ATTR_SCHED_CLASS   13
66 #define ZONE_ATTR_FLAGS         14
67
68 #define ZONENAME_MAX            64
69
70 typedef struct
71   {
72         const char *zone_name;
73         const char *zone_root;
74         const struct priv_set *zone_privs;
75         size_t zone_privssz;
76         const char *rctlbuf;
77         size_t rctlbufsz;
78         int *extended_error;
79         const char *zfsbuf;
80         size_t zfsbufsz;
81         int match;
82         uint32_t doi;
83         const bslabel_t *label;
84         int flags;
85   } zone_def;
86
87 #endif /* _SYS_ZONE_H */