X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=uname.c;h=f7e2291a8f8cc159201568da24bc96a8895d96c2;hb=044228d5ecb9b79397f9fc915d046cf4538281e2;hp=9083edb04e65088c32b00b54ac8c5d537a86c482;hpb=d73dc5b07390fb90e7f605871c993a28eedf1d46;p=oweals%2Fbusybox.git diff --git a/uname.c b/uname.c index 9083edb04..f7e2291a8 100644 --- a/uname.c +++ b/uname.c @@ -1,3 +1,4 @@ +/* vi: set sw=4 ts=4: */ /* uname -- print system information Copyright (C) 1989-1999 Free Software Foundation, Inc. @@ -30,49 +31,37 @@ /* Busyboxed by Erik Andersen */ -#include "internal.h" #include +#include +#include #include #include #if defined (HAVE_SYSINFO) && defined (HAVE_SYS_SYSTEMINFO_H) # include #endif - - -static const char uname_usage[] = - "uname [OPTION]...\n\n" - "Print certain system information. With no OPTION, same as -s.\n\n" - "Options:\n" - "\t-a\tprint all information\n" - "\t-m\tthe machine (hardware) type\n" - "\t-n\tprint the machine's network node hostname\n" - "\t-r\tprint the operating system release\n" - "\t-s\tprint the operating system name\n" - "\t-p\tprint the host processor type\n" - "\t-v\tprint the operating system version\n"; - +#include "busybox.h" static void print_element(unsigned int mask, char *element); /* Values that are bitwise or'd into `toprint'. */ /* Operating system name. */ -#define PRINT_SYSNAME 1 +static const int PRINT_SYSNAME = 1; /* Node name on a communications network. */ -#define PRINT_NODENAME 2 +static const int PRINT_NODENAME = 2; /* Operating system release. */ -#define PRINT_RELEASE 4 +static const int PRINT_RELEASE = 4; /* Operating system version. */ -#define PRINT_VERSION 8 +static const int PRINT_VERSION = 8; /* Machine hardware name. */ -#define PRINT_MACHINE 16 +static const int PRINT_MACHINE = 16; /* Host processor type. */ -#define PRINT_PROCESSOR 32 +static const int PRINT_PROCESSOR = 32; /* Mask indicating which elements of the name to print. */ static unsigned char toprint; @@ -80,77 +69,78 @@ static unsigned char toprint; int uname_main(int argc, char **argv) { - struct utsname name; - char processor[256]; + struct utsname name; + char processor[256]; + #if defined(__sparc__) && defined(__linux__) - char *fake_sparc = getenv("FAKE_SPARC"); + char *fake_sparc = getenv("FAKE_SPARC"); #endif - toprint = 0; - - /* Parse any options */ - //fprintf(stderr, "argc=%d, argv=%s\n", argc, *argv); - while (--argc > 0 && **(++argv) == '-') { - while (*(++(*argv))) { - switch (**argv) { - case 's': - toprint |= PRINT_SYSNAME; - break; - case 'n': - toprint |= PRINT_NODENAME; - break; - case 'r': - toprint |= PRINT_RELEASE; - break; - case 'v': - toprint |= PRINT_VERSION; - break; - case 'm': - toprint |= PRINT_MACHINE; - break; - case 'p': - toprint |= PRINT_PROCESSOR; - break; - case 'a': - toprint = (PRINT_SYSNAME | PRINT_NODENAME | PRINT_RELEASE | - PRINT_PROCESSOR | PRINT_VERSION | - PRINT_MACHINE); - break; - default: - usage(uname_usage); - } + toprint = 0; + + /* Parse any options */ + //fprintf(stderr, "argc=%d, argv=%s\n", argc, *argv); + while (--argc > 0 && **(++argv) == '-') { + while (*(++(*argv))) { + switch (**argv) { + case 's': + toprint |= PRINT_SYSNAME; + break; + case 'n': + toprint |= PRINT_NODENAME; + break; + case 'r': + toprint |= PRINT_RELEASE; + break; + case 'v': + toprint |= PRINT_VERSION; + break; + case 'm': + toprint |= PRINT_MACHINE; + break; + case 'p': + toprint |= PRINT_PROCESSOR; + break; + case 'a': + toprint = (PRINT_SYSNAME | PRINT_NODENAME | PRINT_RELEASE | + PRINT_PROCESSOR | PRINT_VERSION | + PRINT_MACHINE); + break; + default: + show_usage(); + } + } } - } - if (toprint == 0) - toprint = PRINT_SYSNAME; + if (toprint == 0) + toprint = PRINT_SYSNAME; - if (uname(&name) == -1) - perror("cannot get system name"); + if (uname(&name) == -1) + perror_msg("cannot get system name"); #if defined (HAVE_SYSINFO) && defined (SI_ARCHITECTURE) - if (sysinfo(SI_ARCHITECTURE, processor, sizeof(processor)) == -1) - perror("cannot get processor type"); + if (sysinfo(SI_ARCHITECTURE, processor, sizeof(processor)) == -1) + perror_msg("cannot get processor type"); } #else - strcpy(processor, "unknown"); + strcpy(processor, "unknown"); #endif #if defined(__sparc__) && defined(__linux__) - if (fake_sparc != NULL - && (fake_sparc[0] == 'y' - || fake_sparc[0] == 'Y')) strcpy(name.machine, "sparc"); + if (fake_sparc != NULL + && (fake_sparc[0] == 'y' + || fake_sparc[0] == 'Y')) strcpy(name.machine, "sparc"); #endif - print_element(PRINT_SYSNAME, name.sysname); - print_element(PRINT_NODENAME, name.nodename); - print_element(PRINT_RELEASE, name.release); - print_element(PRINT_VERSION, name.version); - print_element(PRINT_MACHINE, name.machine); - print_element(PRINT_PROCESSOR, processor); + print_element(PRINT_SYSNAME, name.sysname); + print_element(PRINT_NODENAME, name.nodename); + print_element(PRINT_RELEASE, name.release); + print_element(PRINT_VERSION, name.version); + print_element(PRINT_MACHINE, name.machine); + print_element(PRINT_PROCESSOR, processor); - exit(TRUE); + return EXIT_SUCCESS; } /* If the name element set in MASK is selected for printing in `toprint', @@ -159,8 +149,8 @@ int uname_main(int argc, char **argv) static void print_element(unsigned int mask, char *element) { - if (toprint & mask) { - toprint &= ~mask; - printf("%s%c", element, toprint ? ' ' : '\n'); - } + if (toprint & mask) { + toprint &= ~mask; + printf("%s%c", element, toprint ? ' ' : '\n'); + } }