mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 22:30:12 +01:00
util: Add os_get_page_size query
No Apple/BSD implementation yet, I have no idea how to do that Reviewed-by: Francisco Jerez <currojerez@riseup.net> Reviewed-by: Karol Herbst <kherbst@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7680>
This commit is contained in:
parent
852d91edcd
commit
cdf3a6a83b
2 changed files with 37 additions and 0 deletions
|
|
@ -322,3 +322,34 @@ os_get_available_system_memory(uint64_t *size)
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the size of a page
|
||||||
|
* \param size returns the size of a page
|
||||||
|
* \return true for success, or false on failure
|
||||||
|
*/
|
||||||
|
bool
|
||||||
|
os_get_page_size(uint64_t *size)
|
||||||
|
{
|
||||||
|
#if DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS || DETECT_OS_HURD
|
||||||
|
const long page_size = sysconf(_SC_PAGE_SIZE);
|
||||||
|
|
||||||
|
if (page_size <= 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
*size = (uint64_t)page_size;
|
||||||
|
return true;
|
||||||
|
#elif DETECT_OS_HAIKU
|
||||||
|
*size = (uint64_t)B_PAGE_SIZE;
|
||||||
|
return true;
|
||||||
|
#elif DETECT_OS_WINDOWS
|
||||||
|
SYSTEM_INFO SysInfo;
|
||||||
|
|
||||||
|
GetSystemInfo(&SysInfo);
|
||||||
|
*size = SysInfo.dwPageSize;
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
|
#error unexpected platform in os_sysinfo.c
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,12 @@ os_get_total_physical_memory(uint64_t *size);
|
||||||
bool
|
bool
|
||||||
os_get_available_system_memory(uint64_t *size);
|
os_get_available_system_memory(uint64_t *size);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Size of a page
|
||||||
|
*/
|
||||||
|
bool
|
||||||
|
os_get_page_size(uint64_t *size);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue