mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-10 08:50:23 +00:00
* Less warnings in boot & code segments * few more warnings gone * Ran formatter * z_view warning gone * -> 1 * f31 -> 31 * Remove function casts * Few more small improvements * Separate declaration and assignment in func_80091738 and Item_Give Co-authored-by: Thar0 <maximilianc64@gmail.com>
35 lines
866 B
C
35 lines
866 B
C
#include "ultra64.h"
|
|
#include "global.h"
|
|
#include "ultra64/pfs.h"
|
|
|
|
s32 osPfsFreeBlocks(OSPfs* pfs, s32* leftoverBytes) {
|
|
s32 j;
|
|
s32 pages = 0;
|
|
__OSInode inode;
|
|
s32 ret = 0;
|
|
u8 bank;
|
|
s32 offset;
|
|
|
|
if (!(pfs->status & PFS_INITIALIZED)) {
|
|
return (PFS_ERR_INVALID);
|
|
}
|
|
if ((ret = __osCheckId(pfs)) != 0) {
|
|
return ret;
|
|
}
|
|
|
|
for (bank = PFS_ID_BANK_256K; bank < pfs->banks; bank++) {
|
|
if ((ret = __osPfsRWInode(pfs, &inode, PFS_READ, bank)) != 0) {
|
|
return ret;
|
|
}
|
|
|
|
offset = ((bank > PFS_ID_BANK_256K) ? 1 : pfs->inodeStartPage);
|
|
for (j = offset; j < PFS_INODE_SIZE_PER_PAGE; j++) {
|
|
if (inode.inodePage[j].ipage == PFS_PAGE_NOT_USED) {
|
|
pages++;
|
|
}
|
|
}
|
|
}
|
|
|
|
*leftoverBytes = pages * PFS_ONE_PAGE * BLOCKSIZE;
|
|
return 0;
|
|
}
|