mirror of
https://github.com/Ryujinx/SDL.git
synced 2024-12-22 21:05:28 +00:00
cpuinfo: Fix detection of physical memory above 2GB on NetBSD
Rework the code to clearly prefer 64-bit sysctls first, then legacy sysctls, and eliminate a second ifdef. Signed-off-by: Nia Alarie <nia@NetBSD.org> (cherry picked from commit 69cae07cc1c216e35ddf3df98048378ad7aeaf92)
This commit is contained in:
parent
63e9827b90
commit
92d70f4167
|
@ -1079,16 +1079,19 @@ int SDL_GetSystemRAM(void)
|
|||
#endif
|
||||
#ifdef HAVE_SYSCTLBYNAME
|
||||
if (SDL_SystemRAM <= 0) {
|
||||
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__DragonFly__)
|
||||
#ifdef HW_REALMEM
|
||||
#ifdef HW_PHYSMEM64
|
||||
/* (64-bit): NetBSD since 2003, OpenBSD */
|
||||
int mib[2] = { CTL_HW, HW_PHYSMEM64 };
|
||||
#elif defined(HW_REALMEM)
|
||||
/* (64-bit): FreeBSD since 2005, DragonFly */
|
||||
int mib[2] = { CTL_HW, HW_REALMEM };
|
||||
#else
|
||||
/* might only report up to 2 GiB */
|
||||
int mib[2] = { CTL_HW, HW_PHYSMEM };
|
||||
#endif /* HW_REALMEM */
|
||||
#else
|
||||
#elif defined(HW_MEMSIZE)
|
||||
/* (64-bit): Darwin */
|
||||
int mib[2] = { CTL_HW, HW_MEMSIZE };
|
||||
#endif /* __FreeBSD__ || __FreeBSD_kernel__ */
|
||||
#else
|
||||
/* (32-bit): very old BSD, might only report up to 2 GiB */
|
||||
int mib[2] = { CTL_HW, HW_PHYSMEM };
|
||||
#endif /* HW_PHYSMEM64 */
|
||||
Uint64 memsize = 0;
|
||||
size_t len = sizeof(memsize);
|
||||
|
||||
|
|
Loading…
Reference in a new issue