X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fbusybox.h;h=aaa844f43721d68884b1377512c4eb723eacf4a7;hb=dae099b2f96ba46bfdd6b598b06dc88713b2d0e8;hp=f79dac8c880f9f705f08d309e74a64b79d82e7f8;hpb=c1cda4a6091902bdb81cb8938838f4b26ddc52cf;p=oweals%2Fbusybox.git diff --git a/include/busybox.h b/include/busybox.h index f79dac8c8..aaa844f43 100644 --- a/include/busybox.h +++ b/include/busybox.h @@ -24,21 +24,29 @@ #ifndef _BB_INTERNAL_H_ #define _BB_INTERNAL_H_ 1 -#include "Config.h" +#include "config.h" #include #include #include #include +#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 "dmalloc.h" +#include #endif #include +/* Pull in the utility routines from libbb */ +#include "libbb.h" enum Location { _BB_DIR_ROOT = 0, @@ -48,11 +56,19 @@ enum Location { _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[]; @@ -66,41 +82,35 @@ extern const struct BB_applet applets[]; #include "applets.h" #undef PROTOTYPES -#ifdef BB_FEATURE_BUFFERS_GO_ON_STACK -#define RESERVE_BB_BUFFER(buffer,len) char buffer[len] -#define RESERVE_BB_UBUFFER(buffer,len) unsigned char buffer[len] -#define RELEASE_BB_BUFFER(buffer) ((void)0) +#ifdef CONFIG_FEATURE_BUFFERS_GO_ON_STACK +#define RESERVE_CONFIG_BUFFER(buffer,len) char buffer[len] +#define RESERVE_CONFIG_UBUFFER(buffer,len) unsigned char buffer[len] +#define RELEASE_CONFIG_BUFFER(buffer) ((void)0) #else -#ifdef BB_FEATURE_BUFFERS_GO_IN_BSS -#define RESERVE_BB_BUFFER(buffer,len) static char buffer[len] -#define RESERVE_BB_UBUFFER(buffer,len) static unsigned char buffer[len] -#define RELEASE_BB_BUFFER(buffer) ((void)0) +#ifdef CONFIG_FEATURE_BUFFERS_GO_IN_BSS +#define RESERVE_CONFIG_BUFFER(buffer,len) static char buffer[len] +#define RESERVE_CONFIG_UBUFFER(buffer,len) static unsigned char buffer[len] +#define RELEASE_CONFIG_BUFFER(buffer) ((void)0) #else -#define RESERVE_BB_BUFFER(buffer,len) char *buffer=xmalloc(len) -#define RESERVE_BB_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) -#define RELEASE_BB_BUFFER(buffer) free (buffer) +#define RESERVE_CONFIG_BUFFER(buffer,len) char *buffer=xmalloc(len) +#define RESERVE_CONFIG_UBUFFER(buffer,len) unsigned char *buffer=xmalloc(len) +#define RELEASE_CONFIG_BUFFER(buffer) free (buffer) #endif #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 -/* Pull in the utility routines from libbb */ -#include "libbb/libbb.h" - - +/* for PATH_MAX on systems that don't have it in limits.h */ +#include +#ifndef PATH_MAX +#define PATH_MAX 256 +#endif -#endif /* _BB_INTERNAL_H_ */ +#endif /* _BB_INTERNAL_H_ */