code: 9ferno

ref: 6bb619c8db2867ddd9cd19c0aec05065f5ee0cae
dir: /libnandfs/getblockstatus.c/

View raw version
#include "logfsos.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;
}