blob: 66e466ffa4bcb866d3c3b2fece74db8b9e4b730e [file] [log] [blame]
Eric Andersen04095e52001-04-25 05:39:18 +00001/* vi: set sw=4 ts=4: */
2/*
Eric Andersenc7bda1c2004-03-15 08:29:22 +00003 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
Eric Andersen04095e52001-04-25 05:39:18 +00004 *
Denys Vlasenko0ef64bd2010-08-16 20:14:46 +02005 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
Eric Andersen04095e52001-04-25 05:39:18 +00006 */
7
Mark Whitleyc29c44c2001-04-25 18:06:21 +00008#include "libbb.h"
Eric Andersen04095e52001-04-25 05:39:18 +00009
Denis Vlasenkoc8d4d2f2007-09-07 19:33:56 +000010/* allow default system PATH to be extended via CFLAGS */
11#ifndef BB_ADDITIONAL_PATH
12#define BB_ADDITIONAL_PATH ""
"Vladimir N. Oleynik"dd1ccdd2006-02-16 15:40:24 +000013#endif
Denis Vlasenkoc8d4d2f2007-09-07 19:33:56 +000014
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
Denis Vlasenko6ca409e2007-08-12 20:58:27 +000022const char bb_banner[] ALIGN1 = BANNER;
Rob Landley519d7df2006-08-09 20:56:23 +000023
Denis Vlasenkoc8d4d2f2007-09-07 19:33:56 +000024
Denis Vlasenko6ca409e2007-08-12 20:58:27 +000025const char bb_msg_memory_exhausted[] ALIGN1 = "memory exhausted";
26const char bb_msg_invalid_date[] ALIGN1 = "invalid date '%s'";
Denis Vlasenko6ca409e2007-08-12 20:58:27 +000027const char bb_msg_unknown[] ALIGN1 = "(unknown)";
28const char bb_msg_can_not_create_raw_socket[] ALIGN1 = "can't create raw socket";
Denys Vlasenkob2e5fc32009-11-25 14:52:47 +010029const char bb_msg_perm_denied_are_you_root[] ALIGN1 = "permission denied (are you root?)";
30const char bb_msg_you_must_be_root[] ALIGN1 = "you must be root";
Denis Vlasenko6ca409e2007-08-12 20:58:27 +000031const char bb_msg_requires_arg[] ALIGN1 = "%s requires an argument";
32const char bb_msg_invalid_arg[] ALIGN1 = "invalid argument '%s' to '%s'";
33const char bb_msg_standard_input[] ALIGN1 = "standard input";
34const char bb_msg_standard_output[] ALIGN1 = "standard output";
Eric Andersen27f64e12002-06-23 04:24:25 +000035
Denis Vlasenko6ca409e2007-08-12 20:58:27 +000036const char bb_hexdigits_upcase[] ALIGN1 = "0123456789ABCDEF";
Denis Vlasenko7ca39212006-11-21 20:34:21 +000037
Denis Vlasenko6ca409e2007-08-12 20:58:27 +000038const char bb_busybox_exec_path[] ALIGN1 = CONFIG_BUSYBOX_EXEC_PATH;
39const char bb_default_login_shell[] ALIGN1 = LIBBB_DEFAULT_LOGIN_SHELL;
Denis Vlasenko15611bb2007-06-12 08:52:02 +000040/* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin,
41 * but I want to save a few bytes here. Check libbb.h before changing! */
Denis Vlasenko3f5fdc72007-10-14 04:55:59 +000042const char bb_PATH_root_path[] ALIGN1 =
Denis Vlasenkoc8d4d2f2007-09-07 19:33:56 +000043 "PATH=/sbin:/usr/sbin:/bin:/usr/bin" BB_ADDITIONAL_PATH;
Denis Vlasenko15611bb2007-06-12 08:52:02 +000044
"Vladimir N. Oleynik"86a10732005-10-12 15:21:32 +000045
Denis Vlasenko703e2022007-01-22 14:12:08 +000046const int const_int_1 = 1;
Denis Vlasenko86076772007-09-27 20:49:57 +000047/* explicitly = 0, otherwise gcc may make it a common variable
48 * and it will end up in bss */
49const int const_int_0 = 0;
Denis Vlasenko703e2022007-01-22 14:12:08 +000050
Bernhard Reutner-Fischer781e42d2006-05-26 14:41:40 +000051#include <utmp.h>
52/* This is usually something like "/var/adm/wtmp" or "/var/log/wtmp" */
Denis Vlasenko6ca409e2007-08-12 20:58:27 +000053const char bb_path_wtmp_file[] ALIGN1 =
Bernhard Reutner-Fischer781e42d2006-05-26 14:41:40 +000054#if defined _PATH_WTMP
Denis Vlasenkoc8d4d2f2007-09-07 19:33:56 +000055 _PATH_WTMP;
Bernhard Reutner-Fischer781e42d2006-05-26 14:41:40 +000056#elif defined WTMP_FILE
Denis Vlasenkoc8d4d2f2007-09-07 19:33:56 +000057 WTMP_FILE;
Bernhard Reutner-Fischer781e42d2006-05-26 14:41:40 +000058#else
Denis Vlasenkoc8d4d2f2007-09-07 19:33:56 +000059#error unknown path to wtmp file
Bernhard Reutner-Fischer781e42d2006-05-26 14:41:40 +000060#endif
Bernhard Reutner-Fischer781e42d2006-05-26 14:41:40 +000061
Denis Vlasenko1d31f0f2007-09-27 20:46:08 +000062/* We use it for "global" data via *(struct global*)&bb_common_bufsiz1.
63 * Since gcc insists on aligning struct global's members, it would be a pity
64 * (and an alignment fault on some CPUs) to mess it up. */
Denis Vlasenkoa60f84e2008-07-05 09:18:54 +000065char bb_common_bufsiz1[COMMON_BUFSIZE] ALIGNED(sizeof(long long));