install lspci and lsusb to /usr/bin
[oweals/busybox.git] / include / grp_.h
index 061b86ef728788bd559cbe919cbe7db121434d3d..7a95f88a6ebff6dfbf304a7369a57c2332b88602 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>
  */
+#ifndef BB_GRP_H
+#define BB_GRP_H 1
 
-#if !ENABLE_USE_BB_PWD_GRP
-
-#include <grp.h>
-
-#else
-
-#ifndef        _GRP_H
-#define        _GRP_H 1
-
-/* 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. */
-};
-
-/* We don't reimplement this, just supplying prototype */
-/* The function itself is in libc */
-/* Set the group set for the current user to GROUPS (N of them).  */
-extern int setgroups(size_t __n, __const gid_t *__groups);
+PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
 
+/* 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
+ */
 
 #define setgrent     bb_internal_setgrent
 #define endgrent     bb_internal_endgrent
@@ -60,9 +46,7 @@ extern int setgroups(size_t __n, __const gid_t *__groups);
 
 
 /* All function names below should be remapped by #defines above
- * in order to not collide with libc names.
- * In theory it isn't necessary, but I saw weird interactions at link time.
- * Let's play safe */
+ * in order to not collide with libc names. */
 
 
 /* Rewind the group-file stream.  */
@@ -71,6 +55,7 @@ extern void setgrent(void);
 /* Close the group-file stream.  */
 extern void endgrent(void);
 
+#ifdef UNUSED_SINCE_WE_AVOID_STATIC_BUFS
 /* Read an entry from the group-file stream, opening it if necessary.  */
 extern struct group *getgrent(void);
 
@@ -78,14 +63,15 @@ extern struct group *getgrent(void);
 extern struct group *fgetgrent(FILE *__stream);
 
 /* Write the given entry onto the given stream.  */
-extern int putgrent(__const struct group *__restrict __p,
+extern int putgrent(const struct group *__restrict __p,
                     FILE *__restrict __f);
+#endif
 
 /* Search for an entry with a matching group ID.  */
 extern struct group *getgrgid(gid_t __gid);
 
 /* Search for an entry with a matching group name.  */
-extern struct group *getgrnam(__const char *__name);
+extern struct group *getgrnam(const char *__name);
 
 /* Reentrant versions of some of the functions above.
 
@@ -105,7 +91,7 @@ extern int getgrgid_r(gid_t __gid, struct group *__restrict __resultbuf,
                       struct group **__restrict __result);
 
 /* Search for an entry with a matching group name.  */
-extern int getgrnam_r(__const char *__restrict __name,
+extern int getgrnam_r(const char *__restrict __name,
                       struct group *__restrict __resultbuf,
                       char *__restrict __buffer, size_t __buflen,
                       struct group **__restrict __result);
@@ -120,14 +106,14 @@ extern int fgetgrent_r(FILE *__restrict __stream,
 /* 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,
+extern int 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);
+extern int initgroups(const char *__user, gid_t __group);
 
+POP_SAVED_FUNCTION_VISIBILITY
 
-#endif /* grp.h  */
 #endif