wok annotate busybox/stuff/busybox-1.17.0-stat.u @ rev 5773

Up busybox (1.17.0)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jul 06 15:09:01 2010 +0200 (2010-07-06)
parents
children 1ed09465c0ae
rev   line source
pascal@5773 1 --- busybox-1.17.0/include/usage.src.h
pascal@5773 2 +++ busybox-1.17.0/include/usage.src.h
pascal@5773 3 @@ -3979,6 +3979,7 @@
pascal@5773 4 "\n -f Display filesystem status" \
pascal@5773 5 "\n -L Follow links" \
pascal@5773 6 "\n -t Display info in terse form" \
pascal@5773 7 + "\n -m Display block list" \
pascal@5773 8 IF_SELINUX( \
pascal@5773 9 "\n -Z Print security context" \
pascal@5773 10 ) \
pascal@5773 11
pascal@5773 12 --- busybox-1.17.0/coreutils/stat.c
pascal@5773 13 +++ busybox-1.17.0/coreutils/stat.c
pascal@5773 14 @@ -13,11 +13,13 @@
pascal@5773 15 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
pascal@5773 16 */
pascal@5773 17 #include "libbb.h"
pascal@5773 18 +#include <linux/fs.h>
pascal@5773 19
pascal@5773 20 #define OPT_FILESYS (1 << 0)
pascal@5773 21 #define OPT_TERSE (1 << 1)
pascal@5773 22 #define OPT_DEREFERENCE (1 << 2)
pascal@5773 23 -#define OPT_SELINUX (1 << 3)
pascal@5773 24 +#define OPT_MAP (1 << 3)
pascal@5773 25 +#define OPT_SELINUX (1 << 4)
pascal@5773 26
pascal@5773 27 #if ENABLE_FEATURE_STAT_FORMAT
pascal@5773 28 typedef bool (*statfunc_ptr)(const char *, const char *);
pascal@5773 29 @@ -361,6 +363,26 @@
pascal@5773 30
pascal@5773 31 /* Stat the file system and print what we find. */
pascal@5773 32 #if !ENABLE_FEATURE_STAT_FORMAT
pascal@5773 33 +#define do_mapfile(filename, format) do_mapfile(filename)
pascal@5773 34 +#endif
pascal@5773 35 +static bool do_mapfile(const char *filename, const char *format)
pascal@5773 36 +{
pascal@5773 37 + int i = 0;
pascal@5773 38 + int fd = xopen(filename, O_RDONLY);
pascal@5773 39 +
pascal@5773 40 +#if ENABLE_FEATURE_STAT_FORMAT
pascal@5773 41 + (void) format;
pascal@5773 42 +#endif
pascal@5773 43 + while (1) {
pascal@5773 44 + int blk = i++;
pascal@5773 45 + if (ioctl(fd,FIBMAP,&blk) < 0 || blk == 0) break;
pascal@5773 46 + printf("%u\n",blk);
pascal@5773 47 + }
pascal@5773 48 + return 1;
pascal@5773 49 +}
pascal@5773 50 +
pascal@5773 51 +/* Stat the file system and print what we find. */
pascal@5773 52 +#if !ENABLE_FEATURE_STAT_FORMAT
pascal@5773 53 #define do_statfs(filename, format) do_statfs(filename)
pascal@5773 54 #endif
pascal@5773 55 static bool do_statfs(const char *filename, const char *format)
pascal@5773 56 @@ -651,7 +673,7 @@
pascal@5773 57 statfunc_ptr statfunc = do_stat;
pascal@5773 58
pascal@5773 59 opt_complementary = "-1"; /* min one arg */
pascal@5773 60 - opts = getopt32(argv, "ftL"
pascal@5773 61 + opts = getopt32(argv, "ftLm"
pascal@5773 62 IF_SELINUX("Z")
pascal@5773 63 IF_FEATURE_STAT_FORMAT("c:", &format)
pascal@5773 64 );
pascal@5773 65 @@ -662,6 +684,9 @@
pascal@5773 66 selinux_or_die();
pascal@5773 67 }
pascal@5773 68 #endif
pascal@5773 69 + if (opts & OPT_MAP) { /* -m */
pascal@5773 70 + statfunc = do_mapfile;
pascal@5773 71 + }
pascal@5773 72 ok = 1;
pascal@5773 73 argv += optind;
pascal@5773 74 for (i = 0; argv[i]; ++i)