Annotation of /trunk/mkinitrd-magellan/busybox/include/busybox.h
Parent Directory
|
Revision Log
Revision 816 -
(hide annotations)
(download)
Fri Apr 24 18:33:46 2009 UTC (15 years, 1 month ago) by niro
File MIME type: text/plain
File size: 1883 byte(s)
Fri Apr 24 18:33:46 2009 UTC (15 years, 1 month ago) by niro
File MIME type: text/plain
File size: 1883 byte(s)
-updated to busybox-1.13.4
1 | niro | 532 | /* vi: set sw=4 ts=4: */ |
2 | /* | ||
3 | * Busybox main internal header file | ||
4 | * | ||
5 | * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. | ||
6 | */ | ||
7 | #ifndef _BB_INTERNAL_H_ | ||
8 | #define _BB_INTERNAL_H_ 1 | ||
9 | |||
10 | #include "libbb.h" | ||
11 | |||
12 | niro | 816 | #if __GNUC_PREREQ(4,1) |
13 | # pragma GCC visibility push(hidden) | ||
14 | #endif | ||
15 | |||
16 | /* order matters: used as index into "install_dir[]" in appletlib.c */ | ||
17 | typedef enum bb_install_loc_t { | ||
18 | niro | 532 | _BB_DIR_ROOT = 0, |
19 | _BB_DIR_BIN, | ||
20 | _BB_DIR_SBIN, | ||
21 | _BB_DIR_USR_BIN, | ||
22 | _BB_DIR_USR_SBIN | ||
23 | niro | 816 | } bb_install_loc_t; |
24 | niro | 532 | |
25 | niro | 816 | typedef enum bb_suid_t { |
26 | niro | 532 | _BB_SUID_NEVER = 0, |
27 | _BB_SUID_MAYBE, | ||
28 | _BB_SUID_ALWAYS | ||
29 | niro | 816 | } bb_suid_t; |
30 | niro | 532 | |
31 | |||
32 | niro | 816 | /* Defined in appletlib.c (by including generated applet_tables.h) */ |
33 | /* Keep in sync with applets/applet_tables.c! */ | ||
34 | extern const char applet_names[]; | ||
35 | extern int (*const applet_main[])(int argc, char **argv); | ||
36 | extern const uint16_t applet_nameofs[]; | ||
37 | extern const uint8_t applet_install_loc[]; | ||
38 | niro | 532 | |
39 | niro | 816 | #if ENABLE_FEATURE_SUID || ENABLE_FEATURE_PREFER_APPLETS |
40 | #define APPLET_NAME(i) (applet_names + (applet_nameofs[i] & 0x0fff)) | ||
41 | #else | ||
42 | #define APPLET_NAME(i) (applet_names + applet_nameofs[i]) | ||
43 | #endif | ||
44 | |||
45 | #if ENABLE_FEATURE_PREFER_APPLETS | ||
46 | #define APPLET_IS_NOFORK(i) (applet_nameofs[i] & (1 << 12)) | ||
47 | #define APPLET_IS_NOEXEC(i) (applet_nameofs[i] & (1 << 13)) | ||
48 | #endif | ||
49 | |||
50 | #if ENABLE_FEATURE_SUID | ||
51 | #define APPLET_SUID(i) ((applet_nameofs[i] >> 14) & 0x3) | ||
52 | #endif | ||
53 | |||
54 | #if ENABLE_FEATURE_INSTALLER | ||
55 | #define APPLET_INSTALL_LOC(i) ({ \ | ||
56 | unsigned v = (i); \ | ||
57 | if (v & 1) v = applet_install_loc[v/2] >> 4; \ | ||
58 | else v = applet_install_loc[v/2] & 0xf; \ | ||
59 | v; }) | ||
60 | #endif | ||
61 | |||
62 | |||
63 | /* Length of these names has effect on size of libbusybox | ||
64 | * and "individual" binaries. Keep them short. | ||
65 | niro | 532 | */ |
66 | niro | 816 | #if ENABLE_BUILD_LIBBUSYBOX |
67 | #if ENABLE_FEATURE_SHARED_BUSYBOX | ||
68 | int lbb_main(char **argv) EXTERNALLY_VISIBLE; | ||
69 | #else | ||
70 | int lbb_main(char **argv); | ||
71 | #endif | ||
72 | #endif | ||
73 | niro | 532 | |
74 | niro | 816 | #if __GNUC_PREREQ(4,1) |
75 | # pragma GCC visibility pop | ||
76 | #endif | ||
77 | |||
78 | #endif /* _BB_INTERNAL_H_ */ |