aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-04-14 10:09:57 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-04-14 10:09:57 +0000
commitf5294e1f4c56afb377ada95a7757b28ad3c89086 (patch)
tree95a0c3632c8c2b20fa6b60f1e1a33e4fc4b24d4f /include
parent16abcd90aefae8bdb9f7d80a555982dba6ca59b5 (diff)
downloadbusybox-f5294e1f4c56afb377ada95a7757b28ad3c89086.tar.gz
hush: use NOFORK applets as appropriate. Net reduction of code size.
Diffstat (limited to 'include')
-rw-r--r--include/libbb.h64
1 files changed, 32 insertions, 32 deletions
diff --git a/include/libbb.h b/include/libbb.h
index 212b048de..77f1e0a44 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -123,35 +123,6 @@
/* scary. better ideas? (but do *test* them first!) */
#define OFF_T_MAX ((off_t)~((off_t)1 << (sizeof(off_t)*8-1)))
-/* This structure defines protocol families and their handlers. */
-struct aftype {
- const char *name;
- const char *title;
- int af;
- int alen;
- char *(*print) (unsigned char *);
- const char *(*sprint) (struct sockaddr *, int numeric);
- int (*input) (/*int type,*/ const char *bufp, struct sockaddr *);
- void (*herror) (char *text);
- int (*rprint) (int options);
- int (*rinput) (int typ, int ext, char **argv);
-
- /* may modify src */
- int (*getmask) (char *src, struct sockaddr * mask, char *name);
-};
-
-/* This structure defines hardware protocols and their handlers. */
-struct hwtype {
- const char *name;
- const char *title;
- int type;
- int alen;
- char *(*print) (unsigned char *);
- int (*input) (const char *, struct sockaddr *);
- int (*activate) (int fd);
- int suppress_null_addr;
-};
-
/* Some useful definitions */
#undef FALSE
#define FALSE ((int) 0)
@@ -504,6 +475,7 @@ void clear_username_cache(void);
enum { USERNAME_MAX_SIZE = 16 - sizeof(int) };
+struct bb_applet;
int execable_file(const char *name);
char *find_execable(const char *filename);
int exists_execable(const char *filename);
@@ -537,6 +509,8 @@ int wait_nohang(int *wstat);
#define wait_exitcode(w) ((w) >> 8)
#define wait_stopsig(w) ((w) >> 8)
#define wait_stopped(w) (((w) & 127) == 127)
+/* Does NOT check that applet is NOFORK, just blindly runs it */
+int run_nofork_applet(const struct bb_applet *a, char **argv);
/* wait4pid(spawn(argv)) + NOFORK/NOEXEC (if configured) */
int spawn_and_wait(char **argv);
@@ -669,6 +643,33 @@ int bbunpack(char **argv,
int create_icmp_socket(void);
int create_icmp6_socket(void);
/* interface.c */
+/* This structure defines protocol families and their handlers. */
+struct aftype {
+ const char *name;
+ const char *title;
+ int af;
+ int alen;
+ char *(*print) (unsigned char *);
+ const char *(*sprint) (struct sockaddr *, int numeric);
+ int (*input) (/*int type,*/ const char *bufp, struct sockaddr *);
+ void (*herror) (char *text);
+ int (*rprint) (int options);
+ int (*rinput) (int typ, int ext, char **argv);
+
+ /* may modify src */
+ int (*getmask) (char *src, struct sockaddr * mask, char *name);
+};
+/* This structure defines hardware protocols and their handlers. */
+struct hwtype {
+ const char *name;
+ const char *title;
+ int type;
+ int alen;
+ char *(*print) (unsigned char *);
+ int (*input) (const char *, struct sockaddr *);
+ int (*activate) (int fd);
+ int suppress_null_addr;
+};
extern int interface_opt_a;
int display_interfaces(char *ifname);
const struct aftype *get_aftype(const char *name);
@@ -677,11 +678,10 @@ const struct hwtype *get_hwntype(int type);
#ifndef BUILD_INDIVIDUAL
-struct bb_applet;
extern const struct bb_applet *find_applet_by_name(const char *name);
/* Returns only if applet is not found. */
-extern void run_applet_and_exit(const char *name, int argc, char **argv);
-extern void run_current_applet_and_exit(int argc, char **argv) ATTRIBUTE_NORETURN;
+extern void run_applet_and_exit(const char *name, char **argv);
+extern void run_current_applet_and_exit(char **argv) ATTRIBUTE_NORETURN;
#endif
extern int match_fstype(const struct mntent *mt, const char *fstypes);