typedef struct Auth Auth;
struct Auth {
	char *name;

	char* (*auth)(Fcall*, Fcall*);
	char* (*attach)(Fcall*, Fcall*);
	void (*init)(void);
	char* (*read)(Fcall*, Fcall*);
	char* (*write)(Fcall*, Fcall*);
	char* (*clunk)(Fcall*, Fcall*);
};

extern char remotehostname[];
extern char Eauth[];
extern char *autharg;

extern Auth authp9any;
extern Auth authrhosts;
extern Auth authnone;

extern ulong truerand(void);
extern void randombytes(uchar*, uint);

extern ulong  msize;

typedef struct Fid Fid;
Fid *newauthfid(int fid, void *magic, char **ep);
Fid *oldauthfid(int fid, void **magic, char **ep);

void safecpy(char *to, char *from, int len);
void	getremotehostname(char*, int);
