Blame


1 0c98da8b 2005-07-13 devnull /* Copyright (c) Russ Cox, MIT; see src/libdiskfs/COPYRIGHT */
2 0c98da8b 2005-07-13 devnull
3 0c98da8b 2005-07-13 devnull AUTOLIB(diskfs)
4 0c98da8b 2005-07-13 devnull
5 0c98da8b 2005-07-13 devnull typedef struct Block Block;
6 0c98da8b 2005-07-13 devnull typedef struct Disk Disk;
7 0c98da8b 2005-07-13 devnull typedef struct Fsys Fsys;
8 0c98da8b 2005-07-13 devnull
9 0c98da8b 2005-07-13 devnull #ifndef _NFS3H_ /* in case sunrpc.h, nfs3.h are not included */
10 0c98da8b 2005-07-13 devnull typedef struct SunAuthUnix SunAuthUnix;
11 0c98da8b 2005-07-13 devnull typedef struct Nfs3Attr Nfs3Attr;
12 0c98da8b 2005-07-13 devnull typedef struct Nfs3Entry Nfs3Entry;
13 0c98da8b 2005-07-13 devnull typedef struct Nfs3Handle Nfs3Handle;
14 0c98da8b 2005-07-13 devnull typedef int Nfs3Status;
15 0c98da8b 2005-07-13 devnull #endif
16 0c98da8b 2005-07-13 devnull struct VtCache;
17 0c98da8b 2005-07-13 devnull
18 0c98da8b 2005-07-13 devnull struct Disk
19 0c98da8b 2005-07-13 devnull {
20 0c98da8b 2005-07-13 devnull Block *(*_read)(Disk *disk, u32int count, u64int offset);
21 0c98da8b 2005-07-13 devnull int (*_sync)(Disk*);
22 0c98da8b 2005-07-13 devnull void (*_close)(Disk*);
23 0c98da8b 2005-07-13 devnull void *priv;
24 0c98da8b 2005-07-13 devnull };
25 0c98da8b 2005-07-13 devnull
26 0c98da8b 2005-07-13 devnull struct Block
27 0c98da8b 2005-07-13 devnull {
28 0c98da8b 2005-07-13 devnull Disk *disk;
29 0c98da8b 2005-07-13 devnull u32int len;
30 0c98da8b 2005-07-13 devnull uchar *data;
31 0c98da8b 2005-07-13 devnull void (*_close)(Block*);
32 0c98da8b 2005-07-13 devnull void *priv;
33 0c98da8b 2005-07-13 devnull };
34 0c98da8b 2005-07-13 devnull
35 0c98da8b 2005-07-13 devnull struct Fsys
36 0c98da8b 2005-07-13 devnull {
37 0c98da8b 2005-07-13 devnull u32int blocksize;
38 0c98da8b 2005-07-13 devnull u32int nblock;
39 0c98da8b 2005-07-13 devnull char *type;
40 0c98da8b 2005-07-13 devnull
41 0c98da8b 2005-07-13 devnull Disk *disk;
42 0c98da8b 2005-07-13 devnull Block *(*_readblock)(Fsys *fsys, u64int blockno);
43 0c98da8b 2005-07-13 devnull int (*_sync)(Fsys *fsys);
44 0c98da8b 2005-07-13 devnull void (*_close)(Fsys *fsys);
45 0c98da8b 2005-07-13 devnull
46 0c98da8b 2005-07-13 devnull Nfs3Status (*_root)(Fsys*, Nfs3Handle*);
47 0c98da8b 2005-07-13 devnull Nfs3Status (*_access)(Fsys*, SunAuthUnix*, Nfs3Handle*, u32int, u32int*, Nfs3Attr*);
48 0c98da8b 2005-07-13 devnull Nfs3Status (*_lookup)(Fsys*, SunAuthUnix*, Nfs3Handle*, char*, Nfs3Handle*);
49 0c98da8b 2005-07-13 devnull Nfs3Status (*_getattr)(Fsys*, SunAuthUnix*, Nfs3Handle*, Nfs3Attr*);
50 0c98da8b 2005-07-13 devnull Nfs3Status (*_readdir)(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, u32int count, u64int cookie, uchar**, u32int*, uchar*);
51 0c98da8b 2005-07-13 devnull Nfs3Status (*_readfile)(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, u32int count, u64int offset, uchar**, u32int*, uchar*);
52 0c98da8b 2005-07-13 devnull Nfs3Status (*_readlink)(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, char **link);
53 0c98da8b 2005-07-13 devnull
54 0c98da8b 2005-07-13 devnull void *priv;
55 d407972b 2005-07-28 devnull
56 d407972b 2005-07-28 devnull u64int (*fileblock)(Fsys *fsys, Nfs3Handle *h, u64int offset);
57 0c98da8b 2005-07-13 devnull };
58 0c98da8b 2005-07-13 devnull
59 0c98da8b 2005-07-13 devnull struct Handle
60 0c98da8b 2005-07-13 devnull {
61 0c98da8b 2005-07-13 devnull uchar h[64];
62 0c98da8b 2005-07-13 devnull int len;
63 0c98da8b 2005-07-13 devnull };
64 0c98da8b 2005-07-13 devnull
65 0c98da8b 2005-07-13 devnull void blockdump(Block *b, char *desc);
66 0c98da8b 2005-07-13 devnull void blockput(Block *b);
67 0c98da8b 2005-07-13 devnull
68 0c98da8b 2005-07-13 devnull Disk* diskcache(Disk*, uint, uint);
69 0c98da8b 2005-07-13 devnull Disk* diskopenventi(struct VtCache*, uchar*);
70 0c98da8b 2005-07-13 devnull Disk* diskopenfile(char *file);
71 51d1a81c 2007-05-28 devnull Disk* diskpart(Disk*, u64int offset, u64int count);
72 eba172d6 2007-05-28 devnull void diskpartabandon(Disk*);
73 0c98da8b 2005-07-13 devnull
74 0c98da8b 2005-07-13 devnull Disk* diskopen(char *file);
75 0c98da8b 2005-07-13 devnull void diskclose(Disk *disk);
76 0c98da8b 2005-07-13 devnull Block* diskread(Disk *disk, u32int, u64int offset);
77 0c98da8b 2005-07-13 devnull int disksync(Disk *disk);
78 0c98da8b 2005-07-13 devnull
79 0c98da8b 2005-07-13 devnull Fsys* fsysopenffs(Disk*);
80 d63163af 2007-05-28 devnull Fsys* fsysopenhfs(Disk*);
81 0c98da8b 2005-07-13 devnull Fsys* fsysopenkfs(Disk*);
82 0c98da8b 2005-07-13 devnull Fsys* fsysopenext2(Disk*);
83 0c98da8b 2005-07-13 devnull Fsys* fsysopenfat(Disk*);
84 0c98da8b 2005-07-13 devnull
85 0c98da8b 2005-07-13 devnull Fsys* fsysopen(Disk *disk);
86 0c98da8b 2005-07-13 devnull Block* fsysreadblock(Fsys *fsys, u64int blockno);
87 0c98da8b 2005-07-13 devnull int fsyssync(Fsys *fsys);
88 0c98da8b 2005-07-13 devnull void fsysclose(Fsys *fsys);
89 0c98da8b 2005-07-13 devnull
90 0c98da8b 2005-07-13 devnull Nfs3Status fsysroot(Fsys *fsys, Nfs3Handle *h);
91 0c98da8b 2005-07-13 devnull Nfs3Status fsyslookup(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, char *name, Nfs3Handle *nh);
92 0c98da8b 2005-07-13 devnull Nfs3Status fsysgetattr(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, Nfs3Attr *attr);
93 0c98da8b 2005-07-13 devnull Nfs3Status fsysreaddir(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, u32int count, u64int cookie, uchar **e, u32int *ne, uchar*);
94 0c98da8b 2005-07-13 devnull Nfs3Status fsysreadfile(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, u32int, u64int, uchar**, u32int*, uchar*);
95 0c98da8b 2005-07-13 devnull Nfs3Status fsysreadlink(Fsys *fsys, SunAuthUnix*, Nfs3Handle *h, char **plink);
96 0c98da8b 2005-07-13 devnull Nfs3Status fsysaccess(Fsys *fsys, SunAuthUnix*, Nfs3Handle*, u32int, u32int*, Nfs3Attr*);
97 0c98da8b 2005-07-13 devnull void* emalloc(ulong size); /* provided by caller */
98 0c98da8b 2005-07-13 devnull
99 0c98da8b 2005-07-13 devnull extern int allowall;