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