summaryrefslogtreecommitdiff
path: root/include/nandfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/nandfs.h')
-rw-r--r--include/nandfs.h96
1 files changed, 49 insertions, 47 deletions
diff --git a/include/nandfs.h b/include/nandfs.h
index 66842f6b..1b6eb54b 100644
--- a/include/nandfs.h
+++ b/include/nandfs.h
@@ -1,5 +1,10 @@
#pragma src "/usr/inferno/libnandfs"
+typedef struct Nandfs Nandfs;
+typedef struct NandfsTags NandfsTags;
+
+#pragma incomplete Nandfs
+
enum {
NandfsL2PageSize = 9,
NandfsPageSize = 1 << NandfsL2PageSize,
@@ -11,62 +16,59 @@ enum {
NandfsNeraseMask = ((1 << NandfsNeraseBits) - 1),
};
-typedef struct Nandfs Nandfs;
-
-typedef struct NandfsTags {
+struct NandfsTags {
ulong path; // 26 bits
ulong nerase; // 18 bits
uchar tag; // 8 bits
uchar magic; // 8 bits
-} NandfsTags;
+};
-char *nandfsinit(void *magic, long rawsize, long rawblocksize,
- char *(*read)(void *magic, void *buf, long nbytes, ulong offset),
- char *(*write)(void *magic, void *buf, long nbytes, ulong offset),
- char *(*erase)(void *magic, long blockaddr),
- char *(*sync)(void *magic),
- LogfsLowLevel **llp);
-void nandfsfree(Nandfs *nandfs);
-char *nandfsreadpageauxiliary(Nandfs *nandfs, NandfsTags *tags, long block, int page, int correct, LogfsLowLevelReadResult *result);
-void nandfssetmagic(Nandfs *nandfs, void *magic);
-char *nandfswritepageauxiliary(Nandfs *nandfs, NandfsTags *tags, long absblock, int page);
-char *nandfsreadpage(Nandfs *nandfs, void *buf, NandfsTags *tags, long block, int page, int reportbad, LogfsLowLevelReadResult *result);
-char *nandfsreadpagerange(Nandfs *nandfs, void *buf, long block, int page, int offset, int count, LogfsLowLevelReadResult *result);
-char *nandfsupdatepage(Nandfs *nandfs, void *buf, ulong path, uchar tag, long block, int page);
+char *nandfsinit(void*, long, long, char *(*)(void*, void*, long, ulong),
+ char *(*)(void*, void*, long, ulong),
+ char *(*)(void*, long),
+ char *(*)(void*),
+ LogfsLowLevel **);
+void nandfsfree(Nandfs*);
+char *nandfsreadpageauxiliary(Nandfs*, NandfsTags*, long, int, int, LogfsLowLevelReadResult*);
+void nandfssetmagic(Nandfs*, void*);
+char *nandfswritepageauxiliary(Nandfs*, NandfsTags*, long, int);
+char *nandfsreadpage(Nandfs*, void*, NandfsTags*, long, int, int, LogfsLowLevelReadResult*);
+char *nandfsreadpagerange(Nandfs*, void*, long, int, int, int, LogfsLowLevelReadResult*);
+char *nandfsupdatepage(Nandfs*, void*, ulong, uchar, long, int);
-long nandfsgetnerase(Nandfs *nandfs, long block);
-void nandfssetnerase(Nandfs *nandfs, long block, ulong nerase);
-void nandfssetpartial(Nandfs *nandfs, long block, int partial);
+long nandfsgetnerase(Nandfs*, long);
+void nandfssetnerase(Nandfs*, long, ulong);
+void nandfssetpartial(Nandfs*, long, int);
-char *nandfsmarkabsblockbad(Nandfs *nandfs, long absblock);
+char *nandfsmarkabsblockbad(Nandfs*, long);
/* low level interface functions */
-char *nandfsopen(Nandfs *nandfs, long base, long limit, int trace, int xcount, long *data);
-short nandfsgettag(Nandfs *nandfs, long block);
-void nandfssettag(Nandfs *nandfs, long block, short tag);
-long nandfsgetpath(Nandfs *nandfs, long block);
-void nandfssetpath(Nandfs *nandfs, long block, ulong path);
-int nandfsgetblockpartialformatstatus(Nandfs *nandfs, long block);
-long nandfsfindfreeblock(Nandfs *nandfs, long *freeblocksp);
-char *nandfsreadblock(Nandfs *nandfs, void *buf, long block, LogfsLowLevelReadResult *blocke);
-char *nandfswriteblock(Nandfs *nandfs, void *buf, uchar tag, ulong path, int xcount, long *data, long block);
-char *nandfswritepage(Nandfs *nandfs, void *buf, long block, int page);
-char *nandfseraseblock(Nandfs *nandfs, long block, void **llsavep, int *markedbad);
-char *nandfsformatblock(Nandfs *nandfs, long block, uchar tag, ulong path, long baseblock, long sizeinblocks, int xcount, long *xdata, void *llsave, int *markedbad);
-char *nandfsreformatblock(Nandfs *nandfs, long block, uchar tag, ulong path, int xcount, long *xdata, void *llsave, int *markedbad);
-char *nandfsmarkblockbad(Nandfs *nandfs, long block);
-int nandfsgetpagesize(Nandfs *nandfs);
-int nandfsgetpagesperblock(Nandfs *nandfs);
-long nandfsgetblocks(Nandfs *nandfs);
-long nandfsgetbaseblock(Nandfs *nandfs);
-int nandfsgetblocksize(Nandfs *nandfs);
-ulong nandfscalcrawaddress(Nandfs *nandfs, long pblock, int dataoffset);
-char *nandfsgetblockstatus(Nandfs *nandfs, long block, int *magicfound, void **llsave, LogfsLowLevelReadResult *result);
-int nandfscalcformat(Nandfs *nandfs, long base, long limit, long bootsize, long *baseblock, long *limitblock, long *bootblocks);
-int nandfsgetopenstatus(Nandfs *nandfs);
-char *nandfssync(Nandfs *nandfs);
+char *nandfsopen(Nandfs*, long, long, int, int, long*);
+short nandfsgettag(Nandfs*, long);
+void nandfssettag(Nandfs*, long, short);
+long nandfsgetpath(Nandfs*, long);
+void nandfssetpath(Nandfs*, long, ulong);
+int nandfsgetblockpartialformatstatus(Nandfs*, long);
+long nandfsfindfreeblock(Nandfs*, long*);
+char *nandfsreadblock(Nandfs*, void*, long, LogfsLowLevelReadResult*);
+char *nandfswriteblock(Nandfs*, void*, uchar, ulong, int, long*, long);
+char *nandfswritepage(Nandfs*, void*, long, int);
+char *nandfseraseblock(Nandfs*, long, void **, int*);
+char *nandfsformatblock(Nandfs*, long, uchar, ulong, long, long, int, long*, void*, int*);
+char *nandfsreformatblock(Nandfs*, long, uchar, ulong, int, long*, void*, int*);
+char *nandfsmarkblockbad(Nandfs*, long);
+int nandfsgetpagesize(Nandfs*);
+int nandfsgetpagesperblock(Nandfs*);
+long nandfsgetblocks(Nandfs*);
+long nandfsgetbaseblock(Nandfs*);
+int nandfsgetblocksize(Nandfs*);
+ulong nandfscalcrawaddress(Nandfs*, long, int);
+char *nandfsgetblockstatus(Nandfs*, long, int*, void **, LogfsLowLevelReadResult*);
+int nandfscalcformat(Nandfs*, long, long, long, long*, long*, long*);
+int nandfsgetopenstatus(Nandfs*);
+char *nandfssync(Nandfs*);
/* defined in environment */
-void *nandfsrealloc(void *p, ulong size);
-void nandfsfreemem(void *p);
+void *nandfsrealloc(void*, ulong);
+void nandfsfreemem(void*);