17777dab0Sopenharmony_ci#ifndef	_GRP_H
27777dab0Sopenharmony_ci#define	_GRP_H
37777dab0Sopenharmony_ci
47777dab0Sopenharmony_ci#ifdef __cplusplus
57777dab0Sopenharmony_ciextern "C" {
67777dab0Sopenharmony_ci#endif
77777dab0Sopenharmony_ci
87777dab0Sopenharmony_ci#include <features.h>
97777dab0Sopenharmony_ci
107777dab0Sopenharmony_ci#define __NEED_size_t
117777dab0Sopenharmony_ci#define __NEED_gid_t
127777dab0Sopenharmony_ci
137777dab0Sopenharmony_ci#ifdef _GNU_SOURCE
147777dab0Sopenharmony_ci#define __NEED_FILE
157777dab0Sopenharmony_ci#endif
167777dab0Sopenharmony_ci
177777dab0Sopenharmony_ci#include <bits/alltypes.h>
187777dab0Sopenharmony_ci
197777dab0Sopenharmony_cistruct group {
207777dab0Sopenharmony_ci	char *gr_name;
217777dab0Sopenharmony_ci	char *gr_passwd;
227777dab0Sopenharmony_ci	gid_t gr_gid;
237777dab0Sopenharmony_ci	char **gr_mem;
247777dab0Sopenharmony_ci};
257777dab0Sopenharmony_ci
267777dab0Sopenharmony_cistruct group  *getgrgid(gid_t);
277777dab0Sopenharmony_cistruct group  *getgrnam(const char *);
287777dab0Sopenharmony_ci
297777dab0Sopenharmony_ciint getgrgid_r(gid_t, struct group *, char *, size_t, struct group **);
307777dab0Sopenharmony_ciint getgrnam_r(const char *, struct group *, char *, size_t, struct group **);
317777dab0Sopenharmony_ci
327777dab0Sopenharmony_ci#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
337777dab0Sopenharmony_cistruct group  *getgrent(void);
347777dab0Sopenharmony_civoid           endgrent(void);
357777dab0Sopenharmony_civoid           setgrent(void);
367777dab0Sopenharmony_ci#endif
377777dab0Sopenharmony_ci
387777dab0Sopenharmony_ci#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
397777dab0Sopenharmony_ciint getgrouplist(const char *, gid_t, gid_t *, int *);
407777dab0Sopenharmony_ciint setgroups(size_t, const gid_t *);
417777dab0Sopenharmony_ciint initgroups(const char *, gid_t);
427777dab0Sopenharmony_ci#endif
437777dab0Sopenharmony_ci
447777dab0Sopenharmony_ci#ifdef __cplusplus
457777dab0Sopenharmony_ci}
467777dab0Sopenharmony_ci#endif
477777dab0Sopenharmony_ci
487777dab0Sopenharmony_ci#endif
49