1 | #ifndef _GRP_H |
2 | #include <grp/grp.h> |
3 | |
4 | #ifndef _ISOMAC |
5 | libc_hidden_proto (setgroups) |
6 | |
7 | /* Now define the internal interfaces. */ |
8 | extern int __getgrent_r (struct group *__resultbuf, char *buffer, |
9 | size_t __buflen, struct group **__result) |
10 | attribute_hidden; |
11 | extern int __old_getgrent_r (struct group *__resultbuf, char *buffer, |
12 | size_t __buflen, struct group **__result); |
13 | extern int __fgetgrent_r (FILE * __stream, struct group *__resultbuf, |
14 | char *buffer, size_t __buflen, |
15 | struct group **__result); |
16 | |
17 | /* Search for an entry with a matching group ID. */ |
18 | extern int __getgrgid_r (__gid_t __gid, struct group *__resultbuf, |
19 | char *__buffer, size_t __buflen, |
20 | struct group **__result); |
21 | extern int __old_getgrgid_r (__gid_t __gid, struct group *__resultbuf, |
22 | char *__buffer, size_t __buflen, |
23 | struct group **__result); |
24 | |
25 | /* Search for an entry with a matching group name. */ |
26 | extern int __getgrnam_r (const char *__name, struct group *__resultbuf, |
27 | char *__buffer, size_t __buflen, |
28 | struct group **__result); |
29 | extern int __old_getgrnam_r (const char *__name, struct group *__resultbuf, |
30 | char *__buffer, size_t __buflen, |
31 | struct group **__result); |
32 | |
33 | struct parser_data; |
34 | extern int _nss_files_parse_grent (char *line, struct group *result, |
35 | struct parser_data *data, |
36 | size_t datalen, int *errnop); |
37 | libc_hidden_proto (_nss_files_parse_grent) |
38 | |
39 | #define DECLARE_NSS_PROTOTYPES(service) \ |
40 | extern enum nss_status _nss_ ## service ## _setgrent (int); \ |
41 | extern enum nss_status _nss_ ## service ## _endgrent (void); \ |
42 | extern enum nss_status _nss_ ## service ## _getgrgid_r \ |
43 | (gid_t gid, struct group *grp, char *buffer, \ |
44 | size_t buflen, int *errnop); \ |
45 | extern enum nss_status _nss_ ## service ## _getgrnam_r \ |
46 | (const char *name, struct group *grp, \ |
47 | char *buffer, size_t buflen, int *errnop); \ |
48 | extern enum nss_status _nss_ ## service ##_getgrent_r \ |
49 | (struct group *result, char *buffer, size_t buflen, \ |
50 | int *errnop); \ |
51 | extern enum nss_status _nss_ ## service ##_initgroups_dyn \ |
52 | (const char *user, gid_t group, long int *start, \ |
53 | long int *size, gid_t **groupsp, long int limit, \ |
54 | int *errnop); |
55 | |
56 | DECLARE_NSS_PROTOTYPES (compat) |
57 | DECLARE_NSS_PROTOTYPES (files) |
58 | DECLARE_NSS_PROTOTYPES (hesiod) |
59 | DECLARE_NSS_PROTOTYPES (nis) |
60 | DECLARE_NSS_PROTOTYPES (nisplus) |
61 | |
62 | #undef DECLARE_NSS_PROTOTYPES |
63 | #endif |
64 | #endif |
65 | |