Reformat mem
This commit is contained in:
@@ -16,15 +16,15 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
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, type);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wapp_mem_util_free(void *ptr, u64 size) {
|
void wapp_mem_util_free(void *ptr, u64 size) {
|
||||||
mem_util_free(ptr, size);
|
mem_util_free(ptr, size);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,17 +10,17 @@ BEGIN_C_LINKAGE
|
|||||||
#endif // !WAPP_PLATFORM_CPP
|
#endif // !WAPP_PLATFORM_CPP
|
||||||
|
|
||||||
typedef enum mem_access {
|
typedef enum mem_access {
|
||||||
WAPP_MEM_ACCESS_NONE,
|
WAPP_MEM_ACCESS_NONE,
|
||||||
WAPP_MEM_ACCESS_READ_ONLY,
|
WAPP_MEM_ACCESS_READ_ONLY,
|
||||||
WAPP_MEM_ACCESS_EXEC_ONLY,
|
WAPP_MEM_ACCESS_EXEC_ONLY,
|
||||||
WAPP_MEM_ACCESS_READ_WRITE,
|
WAPP_MEM_ACCESS_READ_WRITE,
|
||||||
WAPP_MEM_ACCESS_READ_EXEC,
|
WAPP_MEM_ACCESS_READ_EXEC,
|
||||||
WAPP_MEM_ACCESS_READ_WRITE_EXEC,
|
WAPP_MEM_ACCESS_READ_WRITE_EXEC,
|
||||||
} MemAccess;
|
} MemAccess;
|
||||||
|
|
||||||
typedef enum mem_init_type {
|
typedef enum mem_init_type {
|
||||||
WAPP_MEM_INIT_UNINITIALISED,
|
WAPP_MEM_INIT_UNINITIALISED,
|
||||||
WAPP_MEM_INIT_INITIALISED,
|
WAPP_MEM_INIT_INITIALISED,
|
||||||
} MemInitType;
|
} MemInitType;
|
||||||
|
|
||||||
#ifdef WAPP_PLATFORM_CPP
|
#ifdef WAPP_PLATFORM_CPP
|
||||||
|
|||||||
@@ -10,27 +10,27 @@
|
|||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
wapp_intern const i32 access_types[] = {
|
wapp_intern const i32 access_types[] = {
|
||||||
[WAPP_MEM_ACCESS_NONE] = PROT_NONE,
|
[WAPP_MEM_ACCESS_NONE] = PROT_NONE,
|
||||||
[WAPP_MEM_ACCESS_READ_ONLY] = PROT_READ,
|
[WAPP_MEM_ACCESS_READ_ONLY] = PROT_READ,
|
||||||
[WAPP_MEM_ACCESS_EXEC_ONLY] = PROT_EXEC,
|
[WAPP_MEM_ACCESS_EXEC_ONLY] = PROT_EXEC,
|
||||||
[WAPP_MEM_ACCESS_READ_WRITE] = PROT_READ | PROT_WRITE,
|
[WAPP_MEM_ACCESS_READ_WRITE] = PROT_READ | PROT_WRITE,
|
||||||
[WAPP_MEM_ACCESS_READ_EXEC] = PROT_READ | PROT_EXEC,
|
[WAPP_MEM_ACCESS_READ_EXEC] = PROT_READ | PROT_EXEC,
|
||||||
[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, MemInitType type) {
|
void *mem_util_allocate(void *addr, u64 size, MemAccess access, MemAllocFlags flags, MemInitType type) {
|
||||||
(void)type;
|
(void)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)
|
||||||
alloc_flags |= MAP_NORESERVE;
|
alloc_flags |= MAP_NORESERVE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return mmap(addr, size, access_types[access], alloc_flags, -1, 0);
|
return mmap(addr, size, access_types[access], alloc_flags, -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_util_free(void *ptr, u64 size) {
|
void mem_util_free(void *ptr, u64 size) {
|
||||||
munmap(ptr, size);
|
munmap(ptr, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !WAPP_PLATFORM_POSIX
|
#endif // !WAPP_PLATFORM_POSIX
|
||||||
|
|||||||
@@ -15,14 +15,14 @@ BEGIN_C_LINKAGE
|
|||||||
|
|
||||||
typedef enum mem_alloc_flags {
|
typedef enum mem_alloc_flags {
|
||||||
#if defined(WAPP_PLATFORM_LINUX) || defined(WAPP_PLATFORM_GNU)
|
#if defined(WAPP_PLATFORM_LINUX) || defined(WAPP_PLATFORM_GNU)
|
||||||
WAPP_MEM_ALLOC_RESERVE = 0,
|
WAPP_MEM_ALLOC_RESERVE = 0,
|
||||||
WAPP_MEM_ALLOC_COMMIT = MAP_POPULATE,
|
WAPP_MEM_ALLOC_COMMIT = MAP_POPULATE,
|
||||||
#elif defined(WAPP_PLATFORM_FREE_BSD)
|
#elif defined(WAPP_PLATFORM_FREE_BSD)
|
||||||
WAPP_MEM_ALLOC_RESERVE = 0,
|
WAPP_MEM_ALLOC_RESERVE = 0,
|
||||||
WAPP_MEM_ALLOC_COMMIT = MAP_PREFAULT_READ,
|
WAPP_MEM_ALLOC_COMMIT = MAP_PREFAULT_READ,
|
||||||
#elif defined(WAPP_PLATFORM_BSD) || defined(WAPP_PLATFORM_UNIX) || defined(WAPP_PLATFORM_APPLE)
|
#elif defined(WAPP_PLATFORM_BSD) || defined(WAPP_PLATFORM_UNIX) || defined(WAPP_PLATFORM_APPLE)
|
||||||
WAPP_MEM_ALLOC_RESERVE = 0,
|
WAPP_MEM_ALLOC_RESERVE = 0,
|
||||||
WAPP_MEM_ALLOC_COMMIT = 0,
|
WAPP_MEM_ALLOC_COMMIT = 0,
|
||||||
#endif
|
#endif
|
||||||
} MemAllocFlags;
|
} MemAllocFlags;
|
||||||
|
|
||||||
|
|||||||
@@ -13,25 +13,25 @@
|
|||||||
#include <memoryapi.h>
|
#include <memoryapi.h>
|
||||||
|
|
||||||
wapp_intern const i32 access_types[] = {
|
wapp_intern const i32 access_types[] = {
|
||||||
[WAPP_MEM_ACCESS_NONE] = PAGE_NOACCESS,
|
[WAPP_MEM_ACCESS_NONE] = PAGE_NOACCESS,
|
||||||
[WAPP_MEM_ACCESS_READ_ONLY] = PAGE_READONLY,
|
[WAPP_MEM_ACCESS_READ_ONLY] = PAGE_READONLY,
|
||||||
[WAPP_MEM_ACCESS_EXEC_ONLY] = PAGE_EXECUTE,
|
[WAPP_MEM_ACCESS_EXEC_ONLY] = PAGE_EXECUTE,
|
||||||
[WAPP_MEM_ACCESS_READ_WRITE] = PAGE_READWRITE,
|
[WAPP_MEM_ACCESS_READ_WRITE] = PAGE_READWRITE,
|
||||||
[WAPP_MEM_ACCESS_READ_EXEC] = PAGE_EXECUTE_READ,
|
[WAPP_MEM_ACCESS_READ_EXEC] = PAGE_EXECUTE_READ,
|
||||||
[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, MemInitType type) {
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
return VirtualAlloc(addr, (SIZE_T)size, flags, access_types[access]);
|
return VirtualAlloc(addr, (SIZE_T)size, flags, access_types[access]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mem_util_free(void *ptr, u64 size) {
|
void mem_util_free(void *ptr, u64 size) {
|
||||||
VirtualFree(ptr, size, MEM_RELEASE);
|
VirtualFree(ptr, size, MEM_RELEASE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !WAPP_PLATFORM_WINDOWS
|
#endif // !WAPP_PLATFORM_WINDOWS
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ BEGIN_C_LINKAGE
|
|||||||
#include <memoryapi.h>
|
#include <memoryapi.h>
|
||||||
|
|
||||||
typedef enum mem_alloc_flags {
|
typedef enum mem_alloc_flags {
|
||||||
WAPP_MEM_ALLOC_RESERVE = MEM_RESERVE,
|
WAPP_MEM_ALLOC_RESERVE = MEM_RESERVE,
|
||||||
WAPP_MEM_ALLOC_COMMIT = MEM_COMMIT,
|
WAPP_MEM_ALLOC_COMMIT = MEM_COMMIT,
|
||||||
} MemAllocFlags;
|
} MemAllocFlags;
|
||||||
|
|
||||||
#endif // !WAPP_PLATFORM_WINDOWS
|
#endif // !WAPP_PLATFORM_WINDOWS
|
||||||
|
|||||||
Reference in New Issue
Block a user