mem/virtual: use sysconf for retrieving page size and actually use these init procs

This commit is contained in:
Laytan Laats
2024-08-29 14:36:32 +02:00
parent 1e6419b5b7
commit fd2ad20cd4
2 changed files with 9 additions and 2 deletions

View File

@@ -7,6 +7,11 @@ _ :: runtime
DEFAULT_PAGE_SIZE := uint(4096)
@(init, private)
platform_memory_init :: proc() {
_platform_memory_init()
}
Allocator_Error :: mem.Allocator_Error
@(require_results)

View File

@@ -51,8 +51,10 @@ _protect :: proc "contextless" (data: rawptr, size: uint, flags: Protect_Flags)
}
_platform_memory_init :: proc() {
DEFAULT_PAGE_SIZE = posix.PAGE_SIZE
// NOTE: `posix.PAGESIZE` due to legacy reasons could be wrong so we use `sysconf`.
size := posix.sysconf(._PAGESIZE)
DEFAULT_PAGE_SIZE = uint(max(size, posix.PAGESIZE))
// is power of two
assert(DEFAULT_PAGE_SIZE != 0 && (DEFAULT_PAGE_SIZE & (DEFAULT_PAGE_SIZE-1)) == 0)
}