xref: /plan9/sys/src/9/boot/boot.h (revision 217e9e83c7f9cc6fb27d97dda90c8339b6f98728)
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;
79