SDL_GetSystemRAM completion for Haiku system.

using native system_info's api.
main
David Carlier 2023-02-25 08:31:07 +00:00 committed by Sam Lantinga
parent d5775f6708
commit 8d24381e7e
1 changed files with 14 additions and 0 deletions

View File

@ -83,6 +83,10 @@
#include <kernel.h>
#endif
#ifdef __HAIKU__
#include <kernel/OS.h>
#endif
#define CPU_HAS_RDTSC (1 << 0)
#define CPU_HAS_ALTIVEC (1 << 1)
#define CPU_HAS_MMX (1 << 2)
@ -1080,6 +1084,16 @@ int SDL_GetSystemRAM(void)
SDL_SystemRAM = GetMemorySize();
}
#endif
#ifdef __HAIKU__
if (SDL_SystemRAM <= 0) {
system_info info;
if (get_system_info(&info) == B_OK) {
/* To have an accurate amount, we also take in account the inaccessible pages (aka ignored)
which is a bit handier compared to the legacy system's api (i.e. used_pages).*/
SDL_SystemRAM = (int)round((info.max_pages + info.ignored_pages > 0 ? info.ignored_pages : 0) * B_PAGE_SIZE / 1048576.0);
}
}
#endif
#endif
}
return SDL_SystemRAM;