Add headers for OpenSolaris extensions that glibc implements
[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 __BEGIN_DECLS
31
32 extern ucred_t *ucred_get (pid_t pid);
33 extern void ucred_free (ucred_t *uc);
34 extern size_t ucred_size (void);
35
36 extern uid_t ucred_geteuid (const ucred_t *uc);
37 extern uid_t ucred_getruid (const ucred_t *uc);
38 extern uid_t ucred_getsuid (const ucred_t *uc);
39 extern gid_t ucred_getegid (const ucred_t *uc);
40 extern gid_t ucred_getrgid (const ucred_t *uc);
41 extern gid_t ucred_getsgid (const ucred_t *uc);
42 extern pid_t ucred_getpid (const ucred_t *uc);
43 extern projid_t ucred_getprojid (const ucred_t *uc);
44 extern zoneid_t ucred_getzoneid (const ucred_t *uc);
45
46 extern int ucred_getgroups (const ucred_t *uc, const gid_t **groups);
47 extern const priv_set_t *ucred_getprivset (const ucred_t *uc, const char *set);
48 extern unsigned int ucred_getpflags (const ucred_t *uc, unsigned int flags);
49 extern m_label_t *ucred_getlabel (const ucred_t *uc);
50
51 extern int getpeerucred (int fd, ucred_t **ucred);
52
53 __END_DECLS
54
55 #endif /* _UCRED_H */