typedef struct Method Method;
struct Method
{
char *name;
void (*config)(Method*);
int (*auth)(void);
int (*connect)(void);
char *arg;
};
extern char* bootdisk;
extern int (*cfs)(int);
extern int cpuflag;
extern char cputype[NAMELEN];
extern int fflag;
extern int kflag;
extern Method method[];
extern char password[NAMELEN];
extern void (*pword)(int, Method*);
extern char sys[2*NAMELEN];
extern char terminal[NAMELEN];
extern char username[NAMELEN];
extern char bootfile[3*NAMELEN];
extern char *sauth;
/* libc equivalent */
extern int cache(int);
extern int dkauth(void);
extern int dkconnect(void);
extern void fatal(char*);
extern void getpasswd(char*, int);
extern void key(int, Method*);
extern void newkernel(void);
extern void nop(int);
extern int outin(char*, char*, int);
extern int plumb(char*, char*, int*, char*);
extern int readenv(char*, char*, int);
extern int sendmsg(int, char*);
extern void session(int);
extern void setenv(char*, char*);
extern void settime(int);
extern void srvcreate(char*, int);
extern void userpasswd(int, Method*);
extern void warning(char*);
extern void boot(int, char **);
extern void bboot(int, char **);
/* methods */
extern void config9600(Method*);
extern int auth9600(void);
extern int connect9600(void);
extern void config19200(Method*);
extern int auth19200(void);
extern int connect19200(void);
extern void confighs(Method*);
extern int authhs(void);
extern int connecths(void);
extern void configincon(Method*);
extern int authincon(void);
extern int connectincon(void);
extern void configil(Method*);
extern int authil(void);
extern int connectil(void);
extern void configtcp(Method*);
extern int authtcp(void);
extern int connecttcp(void);
extern void configcyc(Method*);
extern int authcyc(void);
extern int connectcyc(void);
extern void configlocal(Method*);
extern int authlocal(void);
extern int connectlocal(void);