Use real free space if smaller than DSiWare limit

This commit is contained in:
Pk11 2022-01-15 01:01:59 -06:00
parent eed5dc867e
commit 0c0dcc3e5e
2 changed files with 12 additions and 10 deletions

View File

@ -512,6 +512,15 @@ unsigned long long getDsiSize()
return 1024 * BYTES_PER_BLOCK;
}
unsigned long long getDsiRealFree()
{
struct statvfs st;
if (statvfs(sdnandMode ? "sd:/" : "nand:/", &st) == 0)
return st.f_bsize * st.f_bavail;
return 0;
}
unsigned long long getDsiFree()
{
u32 blockSize = getDsiClusterSize();
@ -530,16 +539,9 @@ unsigned long long getDsiFree()
size -= appSize;
}
return size;
}
unsigned long long realFree = getDsiRealFree();
unsigned long long getDsiRealFree()
{
struct statvfs st;
if (statvfs(sdnandMode ? "sd:/" : "nand:/", &st) == 0)
return st.f_bsize * st.f_bavail;
return 0;
return (realFree < size) ? realFree : size;
}
u32 getDsiClusterSize()

View File

@ -41,8 +41,8 @@ unsigned long long getSDCardFree();
//internal storage
unsigned long long getDsiSize();
unsigned long long getDsiFree();
unsigned long long getDsiRealFree();
unsigned long long getDsiFree();
u32 getDsiClusterSize();
#define getDsiUsed() (getDSIStorageSize() - getDSIStorageFree())