X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fpwd_.h;h=17348298a034edd600ebf425e965015fceeab750;hb=refs%2Fheads%2F1_26_stable;hp=72151203e1dbf200c9a6c65e88e8cebc43aa2976;hpb=9615a08218caa63c4221a6b5922c628328e719d1;p=oweals%2Fbusybox.git diff --git a/include/pwd_.h b/include/pwd_.h index 72151203e..17348298a 100644 --- a/include/pwd_.h +++ b/include/pwd_.h @@ -1,3 +1,4 @@ +/* vi: set sw=4 ts=4: */ /* Copyright (C) 1991,92,95,96,97,98,99,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -17,90 +18,50 @@ 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 - -#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. */ -}; +/* 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 getpwuid bb_internal_getpwuid +#define getpwnam bb_internal_getpwnam +#define getpwnam_r bb_internal_getpwnam_r +/* 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); +void FAST_FUNC setpwent(void); /* Close the password-file stream. */ -extern void endpwent (void); +void FAST_FUNC endpwent(void); /* Read an entry from the password-file stream, opening it if necessary. */ -extern struct passwd *getpwent (void); - -/* Read an entry from 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); +struct passwd* FAST_FUNC getpwent(void); /* Search for an entry with a matching user ID. */ -extern struct passwd *getpwuid (uid_t __uid); +struct passwd* FAST_FUNC getpwuid(uid_t __uid); /* Search for an entry with a matching username. */ -extern struct passwd *getpwnam (__const char *__name); - -/* Reentrant versions of some of the functions above. - - PLEASE NOTE: the `getpwent_r' function is not (yet) standardized. - The interface may change in later versions of this library. But - the interface is designed following the principals used for the - 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 getpwnam_r (__const char *__restrict __name, - struct passwd *__restrict __resultbuf, - char *__restrict __buffer, size_t __buflen, - struct passwd **__restrict __result); - +struct passwd* FAST_FUNC getpwnam(const char *__name); -/* 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); +/* Reentrant versions of some of the functions above. */ +int FAST_FUNC getpwnam_r(const char *__restrict __name, + 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