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 extern void authentication(int); 16 extern char* bootdisk; 17 extern char* rootdir; 18 extern int (*cfs)(int); 19 extern int cpuflag; 20 extern char cputype[]; 21 extern int fflag; 22 extern int kflag; 23 extern Method method[]; 24 extern void (*pword)(int, Method*); 25 extern char sys[]; 26 extern uchar hostkey[]; 27 extern uchar statbuf[Statsz]; 28 extern int bargc; 29 extern char *bargv[Nbarg]; 30 31 /* libc equivalent */ 32 extern int cache(int); 33 extern char* checkkey(Method*, char*, char*); 34 extern void fatal(char*); 35 extern void getpasswd(char*, int); 36 extern void key(int, Method*); 37 extern int outin(char*, char*, int); 38 extern int plumb(char*, char*, int*, char*); 39 extern int readfile(char*, char*, int); 40 extern long readn(int, void*, long); 41 extern int sendmsg(int, char*); 42 extern void setenv(char*, char*); 43 extern void settime(int, int, char*); 44 extern void srvcreate(char*, int); 45 extern void warning(char*); 46 extern int writefile(char*, char*, int); 47 extern void boot(int, char **); 48 extern void doauthenticate(int, Method*); 49 extern int old9p(int); 50 extern int parsefields(char*, char**, int, char*); 51 52 /* methods */ 53 extern void configil(Method*); 54 extern int connectil(void); 55 56 extern void configtcp(Method*); 57 extern int connecttcp(void); 58 59 extern void configlocal(Method*); 60 extern int connectlocal(void); 61 62 extern void configsac(Method*); 63 extern int connectsac(void); 64 65 extern void configpaq(Method*); 66 extern int connectpaq(void); 67 68 extern void configembed(Method*); 69 extern int connectembed(void); 70 71 extern void configip(int, char**, int); 72 73 /* hack for passing authentication address */ 74 extern char *authaddr; 75