| #ifndef _GRP_H |
| #include <grp/grp.h> |
| |
| libc_hidden_proto (setgroups) |
| |
| /* Now define the internal interfaces. */ |
| extern int __getgrent_r (struct group *__resultbuf, char *buffer, |
| size_t __buflen, struct group **__result) |
| attribute_hidden; |
| extern int __old_getgrent_r (struct group *__resultbuf, char *buffer, |
| size_t __buflen, struct group **__result); |
| extern int __fgetgrent_r (FILE * __stream, struct group *__resultbuf, |
| char *buffer, size_t __buflen, |
| struct group **__result); |
| |
| /* Search for an entry with a matching group ID. */ |
| extern int __getgrgid_r (__gid_t __gid, struct group *__resultbuf, |
| char *__buffer, size_t __buflen, |
| struct group **__result); |
| extern int __old_getgrgid_r (__gid_t __gid, struct group *__resultbuf, |
| char *__buffer, size_t __buflen, |
| struct group **__result); |
| |
| /* Search for an entry with a matching group name. */ |
| extern int __getgrnam_r (__const char *__name, struct group *__resultbuf, |
| char *__buffer, size_t __buflen, |
| struct group **__result); |
| extern int __old_getgrnam_r (__const char *__name, struct group *__resultbuf, |
| char *__buffer, size_t __buflen, |
| struct group **__result); |
| |
| struct parser_data; |
| extern int _nss_files_parse_grent (char *line, struct group *result, |
| struct parser_data *data, |
| size_t datalen, int *errnop); |
| libc_hidden_proto (_nss_files_parse_grent) |
| |
| #define DECLARE_NSS_PROTOTYPES(service) \ |
| extern enum nss_status _nss_ ## service ## _setgrent (int); \ |
| extern enum nss_status _nss_ ## service ## _endgrent (void); \ |
| extern enum nss_status _nss_ ## service ## _getgrgid_r \ |
| (gid_t gid, struct group *grp, char *buffer, \ |
| size_t buflen, int *errnop); \ |
| extern enum nss_status _nss_ ## service ## _getgrnam_r \ |
| (const char *name, struct group *grp, \ |
| char *buffer, size_t buflen, int *errnop); \ |
| extern enum nss_status _nss_ ## service ##_getgrent_r \ |
| (struct group *result, char *buffer, size_t buflen, \ |
| int *errnop); \ |
| extern enum nss_status _nss_ ## service ##_initgroups_dyn \ |
| (const char *user, gid_t group, long int *start, \ |
| long int *size, gid_t **groupsp, long int limit, \ |
| int *errnop); |
| |
| DECLARE_NSS_PROTOTYPES (compat) |
| DECLARE_NSS_PROTOTYPES (files) |
| DECLARE_NSS_PROTOTYPES (hesiod) |
| DECLARE_NSS_PROTOTYPES (nis) |
| DECLARE_NSS_PROTOTYPES (nisplus) |
| |
| #undef DECLARE_NSS_PROTOTYPES |
| #endif |