xref: /inferno-os/libnandfs/getblockstatus.c (revision 7ef44d652ae9e5e1f5b3465d73684e4a54de73c0)
1 #include "logfsos.h"
2 #include "logfs.h"
3 #include "nandfs.h"
4 #include "local.h"
5 
6 char *
7 nandfsgetblockstatus(Nandfs *nandfs, long absblock, int *magicfound, void **llsavep, LogfsLowLevelReadResult *result)
8 {
9 	NandfsTags tags;
10 	char *errmsg;
11 	ulong *llsave;
12 
13 	errmsg = nandfsreadpageauxiliary(nandfs, &tags, absblock, 0, 1, result);
14 
15 	*magicfound = tags.magic == LogfsMagic;
16 
17 	if (llsavep) {
18 		llsave = nandfsrealloc(nil, sizeof(ulong));
19 		if (llsave == nil)
20 			return Enomem;
21 		*llsave = tags.nerase;
22 		*llsavep = llsave;
23 	}
24 
25 	return errmsg;
26 }
27 
28