diff --git a/distrib/sets/lists/minix/mi b/distrib/sets/lists/minix/mi index a5bedfbc0..c63df142f 100644 --- a/distrib/sets/lists/minix/mi +++ b/distrib/sets/lists/minix/mi @@ -321,7 +321,7 @@ ./usr/bin/ex minix-sys ./usr/bin/expand minix-sys ./usr/bin/false minix-sys -./usr/bin/fbdctl minix-sys +./usr/bin/fbdctl minix-sys obsolete ./usr/bin/fdisk minix-sys ./usr/bin/fetch minix-sys ./usr/bin/fgrep minix-sys @@ -5312,6 +5312,7 @@ ./usr/sbin/chown minix-sys ./usr/sbin/chroot minix-sys ./usr/sbin/diskctl minix-sys +./usr/sbin/fbdctl minix-sys ./usr/sbin/group minix-sys ./usr/sbin/groupadd minix-sys ./usr/sbin/groupdel minix-sys diff --git a/minix/commands/Makefile b/minix/commands/Makefile index 6cc5e6081..645333f39 100644 --- a/minix/commands/Makefile +++ b/minix/commands/Makefile @@ -8,7 +8,7 @@ SUBDIR= add_route arp at backup \ compress crc cron crontab \ decomp16 DESCRIBE devmand devsize dhcpd \ dhrystone \ - eject fbdctl \ + eject \ fix format fsck.mfs \ gcov-pull host \ hostaddr ifconfig ifdef \ diff --git a/minix/man/man8/Makefile b/minix/man/man8/Makefile index 0adc6e22f..1ad83005c 100644 --- a/minix/man/man8/Makefile +++ b/minix/man/man8/Makefile @@ -1,6 +1,6 @@ MAN= add_route.8 backup.8 boot.8 \ cdprobe.8 cleantmp.8 config.8 cron.8 \ - dhcpd.8 fbdctl.8 fdisk.8 \ + dhcpd.8 fdisk.8 \ getty.8 halt.8 hgfs.8 httpd.8 ifconfig.8 inet.8 init.8 \ intr.8 irdpd.8 loadramdisk.8 \ netconf.8 newroot.8 nonamed.8 \ diff --git a/minix/usr.sbin/Makefile b/minix/usr.sbin/Makefile index 6d6151cba..8bb4944db 100644 --- a/minix/usr.sbin/Makefile +++ b/minix/usr.sbin/Makefile @@ -2,6 +2,7 @@ SUBDIR+= btrace SUBDIR+= diskctl +SUBDIR+= fbdctl SUBDIR+= mkfs.mfs SUBDIR+= mkproto diff --git a/minix/commands/fbdctl/Makefile b/minix/usr.sbin/fbdctl/Makefile similarity index 72% rename from minix/commands/fbdctl/Makefile rename to minix/usr.sbin/fbdctl/Makefile index 76c99c314..3d9ff2b70 100644 --- a/minix/commands/fbdctl/Makefile +++ b/minix/usr.sbin/fbdctl/Makefile @@ -1,4 +1,4 @@ PROG= fbdctl -MAN= +MAN= fbdctl.8 .include diff --git a/minix/man/man8/fbdctl.8 b/minix/usr.sbin/fbdctl/fbdctl.8 similarity index 100% rename from minix/man/man8/fbdctl.8 rename to minix/usr.sbin/fbdctl/fbdctl.8 diff --git a/minix/commands/fbdctl/fbdctl.c b/minix/usr.sbin/fbdctl/fbdctl.c similarity index 67% rename from minix/commands/fbdctl/fbdctl.c rename to minix/usr.sbin/fbdctl/fbdctl.c index 5e951f061..957f97fa0 100644 --- a/minix/commands/fbdctl/fbdctl.c +++ b/minix/usr.sbin/fbdctl/fbdctl.c @@ -2,40 +2,44 @@ #include #include #include -#include #include -#include +#include #include #include #include -static int usage(char *name) -{ - printf("usage:\n"); - printf(" %s list\n", name); - printf(" %s add [-a start[-end]] [-s skip] [-c count] [-rw] " - " [params]\n", name); - printf(" %s del N\n", name); - printf("\n"); - printf("actions and params:\n"); - printf(" corrupt [zero|persist|random]\n"); - printf(" error [OK|EIO]\n"); - printf(" misdir - \n"); - printf(" lost\n"); - printf(" torn \n"); - printf("use %s -d to specify a device other than /dev/fbd\n", - name); +#define PATH_DEV_FBD "/dev/fbd" - return EXIT_FAILURE; +static void __dead +usage(void) +{ + + fprintf(stderr, "usage:\n"); + fprintf(stderr, " %s list\n", getprogname()); + fprintf(stderr, " %s add [-a start[-end]] [-s skip] [-c count] [-rw] " + " [params]\n", getprogname()); + fprintf(stderr, " %s del N\n", getprogname()); + fprintf(stderr, "\n"); + fprintf(stderr, "actions and params:\n"); + fprintf(stderr, " corrupt [zero|persist|random]\n"); + fprintf(stderr, " error [OK|EIO]\n"); + fprintf(stderr, " misdir - \n"); + fprintf(stderr, " lost\n"); + fprintf(stderr, " torn \n"); + fprintf(stderr, "use %s -d to specify a device other than " + "%s\n", getprogname(), PATH_DEV_FBD); + + exit(EXIT_FAILURE); } -static void print_rule(struct fbd_rule *rule) +static void +print_rule(struct fbd_rule * rule) { printf("%-2d %04lX%08lX-%04lX%08lX %-4d %-5d %c%c ", - rule->num, ex64hi(rule->start), ex64lo(rule->start), - ex64hi(rule->end), ex64lo(rule->end), rule->skip, - rule->count, (rule->flags & FBD_FLAG_READ) ? 'r' : ' ', - (rule->flags & FBD_FLAG_WRITE) ? 'w' : ' '); + rule->num, ex64hi(rule->start), ex64lo(rule->start), + ex64hi(rule->end), ex64lo(rule->end), rule->skip, + rule->count, (rule->flags & FBD_FLAG_READ) ? 'r' : ' ', + (rule->flags & FBD_FLAG_WRITE) ? 'w' : ' '); switch (rule->action) { case FBD_ACTION_CORRUPT: @@ -67,17 +71,16 @@ static void print_rule(struct fbd_rule *rule) case FBD_ACTION_MISDIR: printf("%-7s %04lX%08lX-%04lX%08lX %u", - "misdir", ex64hi(rule->params.misdir.start), - ex64lo(rule->params.misdir.start), - ex64hi(rule->params.misdir.end), - ex64lo(rule->params.misdir.end), - rule->params.misdir.align); + "misdir", ex64hi(rule->params.misdir.start), + ex64lo(rule->params.misdir.start), + ex64hi(rule->params.misdir.end), + ex64lo(rule->params.misdir.end), + rule->params.misdir.align); break; case FBD_ACTION_LOSTTORN: if (rule->params.losttorn.lead > 0) - printf("%-7s %u", "torn", - rule->params.losttorn.lead); + printf("%-7s %u", "torn", rule->params.losttorn.lead); else printf("%-7s", "lost"); } @@ -85,7 +88,8 @@ static void print_rule(struct fbd_rule *rule) printf("\n"); } -static int do_list(int fd) +static int +do_list(int fd) { struct fbd_rule rule; int i; @@ -107,7 +111,8 @@ static int do_list(int fd) return EXIT_SUCCESS; } -static int scan_hex64(char *input, u64_t *val) +static int +scan_hex64(char * input, u64_t * val) { u32_t lo, hi; char buf[9]; @@ -133,7 +138,8 @@ static int scan_hex64(char *input, u64_t *val) return 1; } -static int scan_range(char *input, u64_t *start, u64_t *end, int need_end) +static int +scan_range(char * input, u64_t * start, u64_t * end, int need_end) { char *p; @@ -147,7 +153,8 @@ static int scan_range(char *input, u64_t *start, u64_t *end, int need_end) return scan_hex64(input, start); } -static int do_add(int fd, int argc, char **argv, int off) +static int +do_add(int fd, int argc, char ** argv, int off) { struct fbd_rule rule; int c, r; @@ -158,7 +165,7 @@ static int do_add(int fd, int argc, char **argv, int off) switch (c) { case 'a': if (!scan_range(optarg, &rule.start, &rule.end, 0)) - return usage(argv[0]); + usage(); break; case 's': rule.skip = atoi(optarg); @@ -173,19 +180,19 @@ static int do_add(int fd, int argc, char **argv, int off) rule.flags |= FBD_FLAG_WRITE; break; default: - return usage(argv[0]); + usage(); } } optind += off; /* compensate for the shifted argc/argv */ - if (optind >= argc) return usage(argv[0]); + if (optind >= argc) usage(); /* default to reads and writes */ if (!rule.flags) rule.flags = FBD_FLAG_READ | FBD_FLAG_WRITE; if (!strcmp(argv[optind], "corrupt")) { - if (optind+1 >= argc) return usage(argv[0]); + if (optind+1 >= argc) usage(); rule.action = FBD_ACTION_CORRUPT; @@ -195,10 +202,10 @@ static int do_add(int fd, int argc, char **argv, int off) rule.params.corrupt.type = FBD_CORRUPT_PERSIST; else if (!strcmp(argv[optind+1], "random")) rule.params.corrupt.type = FBD_CORRUPT_RANDOM; - else return usage(argv[0]); + else usage(); } else if (!strcmp(argv[optind], "error")) { - if (optind+1 >= argc) return usage(argv[0]); + if (optind+1 >= argc) usage(); rule.action = FBD_ACTION_ERROR; @@ -210,21 +217,21 @@ static int do_add(int fd, int argc, char **argv, int off) else rule.params.error.code = EIO; } - else return usage(argv[0]); + else usage(); } else if (!strcmp(argv[optind], "misdir")) { - if (optind+2 >= argc) return usage(argv[0]); + if (optind+2 >= argc) usage(); rule.action = FBD_ACTION_MISDIR; if (!scan_range(argv[optind+1], &rule.params.misdir.start, - &rule.params.misdir.end, 1)) - return usage(argv[0]); + &rule.params.misdir.end, 1)) + usage(); rule.params.misdir.align = atoi(argv[optind+2]); - if ((int) rule.params.misdir.align <= 0) - return usage(argv[0]); + if ((int)rule.params.misdir.align <= 0) + usage(); } else if (!strcmp(argv[optind], "lost")) { rule.action = FBD_ACTION_LOSTTORN; @@ -232,16 +239,16 @@ static int do_add(int fd, int argc, char **argv, int off) rule.params.losttorn.lead = 0; } else if (!strcmp(argv[optind], "torn")) { - if (optind+1 >= argc) return usage(argv[0]); + if (optind+1 >= argc) usage(); rule.action = FBD_ACTION_LOSTTORN; rule.params.losttorn.lead = atoi(argv[optind+1]); - if ((int) rule.params.losttorn.lead <= 0) - return usage(argv[0]); + if ((int)rule.params.losttorn.lead <= 0) + usage(); } - else return usage(argv[0]); + else usage(); #if DEBUG print_rule(&rule); @@ -260,12 +267,13 @@ static int do_add(int fd, int argc, char **argv, int off) return EXIT_SUCCESS; } -static int do_del(int fd, int argc, char **argv, int off) +static int +do_del(int fd, int argc, char ** argv, int off) { fbd_rulenum_t num; if (argc < off + 2) - return usage(argv[0]); + usage(); num = atoi(argv[off + 1]); @@ -280,17 +288,20 @@ static int do_del(int fd, int argc, char **argv, int off) return EXIT_SUCCESS; } -int main(int argc, char **argv) +int +main(int argc, char ** argv) { int r, fd, off = 1; - char *dev = "/dev/fbd"; + const char *dev = PATH_DEV_FBD; + + setprogname(argv[0]); if (argc < 2) - return usage(argv[0]); + usage(); if (!strcmp(argv[1], "-d")) { if (argc < 4) - return usage(argv[0]); + usage(); dev = argv[2]; @@ -304,14 +315,14 @@ int main(int argc, char **argv) return EXIT_FAILURE; } - else if (!strcmp(argv[off], "list")) + if (!strcmp(argv[off], "list")) r = do_list(fd); else if (!strcmp(argv[off], "add")) r = do_add(fd, argc, argv, off); else if (!strcmp(argv[off], "del")) r = do_del(fd, argc, argv, off); else - r = usage(argv[0]); + usage(); close(fd);