runit/chpst: "change process state" utility
[oweals/busybox.git] / include / libbb.h
index 10309cff27cb2c88706a1d8fa82c5d24b07c26fe..222b4acec2fe2f9435e945ad6f8ff2cbaa7b82dc 100644 (file)
@@ -2,11 +2,10 @@
 /*
  * Busybox main internal header file
  *
- * Licensed under the GPL v2 or later, see the file LICENSE in this tarball.
- *
  * Based in part on code from sash, Copyright (c) 1999 by David I. Bell
  * Permission has been granted to redistribute this code under the GPL.
- *
+ * 
+ * Licensed under the GPL version 2, see the file LICENSE in this tarball.
  */
 #ifndef        __LIBBUSYBOX_H__
 #define        __LIBBUSYBOX_H__    1
@@ -47,6 +46,8 @@
 
 #ifdef CONFIG_LOCALE_SUPPORT
 #include <locale.h>
+#else
+#define setlocale(x,y)
 #endif
 
 #include "pwd_.h"
@@ -220,9 +221,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)));
 
-#if ENABLE_NITPICK
-#warning rename to xferror_filename?
-#endif
 extern void xferror(FILE *fp, const char *fn);
 extern void xferror_stdout(void);
 extern void xfflush_stdout(void);
@@ -250,7 +248,9 @@ extern char *safe_strncpy(char *dst, const char *src, size_t size);
 extern int safe_strtoi(char *arg, int* value);
 extern int safe_strtod(char *arg, double* value);
 extern int safe_strtol(char *arg, long* value);
+extern int safe_strtoll(char *arg, long long* value);
 extern int safe_strtoul(char *arg, unsigned long* value);
+extern int safe_strtoull(char *arg, unsigned long long* value);
 
 struct suffix_mult {
        const char *suffix;
@@ -276,9 +276,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);
 
 
-#if ENABLE_NITPICK
-#warning pitchable now?
-#endif
 extern unsigned long bb_xparse_number(const char *numstr,
                const struct suffix_mult *suffixes);
 
@@ -340,12 +337,9 @@ 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);
 
-#if ENABLE_NITPICK
-#warning yuk!
-#endif
 char *fgets_str(FILE *file, const char *terminating_string);
 
-extern int uncompress(int fd_in, int fd_out);
+extern USE_DESKTOP(long long) int uncompress(int fd_in, int fd_out);
 extern int inflate(int in, int out);
 
 extern struct hostent *xgethostbyname(const char *name);
@@ -356,15 +350,15 @@ 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);
 
-#if ENABLE_NITPICK
-#warning wrap this?
-#endif
-char *dirname (char *path);
+// 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);
+int bb_make_directory(char *path, long mode, int flags);
 
-int get_signum(char *name);
-char *get_signame(int number);
+int get_signum(const char *name);
+const char *get_signame(int number);
 
 char *bb_simplify_path(const char *path);
 
@@ -378,30 +372,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
@@ -416,14 +410,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;
 
@@ -448,6 +442,7 @@ extern int bb_default_error_retval;
 #endif
 # define VC_FORMAT "/dev/vc/%d"
 # define LOOP_FORMAT "/dev/loop/%d"
+# define LOOP_NAME "/dev/loop/"
 # define FB_0 "/dev/fb/0"
 #else
 # define CURRENT_VC "/dev/tty0"
@@ -467,13 +462,11 @@ extern int bb_default_error_retval;
 #endif
 # define VC_FORMAT "/dev/tty%d"
 # define LOOP_FORMAT "/dev/loop%d"
+# define LOOP_NAME "/dev/loop"
 # define FB_0 "/dev/fb0"
 #endif
 
 
-#if ENABLE_NITPICK
-#warning put these in .o files
-#endif
 /* The following devices are the same on devfs and non-devfs systems.  */
 #define CURRENT_TTY "/dev/tty"
 #define CONSOLE_DEV "/dev/console"
@@ -495,12 +488,13 @@ extern void renew_current_security_context(void);
 extern void set_current_security_context(security_context_t sid);
 #endif
 extern int run_parts(char **args, const unsigned char test_mode, char **env);
-extern int restricted_shell ( const char *shell );
-extern void setup_environment ( const char *shell, int loginshell, int changeenv, const struct passwd *pw );
-extern int correct_password ( const struct passwd *pw );
+extern int restricted_shell(const char *shell);
+extern void setup_environment(const char *shell, int loginshell, int changeenv, const struct passwd *pw);
+extern int correct_password(const struct passwd *pw);
 extern char *pw_encrypt(const char *clear, const char *salt);
 extern int obscure(const char *old, const char *newval, const struct passwd *pwdp);
 
+extern void xsetenv(const char *key, const char *value);
 extern int xopen(const char *pathname, int flags);
 extern int xopen3(const char *pathname, int flags, int mode);
 extern void xread(int fd, void *buf, size_t count);