1 typedef struct Method Method; 2 struct Method 3 { 4 char *name; 5 void (*config)(Method*); 6 int (*connect)(void); 7 char *arg; 8 }; 9 enum 10 { 11 Statsz= 256, 12 Nbarg= 16, 13 }; 14 15 #define dprint(...) if(debugboot) fprint(2, __VA_ARGS__); else USED(debugboot) 16 17 extern char* bootdisk; /* defined in ../$arch/boot$CONF.c */ 18 extern char* rootdir; 19 extern int (*cfs)(int); 20 extern int cpuflag; 21 extern char cputype[]; 22 extern int debugboot; 23 extern int fflag; 24 extern int kflag; 25 extern Method method[]; /* defined in ../$arch/boot$CONF.c */ 26 extern void (*pword)(int, Method*); 27 extern char sys[]; 28 extern uchar hostkey[]; 29 extern uchar statbuf[Statsz]; 30 extern int bargc; 31 extern char *bargv[Nbarg]; 32 33 /* libc equivalent */ 34 extern void authentication(int); 35 extern int cache(int); 36 extern char* checkkey(Method*, char*, char*); 37 extern int chmod(char *file, int mode); 38 extern void fatal(char*); 39 extern void getpasswd(char*, int); 40 extern void key(int, Method*); 41 extern int mountusbparts(void); 42 extern int outin(char*, char*, int); 43 extern int plumb(char*, char*, int*, char*); 44 extern int readfile(char*, char*, int); 45 extern int readparts(void); 46 extern long readn(int, void*, long); 47 extern void run(char *file, ...); 48 extern void runv(char **argv); 49 extern int sendmsg(int, char*); 50 extern void setenv(char*, char*); 51 extern void settime(int, int, char*); 52 extern void srvcreate(char*, int); 53 extern void usbinit(int post); 54 extern void warning(char*); 55 extern int writefile(char*, char*, int); 56 extern void boot(int, char **); 57 extern void doauthenticate(int, Method*); 58 extern int old9p(int); 59 extern int parsefields(char*, char**, int, char*); 60 61 /* methods */ 62 extern void configtcp(Method*); 63 extern int connecttcp(void); 64 65 extern void configlocal(Method*); 66 extern int connectlocal(void); 67 68 extern void configpaq(Method*); 69 extern int connectpaq(void); 70 71 extern void configembed(Method*); 72 extern int connectembed(void); 73 74 extern void configip(int, char**, int); 75 76 /* hack for passing authentication address */ 77 extern char *authaddr; 78