xref: /inferno-os/libnandfs/getblockstatus.c (revision 28942ead413418b56c5be78e8c4c400881fba72e)
1 #include "logfsos.h"
2 #include "logfs.h"
3 #include "nandfs.h"
4 #include "local.h"
5 
6 char *
nandfsgetblockstatus(Nandfs * nandfs,long absblock,int * magicfound,void ** llsavep,LogfsLowLevelReadResult * result)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