55faf1e9f43b2789181b5645e708474a66cd414a
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / ucredP.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 _UCREDP_H
21 #define _UCREDP_H
22
23 #include <sys/types.h>
24 #include <auditP.h>
25 #include <privP.h>
26
27 typedef struct prcred
28   {
29         uid_t pr_euid;
30         uid_t pr_ruid;
31         uid_t pr_suid;
32         gid_t pr_egid;
33         gid_t pr_rgid;
34         gid_t pr_sgid;
35         int pr_ngroups;
36         gid_t pr_groups[1];
37   } prcred_t;
38
39 typedef struct ucred_s
40   {
41         uint32_t uc_size;
42         uint32_t uc_credoff;
43         uint32_t uc_privoff;
44         pid_t uc_pid;
45         uint32_t uc_audoff;
46         zoneid_t uc_zoneid;
47         projid_t uc_projid;
48         uint32_t uc_labeloff;
49   } ucred_t;
50
51 #define BSLABEL_T_SIZE          36
52
53 extern ucred_t *_ucred_alloc (void);
54 extern void ucred_free (ucred_t *);
55 extern size_t ucred_size (void);
56 extern uid_t ucred_geteuid (const ucred_t *uc);
57 extern uid_t ucred_getruid (const ucred_t *uc);
58 extern gid_t ucred_getegid (const ucred_t *uc);
59 extern gid_t ucred_getrgid (const ucred_t *uc);
60 extern pid_t ucred_getpid (const ucred_t *uc);
61
62 #endif /* _UCREDP_H */