xref: /inferno-os/os/boot/pc/kfs.h (revision 74a4d8c26dd3c1e9febcb717cfd6cb6512991a7a)
1 typedef struct Qid9p1 Qid9p1;
2 typedef struct Dentry Dentry;
3 typedef struct Kfsfile Kfsfile;
4 typedef struct Kfs Kfs;
5 
6 /* DONT TOUCH, this is the disk structure */
7 struct	Qid9p1
8 {
9 	long	path;
10 	long	version;
11 };
12 
13 //#define	NAMELEN		28		/* size of names */
14 #define	NDBLOCK		6		/* number of direct blocks in Dentry */
15 
16 /* DONT TOUCH, this is the disk structure */
17 struct	Dentry
18 {
19 	char	name[NAMELEN];
20 	short	uid;
21 	short	gid;
22 	ushort	mode;
23 /*
24 		#define	DALLOC	0x8000
25 		#define	DDIR	0x4000
26 		#define	DAPND	0x2000
27 		#define	DLOCK	0x1000
28 		#define	DREAD	0x4
29 		#define	DWRITE	0x2
30 		#define	DEXEC	0x1
31 */
32 	Qid9p1	qid;
33 	long	size;
34 	long	dblock[NDBLOCK];
35 	long	iblock;
36 	long	diblock;
37 	long	atime;
38 	long	mtime;
39 };
40 
41 struct Kfsfile
42 {
43 	Dentry;
44 	long off;
45 };
46 
47 struct Kfs
48 {
49 	int	RBUFSIZE;
50 	int	BUFSIZE;
51 	int	DIRPERBUF;
52 	int	INDPERBUF;
53 	int	INDPERBUF2;
54 };
55 
56 extern int kfsinit(Fs*);
57 
58