source: MondoRescue/branches/3.3/mindi-busybox/include/busybox.h@ 3865

Last change on this file since 3865 was 3621, checked in by Bruno Cornec, 10 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

File size: 1.5 KB
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
4 */
5#ifndef BUSYBOX_H
6#define BUSYBOX_H 1
7
8#include "libbb.h"
9/* BB_DIR_foo and BB_SUID_bar constants: */
10#include "applet_metadata.h"
11
12PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
13
14/* Defined in appletlib.c (by including generated applet_tables.h) */
15/* Keep in sync with applets/applet_tables.c! */
16extern const char applet_names[] ALIGN1;
17extern int (*const applet_main[])(int argc, char **argv);
18extern const uint8_t applet_flags[] ALIGN1;
19extern const uint8_t applet_suid[] ALIGN1;
20extern const uint8_t applet_install_loc[] ALIGN1;
21
22#if ENABLE_FEATURE_PREFER_APPLETS
23# define APPLET_IS_NOFORK(i) (applet_flags[(i)/4] & (1 << (2 * ((i)%4))))
24# define APPLET_IS_NOEXEC(i) (applet_flags[(i)/4] & (1 << ((2 * ((i)%4))+1)))
25#else
26# define APPLET_IS_NOFORK(i) 0
27# define APPLET_IS_NOEXEC(i) 0
28#endif
29
30#if ENABLE_FEATURE_SUID
31# define APPLET_SUID(i) ((applet_suid[(i)/4] >> (2 * ((i)%4)) & 3))
32#endif
33
34#if ENABLE_FEATURE_INSTALLER
35#define APPLET_INSTALL_LOC(i) ({ \
36 unsigned v = (i); \
37 if (v & 1) v = applet_install_loc[v/2] >> 4; \
38 else v = applet_install_loc[v/2] & 0xf; \
39 v; })
40#endif
41
42
43/* Length of these names has effect on size of libbusybox
44 * and "individual" binaries. Keep them short.
45 */
46#if ENABLE_BUILD_LIBBUSYBOX
47#if ENABLE_FEATURE_SHARED_BUSYBOX
48int lbb_main(char **argv) EXTERNALLY_VISIBLE;
49#else
50int lbb_main(char **argv);
51#endif
52#endif
53
54POP_SAVED_FUNCTION_VISIBILITY
55
56#endif
Note: See TracBrowser for help on using the repository browser.