Print this page
uts: add a concept of a 'default' set of privileges, separate from 'basic'


 166 } priv_info_set_t;
 167 
 168 /*
 169  * names[1] is a place holder which can contain multiple NUL terminated,
 170  * non-empty strings.
 171  */
 172 
 173 typedef struct priv_info_names {
 174         priv_info_t     info;
 175         int             cnt;            /* number of strings */
 176         char            names[1];       /* "string1\0string2\0 ..stringN\0" */
 177 } priv_info_names_t;
 178 
 179 /*
 180  * Privilege information types.
 181  */
 182 #define PRIV_INFO_SETNAMES              0x0001
 183 #define PRIV_INFO_PRIVNAMES             0x0002
 184 #define PRIV_INFO_BASICPRIVS            0x0003
 185 #define PRIV_INFO_FLAGS                 0x0004

 186 
 187 /*
 188  * Special "privileges" used to indicate special conditions in privilege
 189  * debugging/tracing code.
 190  */
 191 #define PRIV_ALL                        (-1)    /* All privileges required */
 192 #define PRIV_MULTIPLE                   (-2)    /* More than one */
 193 #define PRIV_NONE                       (-3)    /* No value */
 194 #define PRIV_ALLZONE                    (-4)    /* All privileges in zone */
 195 #define PRIV_GLOBAL                     (-5)    /* Must be in global zone */
 196 
 197 #ifdef _KERNEL
 198 
 199 #define PRIV_ALLOC                      0x1
 200 
 201 extern int priv_debug;
 202 extern int priv_basic_test;
 203 
 204 struct proc;
 205 struct prpriv;




 166 } priv_info_set_t;
 167 
 168 /*
 169  * names[1] is a place holder which can contain multiple NUL terminated,
 170  * non-empty strings.
 171  */
 172 
 173 typedef struct priv_info_names {
 174         priv_info_t     info;
 175         int             cnt;            /* number of strings */
 176         char            names[1];       /* "string1\0string2\0 ..stringN\0" */
 177 } priv_info_names_t;
 178 
 179 /*
 180  * Privilege information types.
 181  */
 182 #define PRIV_INFO_SETNAMES              0x0001
 183 #define PRIV_INFO_PRIVNAMES             0x0002
 184 #define PRIV_INFO_BASICPRIVS            0x0003
 185 #define PRIV_INFO_FLAGS                 0x0004
 186 #define PRIV_INFO_DEFAULTPRIVS          0x0005
 187 
 188 /*
 189  * Special "privileges" used to indicate special conditions in privilege
 190  * debugging/tracing code.
 191  */
 192 #define PRIV_ALL                        (-1)    /* All privileges required */
 193 #define PRIV_MULTIPLE                   (-2)    /* More than one */
 194 #define PRIV_NONE                       (-3)    /* No value */
 195 #define PRIV_ALLZONE                    (-4)    /* All privileges in zone */
 196 #define PRIV_GLOBAL                     (-5)    /* Must be in global zone */
 197 
 198 #ifdef _KERNEL
 199 
 200 #define PRIV_ALLOC                      0x1
 201 
 202 extern int priv_debug;
 203 extern int priv_basic_test;
 204 
 205 struct proc;
 206 struct prpriv;