Add headers for OpenSolaris extensions that glibc implements
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / priv.h
1 /* Copyright (C) 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
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 _PRIV_H
21 #define _PRIV_H
22
23 #include <sys/priv.h>
24 #include <features.h>
25
26 #define PRIV_STR_PORT   0x00
27 #define PRIV_STR_LIT    0x01
28 #define PRIV_STR_SHORT  0x02
29
30 #define PRIV_ALLSETS    (priv_ptype_t)0
31
32 __BEGIN_DECLS
33
34 extern int setppriv (priv_op_t, priv_ptype_t, const priv_set_t *);
35 extern int getppriv (priv_ptype_t, priv_set_t *);
36 extern int setpflags (unsigned int, unsigned int);
37 extern unsigned int getpflags (unsigned int);
38 extern const priv_impl_info_t *getprivimplinfo (void);
39
40 extern int priv_set (priv_op_t, priv_ptype_t, ...);
41 extern boolean_t priv_ineffect(const char *);
42
43 extern priv_set_t *priv_str_to_set (const char *, const char *, const char **);
44 extern char *priv_set_to_str (const priv_set_t *, char, int);
45
46 extern int priv_getbyname (const char *);
47 extern const char *priv_getbynum (int);
48 extern int priv_getsetbyname (const char *);
49 extern const char *priv_getsetbynum (int);
50
51 extern char *priv_gettext (const char *);
52
53 extern priv_set_t *priv_allocset (void);
54 extern void priv_freeset (priv_set_t *);
55
56 extern void priv_emptyset (priv_set_t *);
57 extern void priv_fillset (priv_set_t *);
58
59 extern boolean_t priv_isemptyset (const priv_set_t *);
60 extern boolean_t priv_isfullset (const priv_set_t *);
61 extern boolean_t priv_isequalset (const priv_set_t *, const priv_set_t *);
62 extern boolean_t priv_issubset (const priv_set_t *, const priv_set_t *);
63 extern boolean_t priv_ismember (const priv_set_t *, const char *);
64
65 extern void priv_intersect (const priv_set_t *, priv_set_t *);
66 extern void priv_union (const priv_set_t *, priv_set_t *);
67 extern void priv_inverse (priv_set_t *);
68
69 extern int priv_addset (priv_set_t *, const char *);
70 extern void priv_copyset (const priv_set_t *, priv_set_t *);
71 extern int priv_delset (priv_set_t *, const char *);
72
73 __END_DECLS
74
75 #endif /* _PRIV_H */