2001-04-25 11:09:18 +05:30
|
|
|
/* vi: set sw=4 ts=4: */
|
|
|
|
/*
|
2004-03-15 13:59:22 +05:30
|
|
|
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
2001-04-25 11:09:18 +05:30
|
|
|
*
|
2006-04-03 22:09:31 +05:30
|
|
|
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
|
2001-04-25 11:09:18 +05:30
|
|
|
*/
|
|
|
|
|
2001-04-25 23:36:21 +05:30
|
|
|
#include "libbb.h"
|
2001-04-25 11:09:18 +05:30
|
|
|
|
2007-09-08 01:03:56 +05:30
|
|
|
/* allow default system PATH to be extended via CFLAGS */
|
|
|
|
#ifndef BB_ADDITIONAL_PATH
|
|
|
|
#define BB_ADDITIONAL_PATH ""
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* allow version to be extended, via CFLAGS */
|
2006-02-16 21:10:24 +05:30
|
|
|
#ifndef BB_EXTRA_VERSION
|
2007-09-08 01:03:56 +05:30
|
|
|
#define BB_EXTRA_VERSION BB_BT
|
2006-02-16 21:10:24 +05:30
|
|
|
#endif
|
2007-09-08 01:03:56 +05:30
|
|
|
|
|
|
|
#define BANNER "BusyBox v" BB_VER " (" BB_EXTRA_VERSION ")"
|
|
|
|
|
2007-08-13 02:28:27 +05:30
|
|
|
const char bb_banner[] ALIGN1 = BANNER;
|
|
|
|
|
2007-09-08 01:03:56 +05:30
|
|
|
|
2007-08-13 02:28:27 +05:30
|
|
|
const char bb_msg_memory_exhausted[] ALIGN1 = "memory exhausted";
|
|
|
|
const char bb_msg_invalid_date[] ALIGN1 = "invalid date '%s'";
|
|
|
|
const char bb_msg_write_error[] ALIGN1 = "write error";
|
|
|
|
const char bb_msg_read_error[] ALIGN1 = "read error";
|
|
|
|
const char bb_msg_unknown[] ALIGN1 = "(unknown)";
|
|
|
|
const char bb_msg_can_not_create_raw_socket[] ALIGN1 = "can't create raw socket";
|
|
|
|
const char bb_msg_perm_denied_are_you_root[] ALIGN1 = "permission denied. (are you root?)";
|
|
|
|
const char bb_msg_requires_arg[] ALIGN1 = "%s requires an argument";
|
|
|
|
const char bb_msg_invalid_arg[] ALIGN1 = "invalid argument '%s' to '%s'";
|
|
|
|
const char bb_msg_standard_input[] ALIGN1 = "standard input";
|
|
|
|
const char bb_msg_standard_output[] ALIGN1 = "standard output";
|
|
|
|
|
|
|
|
const char bb_str_default[] ALIGN1 = "default";
|
|
|
|
const char bb_hexdigits_upcase[] ALIGN1 = "0123456789ABCDEF";
|
|
|
|
|
|
|
|
const char bb_path_passwd_file[] ALIGN1 = "/etc/passwd";
|
|
|
|
const char bb_path_shadow_file[] ALIGN1 = "/etc/shadow";
|
|
|
|
const char bb_path_group_file[] ALIGN1 = "/etc/group";
|
|
|
|
const char bb_path_gshadow_file[] ALIGN1 = "/etc/gshadow";
|
|
|
|
const char bb_path_motd_file[] ALIGN1 = "/etc/motd";
|
|
|
|
const char bb_dev_null[] ALIGN1 = "/dev/null";
|
|
|
|
const char bb_busybox_exec_path[] ALIGN1 = CONFIG_BUSYBOX_EXEC_PATH;
|
|
|
|
const char bb_default_login_shell[] ALIGN1 = LIBBB_DEFAULT_LOGIN_SHELL;
|
2007-06-12 14:22:02 +05:30
|
|
|
/* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
|
|
|
|
* but I want to save a few bytes here. Check libbb.h before changing! */
|
2007-09-08 01:03:56 +05:30
|
|
|
const char bb_PATH_root_path[] ALIGN1 =
|
|
|
|
"PATH=/sbin:/usr/sbin:/bin:/usr/bin" BB_ADDITIONAL_PATH;
|
2007-06-12 14:22:02 +05:30
|
|
|
|
2005-10-12 20:51:32 +05:30
|
|
|
|
2007-01-22 19:42:08 +05:30
|
|
|
const int const_int_1 = 1;
|
2007-09-28 02:19:57 +05:30
|
|
|
/* explicitly = 0, otherwise gcc may make it a common variable
|
|
|
|
* and it will end up in bss */
|
|
|
|
const int const_int_0 = 0;
|
2007-01-22 19:42:08 +05:30
|
|
|
|
2006-05-26 20:11:40 +05:30
|
|
|
#include <utmp.h>
|
|
|
|
/* This is usually something like "/var/adm/wtmp" or "/var/log/wtmp" */
|
2007-08-13 02:28:27 +05:30
|
|
|
const char bb_path_wtmp_file[] ALIGN1 =
|
2006-05-26 20:11:40 +05:30
|
|
|
#if defined _PATH_WTMP
|
2007-09-08 01:03:56 +05:30
|
|
|
_PATH_WTMP;
|
2006-05-26 20:11:40 +05:30
|
|
|
#elif defined WTMP_FILE
|
2007-09-08 01:03:56 +05:30
|
|
|
WTMP_FILE;
|
2006-05-26 20:11:40 +05:30
|
|
|
#else
|
2007-09-08 01:03:56 +05:30
|
|
|
#error unknown path to wtmp file
|
2006-05-26 20:11:40 +05:30
|
|
|
#endif
|
|
|
|
|
2007-09-28 02:16:08 +05:30
|
|
|
/* We use it for "global" data via *(struct global*)&bb_common_bufsiz1.
|
|
|
|
* Since gcc insists on aligning struct global's members, it would be a pity
|
|
|
|
* (and an alignment fault on some CPUs) to mess it up. */
|
|
|
|
char bb_common_bufsiz1[COMMON_BUFSIZE] __attribute__(( aligned(sizeof(long long)) ));
|
2007-03-14 05:36:29 +05:30
|
|
|
|
2007-03-15 06:27:01 +05:30
|
|
|
struct globals;
|
2007-03-16 01:18:35 +05:30
|
|
|
/* Make it reside in R/W memory: */
|
|
|
|
struct globals *const ptr_to_globals __attribute__ ((section (".data")));
|