Pass MemInitType to platform functions
This commit is contained in:
parent
3a25571105
commit
1de3608b1f
@ -39,7 +39,7 @@ void *wapp_mem_util_align_forward(void *ptr, u64 alignment) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void *wapp_mem_util_alloc(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type) {
|
void *wapp_mem_util_alloc(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type) {
|
||||||
void *output = mem_util_allocate(addr, size, access, flags);
|
void *output = mem_util_allocate(addr, size, access, flags, type);
|
||||||
|
|
||||||
if (type == WAPP_MEM_INIT_INITIALISED) {
|
if (type == WAPP_MEM_INIT_INITIALISED) {
|
||||||
memset(output, 0, size);
|
memset(output, 0, size);
|
||||||
|
@ -22,7 +22,7 @@ void *wapp_mem_util_align_forward(void *ptr, u64 alignment);
|
|||||||
void *wapp_mem_util_alloc(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type);
|
void *wapp_mem_util_alloc(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type);
|
||||||
void wapp_mem_util_free(void *ptr, u64 size);
|
void wapp_mem_util_free(void *ptr, u64 size);
|
||||||
|
|
||||||
external void *mem_util_allocate(void *addr, u64 size, MemAccess access, MemAllocFlags flags);
|
external void *mem_util_allocate(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type);
|
||||||
external void mem_util_free(void *ptr, u64 size);
|
external void mem_util_free(void *ptr, u64 size);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -16,7 +16,7 @@ internal const i32 access_types[] = {
|
|||||||
[WAPP_MEM_ACCESS_READ_WRITE_EXEC] = PROT_READ | PROT_WRITE | PROT_EXEC,
|
[WAPP_MEM_ACCESS_READ_WRITE_EXEC] = PROT_READ | PROT_WRITE | PROT_EXEC,
|
||||||
};
|
};
|
||||||
|
|
||||||
void *mem_util_allocate(void *addr, u64 size, MemAccess access, MemAllocFlags flags) {
|
void *mem_util_allocate(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type) {
|
||||||
i32 alloc_flags = flags | MAP_ANON | MAP_PRIVATE;
|
i32 alloc_flags = flags | MAP_ANON | MAP_PRIVATE;
|
||||||
|
|
||||||
#if defined(WAPP_PLATFORM_LINUX) || defined(WAPP_PLATFORM_GNU) || defined(WAPP_PLATFORM_NET_BSD)
|
#if defined(WAPP_PLATFORM_LINUX) || defined(WAPP_PLATFORM_GNU) || defined(WAPP_PLATFORM_NET_BSD)
|
||||||
|
@ -19,7 +19,7 @@ internal const i32 access_types[] = {
|
|||||||
[WAPP_MEM_ACCESS_READ_WRITE_EXEC] = PAGE_EXECUTE_READWRITE,
|
[WAPP_MEM_ACCESS_READ_WRITE_EXEC] = PAGE_EXECUTE_READWRITE,
|
||||||
};
|
};
|
||||||
|
|
||||||
void *mem_util_allocate(void *addr, u64 size, MemAccess access, MemAllocFlags flags) {
|
void *mem_util_allocate(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type) {
|
||||||
// Ensure memory is committed if it's meant to be initialised
|
// Ensure memory is committed if it's meant to be initialised
|
||||||
if (type == WAPP_MEM_INIT_INITIALISED) {
|
if (type == WAPP_MEM_INIT_INITIALISED) {
|
||||||
flags |= WAPP_MEM_ALLOC_COMMIT;
|
flags |= WAPP_MEM_ALLOC_COMMIT;
|
||||||
|
Loading…
Reference in New Issue
Block a user