Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
typedef	struct	Fcall	Fcall;
2
 
3
/* see /sys/include/auth.h */
4
enum
5
{
6
	DOMLEN=		48,		/* length of an authentication domain name */
7
	DESKEYLEN=	7,		/* length of a des key for encrypt/decrypt */
8
	CHALLEN=	8,		/* length of a challenge */
9
	NETCHLEN=	16,		/* max network challenge length	*/
10
	CONFIGLEN=	14,
11
 
12
	KEYDBLEN=	NAMELEN+DESKEYLEN+4+2
13
};
14
#define	TICKETLEN	(CHALLEN+2*NAMELEN+DESKEYLEN+1)
15
#define	AUTHENTLEN	(CHALLEN+4+1)
16
 
17
struct	Fcall
18
{
19
	char	type;
20
	short	fid;
21
	unsigned short	tag;
22
	union
23
	{
24
		struct
25
		{
26
			unsigned short	oldtag;		/* T-Flush */
27
			Qid	qid;		/* R-Attach, R-Walk, R-Open, R-Create */
28
			char	rauth[AUTHENTLEN];	/* Rattach */
29
		};
30
		struct
31
		{
32
			char	uname[NAMELEN];	/* T-Attach */
33
			char	aname[NAMELEN];	/* T-Attach */
34
			char	ticket[TICKETLEN];	/* T-Attach */
35
			char	auth[AUTHENTLEN];/* T-Attach */
36
		};
37
		struct
38
		{
39
			char	ename[ERRLEN];	/* R-Error */
40
			char	authid[NAMELEN];	/* R-session */
41
			char	authdom[DOMLEN];	/* R-session */
42
			char	chal[CHALLEN];		/* T-session/R-session */
43
		};
44
		struct
45
		{
46
			long	perm;		/* T-Create */ 
47
			short	newfid;		/* T-Clone, T-Clwalk */
48
			char	name[NAMELEN];	/* T-Walk, T-Clwalk, T-Create */
49
			char	mode;		/* T-Create, T-Open */
50
		};
51
		struct
52
		{
53
			long	offset;		/* T-Read, T-Write */
54
			long	count;		/* T-Read, T-Write, R-Read */
55
			char	*data;		/* T-Write, R-Read */
56
		};
57
		struct
58
		{
59
			char	stat[DIRLEN];	/* T-Wstat, R-Stat */
60
		};
61
	};
62
};
63
 
64
#define	MAXFDATA	8192
65
#define	MAXMSG		160	/* max header sans data */
66
#define NOTAG		0xFFFF	/* Dummy tag */
67
 
68
enum
69
{
70
	Tmux =		48,
71
	Rmux,			/* illegal */
72
	Tnop =		50,
73
	Rnop,
74
	Tosession =	52,	/* illegal */
75
	Rosession,		/* illegal */
76
	Terror =	54,	/* illegal */
77
	Rerror,
78
	Tflush =	56,
79
	Rflush,
80
	Toattach =	58,	/* illegal */
81
	Roattach,		/* illegal */
82
	Tclone =	60,
83
	Rclone,
84
	Twalk =		62,
85
	Rwalk,
86
	Topen =		64,
87
	Ropen,
88
	Tcreate =	66,
89
	Rcreate,
90
	Tread =		68,
91
	Rread,
92
	Twrite =	70,
93
	Rwrite,
94
	Tclunk =	72,
95
	Rclunk,
96
	Tremove =	74,
97
	Rremove,
98
	Tstat =		76,
99
	Rstat,
100
	Twstat =	78,
101
	Rwstat,
102
	Tclwalk =	80,
103
	Rclwalk,
104
	Tauth =		82,	/* illegal */
105
	Rauth,			/* illegal */
106
	Tsession =	84,
107
	Rsession,
108
	Tattach =	86,
109
	Rattach,
110
};
111
 
112
int	convM2S(char*, Fcall*, int);
113
int	convS2M(Fcall*, char*);
114
 
115
int	convM2D(char*, Dir*);
116
int	convD2M(Dir*, char*);
117
 
118
char*	getS(int, char*, Fcall*, long*);