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