getblockstatus.c 544 B

123456789101112131415161718192021222324252627
  1. #include "logfsos.h"
  2. #include "logfs.h"
  3. #include "nandfs.h"
  4. #include "local.h"
  5. char *
  6. nandfsgetblockstatus(Nandfs *nandfs, long absblock, int *magicfound, void **llsavep, LogfsLowLevelReadResult *result)
  7. {
  8. NandfsTags tags;
  9. char *errmsg;
  10. ulong *llsave;
  11. errmsg = nandfsreadpageauxiliary(nandfs, &tags, absblock, 0, 1, result);
  12. *magicfound = tags.magic == LogfsMagic;
  13. if (llsavep) {
  14. llsave = nandfsrealloc(nil, sizeof(ulong));
  15. if (llsave == nil)
  16. return Enomem;
  17. *llsave = tags.nerase;
  18. *llsavep = llsave;
  19. }
  20. return errmsg;
  21. }