1/* vi: set sw=4 ts=4: */
2/*
3 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
4 *
5 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
6 */
7
8#include "libbb.h"
9
10/* allow default system PATH to be extended via CFLAGS */
11#ifndef BB_ADDITIONAL_PATH
12#define BB_ADDITIONAL_PATH ""
13#endif
14
15/* allow version to be extended, via CFLAGS */
16#ifndef BB_EXTRA_VERSION
17#define BB_EXTRA_VERSION BB_BT
18#endif
19
20#define BANNER "BusyBox v" BB_VER " (" BB_EXTRA_VERSION ")"
21
22const char bb_banner[] ALIGN1 = BANNER;
23
24
25const char bb_msg_memory_exhausted[] ALIGN1 = "memory exhausted";
26const char bb_msg_invalid_date[] ALIGN1 = "invalid date '%s'";
27const char bb_msg_write_error[] ALIGN1 = "write error";
28const char bb_msg_read_error[] ALIGN1 = "read error";
29const char bb_msg_unknown[] ALIGN1 = "(unknown)";
30const char bb_msg_can_not_create_raw_socket[] ALIGN1 = "can't create raw socket";
31const char bb_msg_perm_denied_are_you_root[] ALIGN1 = "permission denied (are you root?)";
32const char bb_msg_you_must_be_root[] ALIGN1 = "you must be root";
33const char bb_msg_requires_arg[] ALIGN1 = "%s requires an argument";
34const char bb_msg_invalid_arg[] ALIGN1 = "invalid argument '%s' to '%s'";
35const char bb_msg_standard_input[] ALIGN1 = "standard input";
36const char bb_msg_standard_output[] ALIGN1 = "standard output";
37
38const char bb_str_default[] ALIGN1 = "default";
39const char bb_hexdigits_upcase[] ALIGN1 = "0123456789ABCDEF";
40
41const char bb_path_passwd_file[] ALIGN1 = "/etc/passwd";
42const char bb_path_shadow_file[] ALIGN1 = "/etc/shadow";
43const char bb_path_group_file[] ALIGN1 = "/etc/group";
44const char bb_path_gshadow_file[] ALIGN1 = "/etc/gshadow";
45const char bb_path_motd_file[] ALIGN1 = "/etc/motd";
46const char bb_dev_null[] ALIGN1 = "/dev/null";
47const char bb_busybox_exec_path[] ALIGN1 = CONFIG_BUSYBOX_EXEC_PATH;
48const char bb_default_login_shell[] ALIGN1 = LIBBB_DEFAULT_LOGIN_SHELL;
49/* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
50 * but I want to save a few bytes here. Check libbb.h before changing! */
51const char bb_PATH_root_path[] ALIGN1 =
52	"PATH=/sbin:/usr/sbin:/opt/sbin:/bin:/usr/bin:/opt/bin" BB_ADDITIONAL_PATH;
53
54
55const int const_int_1 = 1;
56/* explicitly = 0, otherwise gcc may make it a common variable
57 * and it will end up in bss */
58const int const_int_0 = 0;
59
60#include <utmp.h>
61/* This is usually something like "/var/adm/wtmp" or "/var/log/wtmp" */
62const char bb_path_wtmp_file[] ALIGN1 =
63#if defined _PATH_WTMP
64	_PATH_WTMP;
65#elif defined WTMP_FILE
66	WTMP_FILE;
67#else
68#error unknown path to wtmp file
69#endif
70
71/* We use it for "global" data via *(struct global*)&bb_common_bufsiz1.
72 * Since gcc insists on aligning struct global's members, it would be a pity
73 * (and an alignment fault on some CPUs) to mess it up. */
74char bb_common_bufsiz1[COMMON_BUFSIZE] ALIGNED(sizeof(long long));
75