ash: rename some function parameters to match dash
[oweals/busybox.git] / include / grp_.h
index b34addfa2b951806ed781f9425c88ed766123d4f..db13ce3b42b2673166ed9ceebb35d52779ddfe23 100644 (file)
    You should have received a copy of the GNU Lesser General Public
    License along with the GNU C Library; if not, write to the Free
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
+   02111-1307 USA.
+ */
 /*
- *     POSIX Standard: 9.2.1 Group Database Access     <grp.h>
+ * POSIX Standard: 9.2.1 Group Database Access <grp.h>
  */
+#ifndef BB_GRP_H
+#define BB_GRP_H 1
 
+PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
 
-#if !defined CONFIG_USE_BB_PWD_GRP
-#include <grp.h>
-
-#else
-
-#ifndef        _GRP_H
-#define        _GRP_H  1
-
-#include <sys/types.h>
-#include <features.h>
-#include <stdio.h>
-
-/* The group structure.         */
-struct group
-{
-    char *gr_name;             /* Group name.  */
-    char *gr_passwd;           /* Password.    */
-    gid_t gr_gid;              /* Group ID.    */
-    char **gr_mem;             /* Member list. */
-};
-
+/* This file is #included after #include <grp.h>
+ * We will use libc-defined structures, but will #define function names
+ * so that function calls are directed to bb_internal_XXX replacements
+ */
+#undef endgrent
+#define endgrent     bb_internal_endgrent
+#define getgrgid     bb_internal_getgrgid
+#define getgrnam     bb_internal_getgrnam
+#define getgrouplist bb_internal_getgrouplist
+#define initgroups   bb_internal_initgroups
 
-/* Rewind the group-file stream.  */
-extern void setgrent (void);
+/* All function names below should be remapped by #defines above
+ * in order to not collide with libc names. */
 
 /* Close the group-file stream.  */
-extern void endgrent (void);
-
-/* Read an entry from the group-file stream, opening it if necessary.  */
-extern struct group *getgrent (void);
-
-/* Read a group entry from STREAM.  */
-extern struct group *fgetgrent (FILE *__stream);
-
-/* Write the given entry onto the given stream.  */
-extern int putgrent (__const struct group *__restrict __p,
-                    FILE *__restrict __f);
+void FAST_FUNC endgrent(void);
 
 /* Search for an entry with a matching group ID.  */
-extern struct group *getgrgid (gid_t __gid);
+struct group* FAST_FUNC getgrgid(gid_t __gid);
 
 /* Search for an entry with a matching group name.  */
-extern struct group *getgrnam (__const char *__name);
-
-/* Reentrant versions of some of the functions above.
-
-   PLEASE NOTE: the `getgrent_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 getgrent_r (struct group *__restrict __resultbuf,
-                      char *__restrict __buffer, size_t __buflen,
-                      struct group **__restrict __result);
-
-/* Search for an entry with a matching group ID.  */
-extern int getgrgid_r (gid_t __gid, struct group *__restrict __resultbuf,
-                      char *__restrict __buffer, size_t __buflen,
-                      struct group **__restrict __result);
-
-/* Search for an entry with a matching group name.  */
-extern int getgrnam_r (__const char *__restrict __name,
-                      struct group *__restrict __resultbuf,
-                      char *__restrict __buffer, size_t __buflen,
-                      struct group **__restrict __result);
-
-/* Read a group entry from STREAM.  This function is not standardized
-   an probably never will.  */
-extern int fgetgrent_r (FILE *__restrict __stream,
-                       struct group *__restrict __resultbuf,
-                       char *__restrict __buffer, size_t __buflen,
-                       struct group **__restrict __result);
+struct group* FAST_FUNC getgrnam(const char *__name);
 
-/* Set the group set for the current user to GROUPS (N of them).  */
-extern int setgroups (size_t __n, __const gid_t *__groups);
+/* Reentrant versions of some of the functions above. */
 
 /* Store at most *NGROUPS members of the group set for USER into
    *GROUPS.  Also include GROUP.  The actual number of groups found is
    returned in *NGROUPS.  Return -1 if the if *NGROUPS is too small.  */
-extern int getgrouplist (__const char *__user, gid_t __group,
-                        gid_t *__groups, int *__ngroups);
+int FAST_FUNC getgrouplist(const char *__user, gid_t __group,
+               gid_t *__groups, int *__ngroups);
 
 /* Initialize the group set for the current user
    by reading the group database and using all groups
    of which USER is a member.  Also include GROUP.  */
-extern int initgroups (__const char *__user, gid_t __group);
+int FAST_FUNC initgroups(const char *__user, gid_t __group);
 
+POP_SAVED_FUNCTION_VISIBILITY
 
-#endif /* grp.h  */
 #endif