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) attribute_hidden;
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) attribute_hidden;
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) attribute_hidden;
29 extern int __old_getgrnam_r (const char *__name, struct group *__resultbuf,
30 			     char *__buffer, size_t __buflen,
31 			     struct group **__result);
32 
33 #define DECLARE_NSS_PROTOTYPES(service)					   \
34 extern enum nss_status _nss_ ## service ## _setgrent (int);		   \
35 extern enum nss_status _nss_ ## service ## _endgrent (void);		   \
36 extern enum nss_status _nss_ ## service ## _getgrgid_r			   \
37 		       (gid_t gid, struct group *grp, char *buffer,	   \
38 			size_t buflen, int *errnop);			   \
39 extern enum nss_status _nss_ ## service ## _getgrnam_r			   \
40 		       (const char *name, struct group *grp,		   \
41 			char *buffer, size_t buflen, int *errnop);	   \
42 extern enum nss_status _nss_ ## service ##_getgrent_r			   \
43 		       (struct group *result, char *buffer, size_t buflen, \
44 			int *errnop);					   \
45 extern enum nss_status _nss_ ## service ##_initgroups_dyn		   \
46 		       (const char *user, gid_t group, long int *start,	   \
47 			long int *size, gid_t **groupsp, long int limit,   \
48 			int *errnop);
49 
50 DECLARE_NSS_PROTOTYPES (compat)
51 DECLARE_NSS_PROTOTYPES (files)
52 DECLARE_NSS_PROTOTYPES (hesiod)
53 
54 #undef DECLARE_NSS_PROTOTYPES
55 #endif
56 #endif
57