1*c9945492SAndroid Build Coastguard Worker #ifndef _GRP_H 2*c9945492SAndroid Build Coastguard Worker #define _GRP_H 3*c9945492SAndroid Build Coastguard Worker 4*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 5*c9945492SAndroid Build Coastguard Worker extern "C" { 6*c9945492SAndroid Build Coastguard Worker #endif 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker #include <features.h> 9*c9945492SAndroid Build Coastguard Worker 10*c9945492SAndroid Build Coastguard Worker #define __NEED_size_t 11*c9945492SAndroid Build Coastguard Worker #define __NEED_gid_t 12*c9945492SAndroid Build Coastguard Worker 13*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE 14*c9945492SAndroid Build Coastguard Worker #define __NEED_FILE 15*c9945492SAndroid Build Coastguard Worker #endif 16*c9945492SAndroid Build Coastguard Worker 17*c9945492SAndroid Build Coastguard Worker #include <bits/alltypes.h> 18*c9945492SAndroid Build Coastguard Worker 19*c9945492SAndroid Build Coastguard Worker struct group { 20*c9945492SAndroid Build Coastguard Worker char *gr_name; 21*c9945492SAndroid Build Coastguard Worker char *gr_passwd; 22*c9945492SAndroid Build Coastguard Worker gid_t gr_gid; 23*c9945492SAndroid Build Coastguard Worker char **gr_mem; 24*c9945492SAndroid Build Coastguard Worker }; 25*c9945492SAndroid Build Coastguard Worker 26*c9945492SAndroid Build Coastguard Worker struct group *getgrgid(gid_t); 27*c9945492SAndroid Build Coastguard Worker struct group *getgrnam(const char *); 28*c9945492SAndroid Build Coastguard Worker 29*c9945492SAndroid Build Coastguard Worker int getgrgid_r(gid_t, struct group *, char *, size_t, struct group **); 30*c9945492SAndroid Build Coastguard Worker int getgrnam_r(const char *, struct group *, char *, size_t, struct group **); 31*c9945492SAndroid Build Coastguard Worker 32*c9945492SAndroid Build Coastguard Worker #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 33*c9945492SAndroid Build Coastguard Worker struct group *getgrent(void); 34*c9945492SAndroid Build Coastguard Worker void endgrent(void); 35*c9945492SAndroid Build Coastguard Worker void setgrent(void); 36*c9945492SAndroid Build Coastguard Worker #endif 37*c9945492SAndroid Build Coastguard Worker 38*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE 39*c9945492SAndroid Build Coastguard Worker struct group *fgetgrent(FILE *); 40*c9945492SAndroid Build Coastguard Worker int putgrent(const struct group *, FILE *); 41*c9945492SAndroid Build Coastguard Worker #endif 42*c9945492SAndroid Build Coastguard Worker 43*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 44*c9945492SAndroid Build Coastguard Worker int getgrouplist(const char *, gid_t, gid_t *, int *); 45*c9945492SAndroid Build Coastguard Worker int setgroups(size_t, const gid_t *); 46*c9945492SAndroid Build Coastguard Worker int initgroups(const char *, gid_t); 47*c9945492SAndroid Build Coastguard Worker #endif 48*c9945492SAndroid Build Coastguard Worker 49*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 50*c9945492SAndroid Build Coastguard Worker } 51*c9945492SAndroid Build Coastguard Worker #endif 52*c9945492SAndroid Build Coastguard Worker 53*c9945492SAndroid Build Coastguard Worker #endif 54