2 |
- |
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 |
extern int pcload;
|
|
|
33 |
|
|
|
34 |
/* libc equivalent */
|
|
|
35 |
extern void authentication(int);
|
|
|
36 |
extern int cache(int);
|
|
|
37 |
extern char* checkkey(Method*, char*, char*);
|
|
|
38 |
extern int chmod(char *file, int mode);
|
|
|
39 |
extern void fatal(char*);
|
|
|
40 |
extern void getpasswd(char*, int);
|
|
|
41 |
extern void key(int, Method*);
|
|
|
42 |
extern int mountusbparts(void);
|
|
|
43 |
extern int outin(char*, char*, int);
|
|
|
44 |
extern int plumb(char*, char*, int*, char*);
|
|
|
45 |
extern int readfile(char*, char*, int);
|
|
|
46 |
extern int readparts(void);
|
|
|
47 |
extern long readn(int, void*, long);
|
|
|
48 |
extern void run(char *file, ...);
|
|
|
49 |
extern void runv(char **argv);
|
|
|
50 |
extern int sendmsg(int, char*);
|
|
|
51 |
extern void setenv(char*, char*);
|
|
|
52 |
extern void settime(int, int, char*);
|
|
|
53 |
extern void srvcreate(char*, int);
|
|
|
54 |
extern void usbinit(int post);
|
|
|
55 |
extern void warning(char*);
|
|
|
56 |
extern int writefile(char*, char*, int);
|
|
|
57 |
extern void boot(int, char **);
|
|
|
58 |
extern void doauthenticate(int, Method*);
|
|
|
59 |
extern int old9p(int);
|
|
|
60 |
extern int parsefields(char*, char**, int, char*);
|
|
|
61 |
|
|
|
62 |
/* methods */
|
|
|
63 |
extern void configtcp(Method*);
|
|
|
64 |
extern int connecttcp(void);
|
|
|
65 |
|
|
|
66 |
extern void configlocal(Method*);
|
|
|
67 |
extern int connectlocal(void);
|
|
|
68 |
|
|
|
69 |
extern void configpaq(Method*);
|
|
|
70 |
extern int connectpaq(void);
|
|
|
71 |
|
|
|
72 |
extern void configembed(Method*);
|
|
|
73 |
extern int connectembed(void);
|
|
|
74 |
|
|
|
75 |
extern void configip(int, char**, int);
|
|
|
76 |
|
|
|
77 |
/* hack for passing authentication address */
|
|
|
78 |
extern char *authaddr;
|