c6ea296d3a72566e8fa176dcd684ffdb41e6194a
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / ucred.h
1 /* Copyright (C) 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
18
19 #ifndef _UCRED_H
20 #define _UCRED_H
21
22 #include <features.h>
23 #include <sys/types.h>
24 #include <sys/priv.h>
25
26 typedef struct _mac_label_impl m_label_t;
27
28 typedef struct ucred_s ucred_t;
29
30 /* XXX: These shouldn't exist.  */
31 #define AUDITINFO64_ADDR_T_SIZE         44
32 #define BSLABEL_T_SIZE          36
33
34 __BEGIN_DECLS
35
36 ucred_t *ucred_get(pid_t pid);
37
38 void ucred_free(ucred_t *uc);
39
40 uid_t ucred_geteuid(const ucred_t *uc);
41
42 uid_t ucred_getruid(const ucred_t *uc);
43
44 uid_t ucred_getsuid(const ucred_t *uc);
45
46 gid_t ucred_getegid(const ucred_t *uc);
47
48 gid_t ucred_getrgid(const ucred_t *uc);
49
50 gid_t ucred_getsgid(const ucred_t *uc);
51
52 int ucred_getgroups(const ucred_t *uc, const gid_t **groups);
53
54 const priv_set_t *ucred_getprivset(const ucred_t *uc, const char *set);
55
56 pid_t ucred_getpid(const ucred_t *uc);
57
58 projid_t ucred_getprojid(const ucred_t *uc);
59
60 zoneid_t ucred_getzoneid(const ucred_t *uc);
61
62 unsigned int ucred_getpflags(const ucred_t *uc, unsigned int flags);
63
64 m_label_t *ucred_getlabel(const ucred_t *uc);
65
66 size_t ucred_size(void);
67
68 extern int getpeerucred(int fd, ucred_t **ucred);
69
70 __END_DECLS
71
72 #endif /* _UCRED_H */