blob: 45220273905d3e0685d9f0580952d006fa5654c0 (
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
31
|
#include "global.h"
#define STEP 0x100000
u32 osGetMemSize(void) {
u32* ptr;
size_t size = 0x400000;
u32 data0;
u32 data1;
while (size < 0x800000) {
ptr = (u32*)(0xA0000000 + size);
data0 = *ptr;
data1 = ptr[STEP / 4 - 1];
*ptr ^= ~0;
ptr[STEP / 4 - 1] ^= ~0;
if ((*ptr != (data0 ^ ~0)) || (ptr[STEP / 4 - 1] != (data1 ^ ~0))) {
return size;
}
*ptr = data0;
ptr[STEP / 4 - 1] = data1;
size += STEP;
}
return size;
}
|