4ae9fd77367c2a93e76dc24c12d22262c77a9650
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / rctl.h
1 /* Declarations of privilege 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_RCTL_H
21 #define _SYS_RCTL_H
22
23 #include <features.h>
24
25 typedef unsigned long long rctl_qty_t;
26 typedef int rctl_priv_t;
27 typedef struct rctlblk rctlblk_t;
28
29 #define RCTL_LOCAL_NOACTION     0x00000000
30 #define RCTL_LOCAL_SIGNAL       0x00000001
31 #define RCTL_LOCAL_DENY         0x00000002
32 #define RCTL_LOCAL_MAXIMAL      0x80000000
33 #define RCTL_LOCAL_PROJDB       0x40000000
34 #define RCTL_LOCAL_ACTION_MASK  0xffff0000
35 #define RCTL_LOCAL_MASK         0xc0000003
36
37 #define RCTL_GLOBAL_NOACTION            0x00000000
38 #define RCTL_GLOBAL_SYSLOG              0x00000001
39 #define RCTL_GLOBAL_NOBASIC             0x80000000
40 #define RCTL_GLOBAL_LOWERABLE           0x40000000
41 #define RCTL_GLOBAL_DENY_ALWAYS         0x20000000
42 #define RCTL_GLOBAL_DENY_NEVER          0x10000000
43 #define RCTL_GLOBAL_FILE_SIZE           0x08000000
44 #define RCTL_GLOBAL_CPU_TIME            0x04000000
45 #define RCTL_GLOBAL_SIGNAL_NEVER        0x02000000
46 #define RCTL_GLOBAL_NOLOCALACTION       RCTL_GLOBAL_SIGNAL_NEVER
47 #define RCTL_GLOBAL_INFINITE            0x01000000
48 #define RCTL_GLOBAL_UNOBSERVABLE        0x00800000
49 #define RCTL_GLOBAL_SYSLOG_NEVER        0x00080000
50 #define RCTL_GLOBAL_BYTES               0x00400000
51 #define RCTL_GLOBAL_SECONDS             0x00200000
52 #define RCTL_GLOBAL_COUNT               0x00100000
53 #define RCTL_GLOBAL_ACTION_MASK         0xffff0000
54 #define RCTL_GLOBAL_MASK                0xfff80001
55
56 __BEGIN_DECLS
57
58 int setrctl (const char *controlname, rctlblk_t *old_blk, rctlblk_t *new_blk,
59     unsigned int flags);
60
61 int getrctl (const char *controlname, rctlblk_t *old_blk, rctlblk_t *new_blk,
62     unsigned int flags);
63
64 __END_DECLS
65
66 #endif /* _SYS_RCTL_H */