12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /* uname.c - return system name
- *
- * Copyright 2008 Rob Landley <rob@landley.net>
- *
- * See http://opengroup.org/onlinepubs/9699919799/utilities/uname.html
- USE_UNAME(NEWTOY(uname, "aomvrns", TOYFLAG_BIN))
- USE_ARCH(NEWTOY(arch, 0, TOYFLAG_USR|TOYFLAG_BIN))
- USE_LINUX32(NEWTOY(linux32, 0, TOYFLAG_USR|TOYFLAG_BIN))
- config ARCH
- bool "arch"
- default y
- help
- usage: arch
- Print machine (hardware) name, same as uname -m.
- config LINUX32
- bool "linux32"
- default y
- help
- usage: linux32 [COMMAND...]
- Tell uname -m to line to autoconf (to build 32 bit binaries on 64 bit kernel).
- config UNAME
- bool "uname"
- default y
- help
- usage: uname [-asnrvm]
- Print system information.
- -s System name
- -n Network (domain) name
- -r Kernel Release number
- -v Kernel Version
- -m Machine (hardware) name
- -o Userspace type
- -a All of the above (in order)
- */
- #define FOR_uname
- #define FORCE_FLAGS
- #include "toys.h"
- void uname_main(void)
- {
- int i, needspace = 0;
- char *c;
- uname((void *)toybuf);
- if (!toys.optflags) toys.optflags = FLAG_s;
- for (i=0; i<6; i++) if (toys.optflags & ((1<<i)|FLAG_a)) {
- if (i==5) c = " Toybox"+!needspace;
- else {
- c = toybuf+sizeof(((struct utsname *)0)->sysname)*i;
- if (needspace++) *(--c)=' '; // Can't decrement first entry
- }
- xputsn(c);
- }
- xputc('\n');
- }
- void arch_main(void)
- {
- toys.optflags = FLAG_m;
- uname_main();
- }
- void linux32_main(void)
- {
- personality(PER_LINUX32);
- xexec(toys.optc ? toys.optargs : (char *[]){"/bin/sh", 0});
- }
|