Commit Diff


commit - 5c7644e080c4d376d6aeb7990e0e23ca1c02aab6
commit + b7eed2e0e14b980bed4ced80a357189a981d28bc
blob - 893b05044a117aa4299923210118859bd0e49d52
blob + 6f46487f8918299370b9612cc22a97f4439fdf69
--- include/fcall.h
+++ include/fcall.h
@@ -34,13 +34,16 @@ struct	Fcall
 	ushort	nwname;		/* Twalk */
 	char	*wname[MAXWELEM];	/* Twalk */
 	ushort	nwqid;		/* Rwalk */
-	Qid	wqid[MAXWELEM];		/* Rwalk */
+	Qid	wqid[MAXWELEM];	/* Rwalk */
 	vlong	offset;		/* Tread, Twrite */
 	u32int	count;		/* Tread, Twrite, Rread */
 	char	*data;		/* Twrite, Rread */
 	ushort	nstat;		/* Twstat, Rstat */
 	uchar	*stat;		/* Twstat, Rstat */
 	int	unixfd;		/* Ropenfd */
+	
+	/* 9P2000.u extensions */
+	int	errornum;	/* Rerror */
 } Fcall;
 
 
@@ -65,6 +68,7 @@ struct	Fcall
 /* STATFIXLEN includes leading 16-bit count */
 /* The count, however, excludes itself; total size is BIT16SZ+count */
 #define STATFIXLEN	(BIT16SZ+QIDSZ+5*BIT16SZ+4*BIT32SZ+1*BIT64SZ)	/* amount of fixed length data in a stat buffer */
+#define STATFIXLENU	(STATFIXLEN+BIT16SZ+3*BIT32SZ)	/* for 9P2000.u */
 
 #define	NOTAG		(ushort)~0U	/* Dummy tag */
 #define	NOFID		(u32int)~0U	/* Dummy fid */
@@ -115,6 +119,15 @@ uint	convM2D(uchar*, uint, Dir*, char*);
 uint	convD2M(Dir*, uchar*, uint);
 uint	sizeD2M(Dir*);
 
+uint	convM2Su(uchar*, uint, Fcall*, int);
+uint	convS2Mu(Fcall*, uchar*, uint, int);
+uint	sizeS2Mu(Fcall*, int);
+
+int	statchecku(uchar *abuf, uint nbuf, int);
+uint	convM2Du(uchar*, uint, Dir*, char*, int);
+uint	convD2Mu(Dir*, uchar*, uint, int);
+uint	sizeD2Mu(Dir*, int);
+
 int	fcallfmt(Fmt*);
 int	dirfmt(Fmt*);
 int	dirmodefmt(Fmt*);