change char *string = "foo" -> char string[] = "foo"
[oweals/busybox.git] / include / libbb.h
index 3c563a96ff8a363977e76e1cb8af9365ed6a5dcf..86e88bf89041dde1dca54f9006e43ae6f533619d 100644 (file)
 #define  PATH_MAX         256
 #endif
 
-#ifdef DMALLOC
-#include <dmalloc.h>
-#endif
-
 /* Some useful definitions */
 #undef FALSE
 #define FALSE   ((int) 0)
@@ -116,6 +112,16 @@ extern void *llist_pop(llist_t **elm);
 extern void llist_free(llist_t *elm, void (*freeit)(void *data));
 
 
+enum {
+       LOGMODE_NONE = 0,
+       LOGMODE_STDIO = 1<<0,
+       LOGMODE_SYSLOG = 1<<1,
+       LOGMODE_BOTH = LOGMODE_SYSLOG + LOGMODE_STDIO,
+};
+extern const char *msg_eol;
+extern int logmode;
+extern int die_sleep;
+
 extern void bb_show_usage(void) ATTRIBUTE_NORETURN ATTRIBUTE_EXTERNALLY_VISIBLE;
 extern void bb_error_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
 extern void bb_error_msg_and_die(const char *s, ...) __attribute__ ((noreturn, format (printf, 1, 2)));
@@ -128,9 +134,12 @@ extern void bb_herror_msg_and_die(const char *s, ...) __attribute__ ((noreturn,
 extern void bb_perror_nomsg_and_die(void) ATTRIBUTE_NORETURN;
 extern void bb_perror_nomsg(void);
 
+extern void bb_info_msg(const char *s, ...) __attribute__ ((format (printf, 1, 2)));
+
 /* These two are used internally -- you shouldn't need to use them */
-extern void bb_verror_msg(const char *s, va_list p) __attribute__ ((format (printf, 1, 0)));
+extern void bb_verror_msg(const char *s, va_list p, const char *strerr) __attribute__ ((format (printf, 1, 0)));
 extern void bb_vperror_msg(const char *s, va_list p)  __attribute__ ((format (printf, 1, 0)));
+extern void bb_vinfo_msg(const char *s, va_list p) __attribute__ ((format (printf, 1, 0)));
 
 extern int bb_echo(int argc, char** argv);
 extern int bb_test(int argc, char** argv);
@@ -180,7 +189,7 @@ extern FILE *xfopen(const char *path, const char *mode);
 extern int   bb_fclose_nonstdin(FILE *f);
 extern void  bb_fflush_stdout_and_exit(int retval) ATTRIBUTE_NORETURN;
 
-extern void xstat(const char *filename, struct stat *buf);
+extern void xstat(char *filename, struct stat *buf);
 extern int  xsocket(int domain, int type, int protocol);
 extern pid_t spawn(char **argv);
 extern pid_t xspawn(char **argv);
@@ -211,7 +220,6 @@ extern int bb_fprintf(FILE * __restrict stream, const char * __restrict format,
 extern int bb_printf(const char * __restrict format, ...)
        __attribute__ ((format (printf, 1, 2)));
 
-//#warning rename to xferror_filename?
 extern void xferror(FILE *fp, const char *fn);
 extern void xferror_stdout(void);
 extern void xfflush_stdout(void);
@@ -265,7 +273,6 @@ extern long bb_xgetlarg_bnd_sfx(const char *arg, int base,
 extern long bb_xgetlarg10_sfx(const char *arg, const struct suffix_mult *suffixes);
 
 
-//#warning pitchable now?
 extern unsigned long bb_xparse_number(const char *numstr,
                const struct suffix_mult *suffixes);
 
@@ -290,9 +297,6 @@ extern int set_loop(char **device, const char *file, int offset);
 extern int vdprintf(int d, const char *format, va_list ap);
 #endif
 
-int nfsmount(const char *spec, const char *node, int *flags,
-            char **mount_opts, int running_bg);
-
 /* Include our own copy of struct sysinfo to avoid binary compatibility
  * problems with Linux 2.4, which changed things.  Grumble, grumble. */
 struct sysinfo {
@@ -330,7 +334,6 @@ char *concat_path_file(const char *path, const char *filename);
 char *concat_subpath_file(const char *path, const char *filename);
 char *last_char_is(const char *s, int c);
 
-//#warning yuk!
 char *fgets_str(FILE *file, const char *terminating_string);
 
 extern int uncompress(int fd_in, int fd_out);
@@ -344,7 +347,9 @@ extern int xconnect(struct sockaddr_in *s_addr);
 extern unsigned short bb_lookup_port(const char *port, const char *protocol, unsigned short default_port);
 extern void bb_lookup_host(struct sockaddr_in *s_in, const char *host);
 
-//#warning wrap this?
+// This is declared here rather than #including <libgen.h> in order to avoid
+// confusing the two versions of basename.  See the dirname/basename man page
+// for details.
 char *dirname (char *path);
 
 int bb_make_directory (char *path, long mode, int flags);
@@ -364,30 +369,30 @@ enum {    /* DO NOT CHANGE THESE VALUES!  cp.c depends on them. */
 
 extern const char *bb_applet_name;
 
-extern const char * const bb_msg_full_version;
-extern const char * const bb_msg_memory_exhausted;
-extern const char * const bb_msg_invalid_date;
-extern const char * const bb_msg_io_error;
-extern const char * const bb_msg_read_error;
-extern const char * const bb_msg_write_error;
-extern const char * const bb_msg_name_longer_than_foo;
-extern const char * const bb_msg_unknown;
-extern const char * const bb_msg_can_not_create_raw_socket;
-extern const char * const bb_msg_perm_denied_are_you_root;
-extern const char * const bb_msg_requires_arg;
-extern const char * const bb_msg_invalid_arg;
-extern const char * const bb_msg_standard_input;
-extern const char * const bb_msg_standard_output;
-
-extern const char * const bb_path_nologin_file;
-extern const char * const bb_path_passwd_file;
-extern const char * const bb_path_shadow_file;
-extern const char * const bb_path_gshadow_file;
-extern const char * const bb_path_group_file;
-extern const char * const bb_path_securetty_file;
-extern const char * const bb_path_motd_file;
-extern const char * const bb_path_wtmp_file;
-extern const char * const bb_dev_null;
+extern const char bb_msg_full_version[];
+extern const char bb_msg_memory_exhausted[];
+extern const char bb_msg_invalid_date[];
+extern const char bb_msg_io_error[];
+extern const char bb_msg_read_error[];
+extern const char bb_msg_write_error[];
+extern const char bb_msg_name_longer_than_foo[];
+extern const char bb_msg_unknown[];
+extern const char bb_msg_can_not_create_raw_socket[];
+extern const char bb_msg_perm_denied_are_you_root[];
+extern const char bb_msg_requires_arg[];
+extern const char bb_msg_invalid_arg[];
+extern const char bb_msg_standard_input[];
+extern const char bb_msg_standard_output[];
+
+extern const char bb_path_nologin_file[];
+extern const char bb_path_passwd_file[];
+extern const char bb_path_shadow_file[];
+extern const char bb_path_gshadow_file[];
+extern const char bb_path_group_file[];
+extern const char bb_path_securetty_file[];
+extern const char bb_path_motd_file[];
+extern const char bb_path_wtmp_file[];
+extern const char bb_dev_null[];
 
 #ifndef BUFSIZ
 #define BUFSIZ 4096
@@ -402,14 +407,14 @@ extern char bb_common_bufsiz1[BUFSIZ+1];
  */
 #define LIBBB_DEFAULT_LOGIN_SHELL      "-/bin/sh"
 
-extern const char * const bb_default_login_shell;
+extern const char bb_default_login_shell[];
 /* "/bin/sh" */
 #define DEFAULT_SHELL     (bb_default_login_shell+1)
 /* "sh" */
 #define DEFAULT_SHELL_SHORT_NAME     (bb_default_login_shell+6)
 
 
-extern char bb_path_mtab_file[];
+extern const char bb_path_mtab_file[];
 
 extern int bb_default_error_retval;
 
@@ -456,7 +461,6 @@ extern int bb_default_error_retval;
 # define FB_0 "/dev/fb0"
 #endif
 
-//#warning put these in .o files
 
 /* The following devices are the same on devfs and non-devfs systems.  */
 #define CURRENT_TTY "/dev/tty"
@@ -471,9 +475,9 @@ void xprint_and_close_file(FILE *file);
 
 #define FAIL_DELAY    3
 extern void bb_do_delay(int seconds);
-extern void change_identity ( const struct passwd *pw );
-extern const char *change_identity_e2str ( const struct passwd *pw );
-extern void run_shell ( const char *shell, int loginshell, const char *command, const char **additional_args);
+extern void change_identity(const struct passwd *pw);
+extern const char *change_identity_e2str(const struct passwd *pw);
+extern void run_shell(const char *shell, int loginshell, const char *command, const char **additional_args);
 #ifdef CONFIG_SELINUX
 extern void renew_current_security_context(void);
 extern void set_current_security_context(security_context_t sid);
@@ -492,6 +496,10 @@ extern unsigned char xread_char(int fd);
 extern void xlseek(int fd, off_t offset, int whence);
 extern void xwrite(int fd, void *buf, size_t count);
 
+extern const char bb_uuenc_tbl_base64[];
+extern const char bb_uuenc_tbl_std[];
+extern void bb_uuencode(const unsigned char *s, char *store, const int length, const char *tbl);
+
 #ifndef COMM_LEN
 #ifdef TASK_COMM_LEN
 #define COMM_LEN TASK_COMM_LEN
@@ -581,4 +589,8 @@ extern const char BB_BANNER[];
 #undef isupper
 #undef isxdigit
 
+#ifdef DMALLOC
+#include <dmalloc.h>
+#endif
+
 #endif /* __LIBBUSYBOX_H__ */