xref: /plan9-contrib/sys/src/9k/boot/boot.h (revision 532111f7bd696f808abc982252c7e1b4786fc4a7)
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