blob: 58f495999a080741c5c799c8907248c610ede55e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include "libultra_internal.h"
#include "controller.h"
s32 osPfsFreeBlocks(OSPfs* pfs, s32* bytes_not_used) {
int j;
int pages;
__OSInode inode;
s32 ret;
u8 bank;
int offset;
pages = 0;
ret = 0;
PFS_CHECK_STATUS;
PFS_CHECK_ID;
for (bank = 0; bank < pfs->banks; bank++) {
ERRCK(__osPfsRWInode(pfs, &inode, OS_READ, bank));
if (bank > 0) {
offset = 1;
} else {
offset = pfs->inode_start_page;
}
for (j = offset; j < ARRLEN(inode.inode_page); j++) {
if (inode.inode_page[j].ipage == 3) {
pages++;
}
}
}
*bytes_not_used = pages * PFS_ONE_PAGE * BLOCKSIZE;
return 0;
}
|