diff options
Diffstat (limited to 'src/libultra_code_O2/pfschecker.c')
| -rw-r--r-- | src/libultra_code_O2/pfschecker.c | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/libultra_code_O2/pfschecker.c b/src/libultra_code_O2/pfschecker.c index e4934a17a..b0a94f1ad 100644 --- a/src/libultra_code_O2/pfschecker.c +++ b/src/libultra_code_O2/pfschecker.c @@ -14,39 +14,32 @@ s32 osPfsChecker(OSPfs* pfs) { __OSInode tempInode; __OSDir tempDir; __OSInodeUnit nextNodeInFile[16]; - __OSInodeCache cache; - s32 fixed = 0; u8 bank, prevBank = 254; s32 cc, cl; s32 offset; ret = __osCheckId(pfs); - if (ret == PFS_ERR_NEW_PACK) { ret = __osGetId(pfs); } - if (ret) { return ret; } - if ((ret = func_80105788(pfs, &cache)) != 0) { return ret; } for (j = 0; j < pfs->dir_size; j++) { - if ((ret = __osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, &tempDir)) != 0) { + if ((ret = __osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tempDir)) != 0) { return ret; } - if ((tempDir.company_code != 0) || (tempDir.game_code != 0)) { if ((tempDir.company_code == 0) || (tempDir.game_code == 0)) { cc = -1; } else { next = tempDir.start_page; - cl = cc = 0; bank = 255; @@ -57,21 +50,17 @@ s32 osPfsChecker(OSPfs* pfs) { ret = __osPfsRWInode(pfs, &tempInode, PFS_READ, bank); prevBank = bank; } - if ((ret != 0) && (ret != PFS_ERR_INCONSISTENT)) { return ret; } } - if ((cc = func_80105A60(pfs, next, &cache) - cl) != 0) { break; } cl = 1; - next = tempInode.inodePage[next.inode_t.page]; } } - if ((cc != 0) || (next.ipage != PFS_EOF)) { bzero(&tempDir, sizeof(__OSDir)); if (pfs->activebank != 0) { @@ -79,7 +68,7 @@ s32 osPfsChecker(OSPfs* pfs) { return ret; } } - if ((ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + j, &tempDir, 0)) != 0) { + if ((ret = __osContRamWrite(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tempDir, 0)) != 0) { return ret; } @@ -87,8 +76,9 @@ s32 osPfsChecker(OSPfs* pfs) { } } } + for (j = 0; j < pfs->dir_size; j++) { - if ((ret = __osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, &tempDir)) != 0) { + if ((ret = __osContRamRead(pfs->queue, pfs->channel, pfs->dir_table + j, (u8*)&tempDir)) != 0) { return ret; } @@ -184,7 +174,7 @@ s32 func_80105A60(OSPfs* pfs, __OSInodeUnit fpage, __OSInodeCache* cache) { if ((bank == fpage.inode_t.bank) || (cache->map[n] & (1 << (bank % PFS_BANK_LAPPED_BY))) != 0) { if (bank != cache->bank) { ret = __osPfsRWInode(pfs, &(cache->inode), PFS_READ, bank); - if ((ret) && (ret != PFS_ERR_INCONSISTENT)) { + if (ret && (ret != PFS_ERR_INCONSISTENT)) { return ret; } cache->bank = bank; |
