fbdctl(8): move to proper location
- move from minix/commands to minix/usr.sbin; - install into /usr/sbin instead of /usr/bin; - move manual page into source directory; - resolve compilation warning; - convert to KNF. Change-Id: I1206b52e8804a68a3a80f6d7f63916e7fcdc9e3f
This commit is contained in:
parent
c175cce5e6
commit
33513d60e9
7 changed files with 76 additions and 63 deletions
|
@ -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
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
SUBDIR+= btrace
|
||||
SUBDIR+= diskctl
|
||||
SUBDIR+= fbdctl
|
||||
SUBDIR+= mkfs.mfs
|
||||
SUBDIR+= mkproto
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
PROG= fbdctl
|
||||
MAN=
|
||||
MAN= fbdctl.8
|
||||
|
||||
.include <bsd.prog.mk>
|
|
@ -2,34 +2,38 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <minix/ioctl.h>
|
||||
#include <minix/u64.h>
|
||||
#include <sys/ioc_fbd.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
|
||||
static int usage(char *name)
|
||||
{
|
||||
printf("usage:\n");
|
||||
printf(" %s list\n", name);
|
||||
printf(" %s add [-a start[-end]] [-s skip] [-c count] [-rw] "
|
||||
"<action> [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 <start>-<end> <align>\n");
|
||||
printf(" lost\n");
|
||||
printf(" torn <lead>\n");
|
||||
printf("use %s -d <device> 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] "
|
||||
"<action> [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 <start>-<end> <align>\n");
|
||||
fprintf(stderr, " lost\n");
|
||||
fprintf(stderr, " torn <lead>\n");
|
||||
fprintf(stderr, "use %s -d <device> 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),
|
||||
|
@ -76,8 +80,7 @@ static void print_rule(struct fbd_rule *rule)
|
|||
|
||||
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]);
|
||||
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);
|
||||
|
Loading…
Reference in a new issue