diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-04-22 02:33:37 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-04-22 02:33:37 +0000 |
commit | de9f1f757af7e15881156b610431cd00c262f768 (patch) | |
tree | a7fd230099dc3388b179ca51e806495f052c01c5 /util-linux/e2p/ostype.c | |
parent | 2c12d435e5ccd402f6210827df0b2038093fbcee (diff) | |
download | busybox-de9f1f757af7e15881156b610431cd00c262f768.tar.gz |
import lsattr and chattr from e2fsprogs
Diffstat (limited to 'util-linux/e2p/ostype.c')
-rw-r--r-- | util-linux/e2p/ostype.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/util-linux/e2p/ostype.c b/util-linux/e2p/ostype.c new file mode 100644 index 000000000..fe6597dd5 --- /dev/null +++ b/util-linux/e2p/ostype.c @@ -0,0 +1,73 @@ +/* + * getostype.c - Get the Filesystem OS type + * + * Copyright (C) 2004,2005 Theodore Ts'o <tytso@mit.edu> + * + * This file can be redistributed under the terms of the GNU Library General + * Public License + */ + +#include "e2p.h" +#include <string.h> + +const char *os_tab[] = + { "Linux", + "Hurd", + "Masix", + "FreeBSD", + "Lites", + 0 }; + +/* + * Convert an os_type to a string + */ +char *e2p_os2string(int os_type) +{ + const char *os; + char *ret; + + if (os_type <= EXT2_OS_LITES) + os = os_tab[os_type]; + else + os = "(unknown os)"; + + ret = malloc(strlen(os)+1); + strcpy(ret, os); + return ret; +} + +/* + * Convert an os_type to a string + */ +int e2p_string2os(char *str) +{ + const char **cpp; + int i = 0; + + for (cpp = os_tab; *cpp; cpp++, i++) { + if (!strcasecmp(str, *cpp)) + return i; + } + return -1; +} + +#ifdef TEST_PROGRAM +int main(int argc, char **argv) +{ + char *s; + int i, os; + + for (i=0; i <= EXT2_OS_LITES; i++) { + s = e2p_os2string(i); + os = e2p_string2os(s); + printf("%d: %s (%d)\n", i, s, os); + if (i != os) { + fprintf(stderr, "Failure!\n"); + exit(1); + } + } + exit(0); +} +#endif + + |