#include <sys/stat.h>
#include <sys/types.h>
+#if __GNU_LIBRARY__ < 5
+#ifndef __dietlibc__
+#error "Sorry, libc5 is not supported"
+#endif
+#endif
+
#define BB_BANNER "BusyBox v" BB_VER " (" BB_BT ")"
#ifdef DMALLOC
#include <features.h>
+/* Pull in the utility routines from libbb */
+#include "libbb.h"
enum Location {
_BB_DIR_ROOT = 0,
_BB_DIR_USR_SBIN
};
+enum SUIDRoot {
+ _BB_SUID_NEVER = 0,
+ _BB_SUID_MAYBE,
+ _BB_SUID_ALWAYS
+};
+
struct BB_applet {
- const char* name;
- int (*main)(int argc, char** argv);
- enum Location location;
+ const char *name;
+ int (*main) (int argc, char **argv);
+ enum Location location:4;
+ enum SUIDRoot need_suid:4;
};
+
/* From busybox.c */
extern const struct BB_applet applets[];
#endif
-/* Bit map related macros -- libc5 doens't provide these... sigh. */
-#ifndef setbit
-#define NBBY CHAR_BIT
-#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
-#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
-#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
-#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
-#endif
-
#ifndef RB_POWER_OFF
/* Stop system and switch power off if possible. */
#define RB_POWER_OFF 0x4321fedc
#endif
+/* Try to pull in PATH_MAX */
+#include <limits.h>
-/* Pull in the utility routines from libbb */
-#include "libbb.h"
-
-
+/* for PATH_MAX on systems that don't have it in limits.h */
+#include <sys/param.h>
+#ifndef PATH_MAX
+#define PATH_MAX 256
+#endif
-#endif /* _BB_INTERNAL_H_ */
+#endif /* _BB_INTERNAL_H_ */