summaryrefslogtreecommitdiff
path: root/libnandfs/getblockstatus.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnandfs/getblockstatus.c')
-rw-r--r--libnandfs/getblockstatus.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/libnandfs/getblockstatus.c b/libnandfs/getblockstatus.c
new file mode 100644
index 00000000..0ebaf5e1
--- /dev/null
+++ b/libnandfs/getblockstatus.c
@@ -0,0 +1,27 @@
+#include "lib9.h"
+#include "logfs.h"
+#include "nandfs.h"
+#include "local.h"
+
+char *
+nandfsgetblockstatus(Nandfs *nandfs, long absblock, int *magicfound, void **llsavep, LogfsLowLevelReadResult *result)
+{
+ NandfsTags tags;
+ char *errmsg;
+ ulong *llsave;
+
+ errmsg = nandfsreadpageauxiliary(nandfs, &tags, absblock, 0, 1, result);
+
+ *magicfound = tags.magic == LogfsMagic;
+
+ if (llsavep) {
+ llsave = nandfsrealloc(nil, sizeof(ulong));
+ if (llsave == nil)
+ return Enomem;
+ *llsave = tags.nerase;
+ *llsavep = llsave;
+ }
+
+ return errmsg;
+}
+