arena_set_readwrite

This commit is contained in:
jacob 2024-08-12 15:04:27 -05:00
parent d17727c133
commit 192d5db2a5
4 changed files with 17 additions and 1 deletions

View File

@ -124,3 +124,11 @@ void arena_set_readonly(struct arena *arena)
arena->readonly = true; arena->readonly = true;
#endif #endif
} }
void arena_set_readwrite(struct arena *arena)
{
#if RTC
arena->readonly = false;
#endif
sys_memory_set_committed_readwrite(arena->base, arena->committed);
}

View File

@ -33,6 +33,7 @@ void *_arena_push_bytes(struct arena *arena, u64 size, u64 align);
void arena_copy_replace(struct arena *dest, struct arena *src); void arena_copy_replace(struct arena *dest, struct arena *src);
void arena_decommit_unused_blocks(struct arena *arena); void arena_decommit_unused_blocks(struct arena *arena);
void arena_set_readonly(struct arena *arena); void arena_set_readonly(struct arena *arena);
void arena_set_readwrite(struct arena *arena);
INLINE void *_arena_push_bytes_zero(struct arena *arena, u64 size, u64 align) INLINE void *_arena_push_bytes_zero(struct arena *arena, u64 size, u64 align)
{ {

View File

@ -168,6 +168,7 @@ void *sys_memory_commit(void *address, u64 size);
void sys_memory_decommit(void *address, u64 size); void sys_memory_decommit(void *address, u64 size);
void sys_memory_set_committed_readonly(void *address, u64 size); void sys_memory_set_committed_readonly(void *address, u64 size);
void sys_memory_set_committed_readwrite(void *address, u64 size);
/* ========================== * /* ========================== *
* Time * Time

View File

@ -208,10 +208,16 @@ void sys_memory_decommit(void *address, u64 size)
void sys_memory_set_committed_readonly(void *address, u64 size) void sys_memory_set_committed_readonly(void *address, u64 size)
{ {
DWORD old = PAGE_READWRITE; DWORD old;
VirtualProtect(address, size, PAGE_READONLY, &old); VirtualProtect(address, size, PAGE_READONLY, &old);
} }
void sys_memory_set_committed_readwrite(void *address, u64 size)
{
DWORD old;
VirtualProtect(address, size, PAGE_READWRITE, &old);
}
/* ========================== * /* ========================== *
* Time * Time
* ========================== */ * ========================== */