diff options
| author | Ron Yorston <rmy@pobox.com> | 2016-04-04 16:22:54 +0100 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2016-04-04 16:22:54 +0100 |
| commit | 253dbd612b2d2f041f4263e15a3b94df70f41e36 (patch) | |
| tree | f6c6e12a0541233058a7f7ccb1251afeb457da06 /include | |
| parent | 3cf56a021d7a62512b477640e930e1a78288075c (diff) | |
| parent | d7d4750e1e213e7448147186dddfe3bfbb47eea0 (diff) | |
| download | busybox-w32-253dbd612b2d2f041f4263e15a3b94df70f41e36.tar.gz busybox-w32-253dbd612b2d2f041f4263e15a3b94df70f41e36.tar.bz2 busybox-w32-253dbd612b2d2f041f4263e15a3b94df70f41e36.zip | |
Merge branch 'busybox' into merge
Diffstat (limited to 'include')
| -rw-r--r-- | include/busybox.h | 15 | ||||
| -rw-r--r-- | include/libbb.h | 32 |
2 files changed, 26 insertions, 21 deletions
diff --git a/include/busybox.h b/include/busybox.h index b1e31e5ee..737627bd0 100644 --- a/include/busybox.h +++ b/include/busybox.h | |||
| @@ -15,25 +15,20 @@ PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN | |||
| 15 | /* Keep in sync with applets/applet_tables.c! */ | 15 | /* Keep in sync with applets/applet_tables.c! */ |
| 16 | extern const char applet_names[] ALIGN1; | 16 | extern const char applet_names[] ALIGN1; |
| 17 | extern int (*const applet_main[])(int argc, char **argv); | 17 | extern int (*const applet_main[])(int argc, char **argv); |
| 18 | extern const uint16_t applet_nameofs[]; | 18 | extern const uint8_t applet_flags[] ALIGN1; |
| 19 | extern const uint8_t applet_suid[] ALIGN1; | ||
| 19 | extern const uint8_t applet_install_loc[] ALIGN1; | 20 | extern const uint8_t applet_install_loc[] ALIGN1; |
| 20 | 21 | ||
| 21 | #if ENABLE_FEATURE_SUID || ENABLE_FEATURE_PREFER_APPLETS | ||
| 22 | # define APPLET_NAME(i) (applet_names + (applet_nameofs[i] & 0x0fff)) | ||
| 23 | #else | ||
| 24 | # define APPLET_NAME(i) (applet_names + applet_nameofs[i]) | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #if ENABLE_FEATURE_PREFER_APPLETS | 22 | #if ENABLE_FEATURE_PREFER_APPLETS |
| 28 | # define APPLET_IS_NOFORK(i) (applet_nameofs[i] & (1 << 12)) | 23 | # define APPLET_IS_NOFORK(i) (applet_flags[(i)/4] & (1 << (2 * ((i)%4)))) |
| 29 | # define APPLET_IS_NOEXEC(i) (applet_nameofs[i] & (1 << 13)) | 24 | # define APPLET_IS_NOEXEC(i) (applet_flags[(i)/4] & (1 << ((2 * ((i)%4))+1))) |
| 30 | #else | 25 | #else |
| 31 | # define APPLET_IS_NOFORK(i) 0 | 26 | # define APPLET_IS_NOFORK(i) 0 |
| 32 | # define APPLET_IS_NOEXEC(i) 0 | 27 | # define APPLET_IS_NOEXEC(i) 0 |
| 33 | #endif | 28 | #endif |
| 34 | 29 | ||
| 35 | #if ENABLE_FEATURE_SUID | 30 | #if ENABLE_FEATURE_SUID |
| 36 | # define APPLET_SUID(i) ((applet_nameofs[i] >> 14) & 0x3) | 31 | # define APPLET_SUID(i) ((applet_suid[(i)/4] >> (2 * ((i)%4)) & 3)) |
| 37 | #endif | 32 | #endif |
| 38 | 33 | ||
| 39 | #if ENABLE_FEATURE_INSTALLER | 34 | #if ENABLE_FEATURE_INSTALLER |
diff --git a/include/libbb.h b/include/libbb.h index cb61faad9..ffe1504e1 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
| @@ -148,14 +148,18 @@ | |||
| 148 | # include <ws2tcpip.h> | 148 | # include <ws2tcpip.h> |
| 149 | #else | 149 | #else |
| 150 | # include <arpa/inet.h> | 150 | # include <arpa/inet.h> |
| 151 | # if !defined(__socklen_t_defined) && !defined(_SOCKLEN_T_DECLARED) | 151 | //This breaks on bionic: |
| 152 | /* We #define socklen_t *after* includes, otherwise we get | 152 | //# if !defined(__socklen_t_defined) && !defined(_SOCKLEN_T_DECLARED) |
| 153 | * typedef redefinition errors from system headers | 153 | ///* We #define socklen_t *after* includes, otherwise we get |
| 154 | * (in case "is it defined already" detection above failed) | 154 | // * typedef redefinition errors from system headers |
| 155 | */ | 155 | // * (in case "is it defined already" detection above failed) |
| 156 | # define socklen_t bb_socklen_t | 156 | // */ |
| 157 | typedef unsigned socklen_t; | 157 | //# define socklen_t bb_socklen_t |
| 158 | # endif | 158 | // typedef unsigned socklen_t; |
| 159 | //# endif | ||
| 160 | //if this is still needed, add a fix along the lines of | ||
| 161 | // ifdef SPECIFIC_BROKEN_LIBC_CHECK / typedef socklen_t / endif | ||
| 162 | //in platform.h instead! | ||
| 159 | #endif | 163 | #endif |
| 160 | #ifndef HAVE_CLEARENV | 164 | #ifndef HAVE_CLEARENV |
| 161 | # define clearenv() do { if (environ) environ[0] = NULL; } while (0) | 165 | # define clearenv() do { if (environ) environ[0] = NULL; } while (0) |
| @@ -507,6 +511,7 @@ void xsetuid(uid_t uid) FAST_FUNC; | |||
| 507 | void xsetegid(gid_t egid) FAST_FUNC; | 511 | void xsetegid(gid_t egid) FAST_FUNC; |
| 508 | void xseteuid(uid_t euid) FAST_FUNC; | 512 | void xseteuid(uid_t euid) FAST_FUNC; |
| 509 | void xchdir(const char *path) FAST_FUNC; | 513 | void xchdir(const char *path) FAST_FUNC; |
| 514 | void xfchdir(int fd) FAST_FUNC; | ||
| 510 | void xchroot(const char *path) FAST_FUNC; | 515 | void xchroot(const char *path) FAST_FUNC; |
| 511 | void xsetenv(const char *key, const char *value) FAST_FUNC; | 516 | void xsetenv(const char *key, const char *value) FAST_FUNC; |
| 512 | void bb_unsetenv(const char *key) FAST_FUNC; | 517 | void bb_unsetenv(const char *key) FAST_FUNC; |
| @@ -1001,9 +1006,10 @@ int BB_EXECVP(const char *file, char *const argv[]) FAST_FUNC; | |||
| 1001 | #define BB_EXECVP(prog,cmd) execvp(prog,cmd) | 1006 | #define BB_EXECVP(prog,cmd) execvp(prog,cmd) |
| 1002 | #define BB_EXECLP(prog,cmd,...) execlp(prog,cmd,__VA_ARGS__) | 1007 | #define BB_EXECLP(prog,cmd,...) execlp(prog,cmd,__VA_ARGS__) |
| 1003 | #endif | 1008 | #endif |
| 1004 | int BB_EXECVP_or_die(char **argv) NORETURN FAST_FUNC; | 1009 | void BB_EXECVP_or_die(char **argv) NORETURN FAST_FUNC; |
| 1010 | void exec_prog_or_SHELL(char **argv) NORETURN FAST_FUNC; | ||
| 1005 | 1011 | ||
| 1006 | /* xvfork() can't be a _function_, return after vfork mangles stack | 1012 | /* xvfork() can't be a _function_, return after vfork in child mangles stack |
| 1007 | * in the parent. It must be a macro. */ | 1013 | * in the parent. It must be a macro. */ |
| 1008 | #define xvfork() \ | 1014 | #define xvfork() \ |
| 1009 | ({ \ | 1015 | ({ \ |
| @@ -1015,6 +1021,7 @@ int BB_EXECVP_or_die(char **argv) NORETURN FAST_FUNC; | |||
| 1015 | #if BB_MMU | 1021 | #if BB_MMU |
| 1016 | pid_t xfork(void) FAST_FUNC; | 1022 | pid_t xfork(void) FAST_FUNC; |
| 1017 | #endif | 1023 | #endif |
| 1024 | void xvfork_parent_waits_and_exits(void) FAST_FUNC; | ||
| 1018 | 1025 | ||
| 1019 | /* NOMMU friendy fork+exec: */ | 1026 | /* NOMMU friendy fork+exec: */ |
| 1020 | pid_t spawn(char **argv) FAST_FUNC; | 1027 | pid_t spawn(char **argv) FAST_FUNC; |
| @@ -1031,6 +1038,7 @@ pid_t wait_any_nohang(int *wstat) FAST_FUNC; | |||
| 1031 | * if (rc > 0) bb_error_msg("exit code: %d", rc & 0xff); | 1038 | * if (rc > 0) bb_error_msg("exit code: %d", rc & 0xff); |
| 1032 | */ | 1039 | */ |
| 1033 | int wait4pid(pid_t pid) FAST_FUNC; | 1040 | int wait4pid(pid_t pid) FAST_FUNC; |
| 1041 | int wait_for_exitstatus(pid_t pid) FAST_FUNC; | ||
| 1034 | /* Same as wait4pid(spawn(argv)), but with NOFORK/NOEXEC if configured: */ | 1042 | /* Same as wait4pid(spawn(argv)), but with NOFORK/NOEXEC if configured: */ |
| 1035 | int spawn_and_wait(char **argv) FAST_FUNC; | 1043 | int spawn_and_wait(char **argv) FAST_FUNC; |
| 1036 | /* Does NOT check that applet is NOFORK, just blindly runs it */ | 1044 | /* Does NOT check that applet is NOFORK, just blindly runs it */ |
| @@ -1160,7 +1168,6 @@ extern void bb_herror_msg(const char *s, ...) __attribute__ ((format (printf, 1, | |||
| 1160 | extern void bb_herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) FAST_FUNC; | 1168 | extern void bb_herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2))) FAST_FUNC; |
| 1161 | extern void bb_perror_nomsg_and_die(void) NORETURN FAST_FUNC; | 1169 | extern void bb_perror_nomsg_and_die(void) NORETURN FAST_FUNC; |
| 1162 | extern void bb_perror_nomsg(void) FAST_FUNC; | 1170 | extern void bb_perror_nomsg(void) FAST_FUNC; |
| 1163 | extern void bb_info_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2))) FAST_FUNC; | ||
| 1164 | extern void bb_verror_msg(const char *s, va_list p, const char *strerr) FAST_FUNC; | 1171 | extern void bb_verror_msg(const char *s, va_list p, const char *strerr) FAST_FUNC; |
| 1165 | extern void bb_logenv_override(void) FAST_FUNC; | 1172 | extern void bb_logenv_override(void) FAST_FUNC; |
| 1166 | 1173 | ||
| @@ -1784,6 +1791,9 @@ void bb_progress_update(bb_progress_t *p, | |||
| 1784 | uoff_t transferred, | 1791 | uoff_t transferred, |
| 1785 | uoff_t totalsize) FAST_FUNC; | 1792 | uoff_t totalsize) FAST_FUNC; |
| 1786 | 1793 | ||
| 1794 | unsigned ubi_devnum_from_devname(const char *str) FAST_FUNC; | ||
| 1795 | int ubi_get_volid_by_name(unsigned ubi_devnum, const char *vol_name) FAST_FUNC; | ||
| 1796 | |||
| 1787 | 1797 | ||
| 1788 | extern const char *applet_name; | 1798 | extern const char *applet_name; |
| 1789 | 1799 | ||
