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 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 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 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