xref: /plan9/sys/src/cmd/aux/flashfs/testld.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1 #include <u.h>
2 #include <libc.h>
3 #include <auth.h>
4 #include <fcall.h>
5 #include <thread.h>
6 #include <9p.h>
7 #include "flashfs.h"
8 
9 static void
usage(void)10 usage(void)
11 {
12 	fprint(2, "usage: %s -n nsect -z sectsize -f file\n", prog);
13 	exits("usage");
14 }
15 
16 static ulong
argval(char * arg)17 argval(char *arg)
18 {
19 	long v;
20 	char *extra;
21 
22 	if(arg == nil)
23 		usage();
24 	v = strtol(arg, &extra, 0);
25 	if(*extra || v <= 0)
26 		usage();
27 	return v;
28 }
29 
30 void
main(int argc,char ** argv)31 main(int argc, char **argv)
32 {
33 	char *file;
34 
35 	prog = "testldfs";
36 	file = nil;
37 
38 	ARGBEGIN {
39 	case 'n':
40 		nsects = argval(ARGF());
41 		break;
42 	case 'z':
43 		sectsize = argval(ARGF());
44 		break;
45 	case 'f':
46 		file = ARGF();
47 		break;
48 	default:
49 		usage();
50 	} ARGEND
51 
52 	if(argc != 0 || nsects == 0 || sectsize == 0 || file == nil)
53 		usage();
54 
55 	if(nsects < 8) {
56 		fprint(2, "%s: unreasonable value for nsects: %lud\n", prog, nsects);
57 		exits("nsects");
58 	}
59 
60 	if(sectsize < 512) {
61 		fprint(2, "%s: unreasonable value for sectsize: %lud\n", prog, sectsize);
62 		exits("sectsize");
63 	}
64 
65 	sectbuff = emalloc9p(sectsize);
66 	initdata(file, 0);
67 	einit();
68 	loadfs(1);
69 }
70