glibc/include/grp.h
Petr Vorel ae7a94e5e3 Remove --enable-obsolete-nsl configure flag
this means that *always* libnsl is only built as shared library for
backward compatibility and the NSS modules libnss_nis and libnss_nisplus
are not built at all, libnsl's headers aren't installed.

This compatibility is kept only for architectures and ABIs that have
been added in or before version 2.28.

Replacement implementations based on TIRPC, which additionally support
IPv6, are available from <https://github.com/thkukuk/>.

This change does not affect libnss_compat which does not depended
on libnsl since 2.27 and thus can be used without NIS.

libnsl code depends on Sun RPC, e.g. on --enable-obsolete-rpc (installed
libnsl headers use installed Sun RPC headers), which will be removed in
the following commit.
2020-07-08 17:25:57 +02:00

63 lines
2.4 KiB
C

#ifndef _GRP_H
#include <grp/grp.h>
#ifndef _ISOMAC
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) attribute_hidden;
/* 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) attribute_hidden;
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) attribute_hidden;
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)
#undef DECLARE_NSS_PROTOTYPES
#endif
#endif