X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fpwd_.h;h=625b6f5a2eb1abf2f5dc00cbbf4854954f343b9a;hb=cd256e1c407aa70dfefb7178ed2c0e4201f1aaf7;hp=d161c0e8f963ea00bc92cfeae711f8afec5ccca5;hpb=63fc1a9e08fabfc8ba96bad80731673ef40bf5cb;p=oweals%2Fbusybox.git diff --git a/include/pwd_.h b/include/pwd_.h index d161c0e8f..625b6f5a2 100644 --- a/include/pwd_.h +++ b/include/pwd_.h @@ -18,55 +18,59 @@ 02111-1307 USA. */ /* - * POSIX Standard: 9.2.2 User Database Access + * POSIX Standard: 9.2.2 User Database Access */ -#if !defined CONFIG_USE_BB_PWD_GRP -#include +#ifndef BB_PWD_H +#define BB_PWD_H 1 -#else +PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN -#ifndef _PWD_H -#define _PWD_H 1 +/* This file is #included after #include + * We will use libc-defined structures, but will #define function names + * so that function calls are directed to bb_internal_XXX replacements + */ +#undef endpwent +#define setpwent bb_internal_setpwent +#define endpwent bb_internal_endpwent +#define getpwent bb_internal_getpwent +#define fgetpwent bb_internal_fgetpwent +#define putpwent bb_internal_putpwent +#define getpwuid bb_internal_getpwuid +#define getpwnam bb_internal_getpwnam +#define getpwent_r bb_internal_getpwent_r +#define getpwuid_r bb_internal_getpwuid_r +#define getpwnam_r bb_internal_getpwnam_r +#define fgetpwent_r bb_internal_fgetpwent_r -#include -#include -#include -/* The passwd structure. */ -struct passwd -{ - char *pw_name; /* Username. */ - char *pw_passwd; /* Password. */ - uid_t pw_uid; /* User ID. */ - gid_t pw_gid; /* Group ID. */ - char *pw_gecos; /* Real name. */ - char *pw_dir; /* Home directory. */ - char *pw_shell; /* Shell program. */ -}; +/* All function names below should be remapped by #defines above + * in order to not collide with libc names. */ /* Rewind the password-file stream. */ -extern void setpwent (void); +extern void setpwent(void); /* Close the password-file stream. */ -extern void endpwent (void); +extern void endpwent(void); +#ifdef UNUSED_SINCE_WE_AVOID_STATIC_BUFS /* Read an entry from the password-file stream, opening it if necessary. */ -extern struct passwd *getpwent (void); +extern struct passwd *getpwent(void); /* Read an entry from STREAM. */ -extern struct passwd *fgetpwent (FILE *__stream); +extern struct passwd *fgetpwent(FILE *__stream); /* Write the given entry onto the given stream. */ -extern int putpwent (__const struct passwd *__restrict __p, - FILE *__restrict __f); +extern int putpwent(const struct passwd *__restrict __p, + FILE *__restrict __f); +#endif /* Search for an entry with a matching user ID. */ -extern struct passwd *getpwuid (uid_t __uid); +extern struct passwd *getpwuid(uid_t __uid); /* Search for an entry with a matching username. */ -extern struct passwd *getpwnam (__const char *__name); +extern struct passwd *getpwnam(const char *__name); /* Reentrant versions of some of the functions above. @@ -76,32 +80,27 @@ extern struct passwd *getpwnam (__const char *__name); other reentrant functions so the chances are good this is what the POSIX people would choose. */ -extern int getpwent_r (struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); - -extern int getpwuid_r (uid_t __uid, - struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); +extern int getpwent_r(struct passwd *__restrict __resultbuf, + char *__restrict __buffer, size_t __buflen, + struct passwd **__restrict __result); -extern int getpwnam_r (__const char *__restrict __name, - struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); +extern int getpwuid_r(uid_t __uid, + struct passwd *__restrict __resultbuf, + char *__restrict __buffer, size_t __buflen, + struct passwd **__restrict __result); +extern int getpwnam_r(const char *__restrict __name, + struct passwd *__restrict __resultbuf, + char *__restrict __buffer, size_t __buflen, + struct passwd **__restrict __result); /* Read an entry from STREAM. This function is not standardized and probably never will. */ -extern int fgetpwent_r (FILE *__restrict __stream, - struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); +extern int fgetpwent_r(FILE *__restrict __stream, + struct passwd *__restrict __resultbuf, + char *__restrict __buffer, size_t __buflen, + struct passwd **__restrict __result); -/* Re-construct the password-file line for the given uid - in the given buffer. This knows the format that the caller - will expect, but this need not be the format of the password file. */ -extern int getpw (uid_t __uid, char *__buffer); +POP_SAVED_FUNCTION_VISIBILITY -#endif /* pwd.h */ #endif