xref: /plan9/sys/src/9/boot/boot.h (revision 217e9e83c7f9cc6fb27d97dda90c8339b6f98728)
13e12c5d1SDavid du Colombier typedef struct Method	Method;
23e12c5d1SDavid du Colombier struct Method
33e12c5d1SDavid du Colombier {
43e12c5d1SDavid du Colombier 	char	*name;
53e12c5d1SDavid du Colombier 	void	(*config)(Method*);
63e12c5d1SDavid du Colombier 	int	(*connect)(void);
73e12c5d1SDavid du Colombier 	char	*arg;
83e12c5d1SDavid du Colombier };
99a747e4fSDavid du Colombier enum
109a747e4fSDavid du Colombier {
119a747e4fSDavid du Colombier 	Statsz=	256,
129a747e4fSDavid du Colombier 	Nbarg=	16,
139a747e4fSDavid du Colombier };
143e12c5d1SDavid du Colombier 
15*217e9e83SDavid du Colombier #define dprint(...) if(debugboot) fprint(2, __VA_ARGS__); else USED(debugboot)
16*217e9e83SDavid du Colombier 
17b07b71ebSDavid du Colombier extern char*	bootdisk;		/* defined in ../$arch/boot$CONF.c */
187dd7cddfSDavid du Colombier extern char*	rootdir;
193e12c5d1SDavid du Colombier extern int	(*cfs)(int);
203e12c5d1SDavid du Colombier extern int	cpuflag;
21219b2ee8SDavid du Colombier extern char	cputype[];
2263c59e25SDavid du Colombier extern int	debugboot;
233e12c5d1SDavid du Colombier extern int	fflag;
243e12c5d1SDavid du Colombier extern int	kflag;
25b07b71ebSDavid du Colombier extern Method	method[];		/* defined in ../$arch/boot$CONF.c */
263e12c5d1SDavid du Colombier extern void	(*pword)(int, Method*);
27219b2ee8SDavid du Colombier extern char	sys[];
28219b2ee8SDavid du Colombier extern uchar	hostkey[];
299a747e4fSDavid du Colombier extern uchar	statbuf[Statsz];
307dd7cddfSDavid du Colombier extern int	bargc;
317dd7cddfSDavid du Colombier extern char	*bargv[Nbarg];
32d1f2e59dSDavid du Colombier extern int	pcload;
333e12c5d1SDavid du Colombier 
343e12c5d1SDavid du Colombier /* libc equivalent */
35b07b71ebSDavid du Colombier extern void	authentication(int);
363e12c5d1SDavid du Colombier extern int	cache(int);
37219b2ee8SDavid du Colombier extern char*	checkkey(Method*, char*, char*);
3863c59e25SDavid du Colombier extern int	chmod(char *file, int mode);
393e12c5d1SDavid du Colombier extern void	fatal(char*);
403e12c5d1SDavid du Colombier extern void	getpasswd(char*, int);
413e12c5d1SDavid du Colombier extern void	key(int, Method*);
42b07b71ebSDavid du Colombier extern int	mountusbparts(void);
437dd7cddfSDavid du Colombier extern int	outin(char*, char*, int);
443e12c5d1SDavid du Colombier extern int	plumb(char*, char*, int*, char*);
453e12c5d1SDavid du Colombier extern int	readfile(char*, char*, int);
4663c59e25SDavid du Colombier extern int	readparts(void);
477dd7cddfSDavid du Colombier extern long	readn(int, void*, long);
48d1f2e59dSDavid du Colombier extern void	run(char *file, ...);
49b07b71ebSDavid du Colombier extern void	runv(char **argv);
503e12c5d1SDavid du Colombier extern int	sendmsg(int, char*);
513e12c5d1SDavid du Colombier extern void	setenv(char*, char*);
52d9306527SDavid du Colombier extern void	settime(int, int, char*);
533e12c5d1SDavid du Colombier extern void	srvcreate(char*, int);
5463c59e25SDavid du Colombier extern void	usbinit(int post);
553e12c5d1SDavid du Colombier extern void	warning(char*);
56219b2ee8SDavid du Colombier extern int	writefile(char*, char*, int);
573e12c5d1SDavid du Colombier extern void	boot(int, char **);
58219b2ee8SDavid du Colombier extern void	doauthenticate(int, Method*);
599a747e4fSDavid du Colombier extern int		old9p(int);
607dd7cddfSDavid du Colombier extern int	parsefields(char*, char**, int, char*);
613e12c5d1SDavid du Colombier 
623e12c5d1SDavid du Colombier /* methods */
633e12c5d1SDavid du Colombier extern void	configtcp(Method*);
643e12c5d1SDavid du Colombier extern int	connecttcp(void);
659a747e4fSDavid du Colombier 
663e12c5d1SDavid du Colombier extern void	configlocal(Method*);
673e12c5d1SDavid du Colombier extern int	connectlocal(void);
689a747e4fSDavid du Colombier 
699a747e4fSDavid du Colombier extern void	configpaq(Method*);
709a747e4fSDavid du Colombier extern int	connectpaq(void);
719a747e4fSDavid du Colombier 
723ff48bf5SDavid du Colombier extern void	configembed(Method*);
733ff48bf5SDavid du Colombier extern int	connectembed(void);
749a747e4fSDavid du Colombier 
7567031067SDavid du Colombier extern void	configip(int, char**, int);
76dc5a79c1SDavid du Colombier 
779a747e4fSDavid du Colombier /* hack for passing authentication address */
789a747e4fSDavid du Colombier extern char	*authaddr;
79