programmatic address range annotations; pipe -> ctrl entities; render in memory view

This commit is contained in:
Ryan Fleury
2025-06-08 17:37:55 -07:00
parent bb2900c2b7
commit 4926f6cfc8
15 changed files with 225 additions and 57 deletions
+6 -1
View File
@@ -37,6 +37,7 @@ arena_alloc_(ArenaParams *params)
base = os_reserve(reserve_size);
os_commit(base, commit_size);
}
raddbg_annotate_vaddr_range(base, reserve_size, "arena %s:%i", params->allocation_site_file, params->allocation_site_line);
}
// rjf: panic on arena creation failure
@@ -58,6 +59,8 @@ arena_alloc_(ArenaParams *params)
arena->pos = ARENA_HEADER_SIZE;
arena->cmt = commit_size;
arena->res = reserve_size;
arena->allocation_site_file = params->allocation_site_file;
arena->allocation_site_line = params->allocation_site_line;
#if ARENA_FREE_LIST
arena->free_size = 0;
arena->free_last = 0;
@@ -123,7 +126,9 @@ arena_push(Arena *arena, U64 size, U64 align)
}
new_block = arena_alloc(.reserve_size = res_size,
.commit_size = cmt_size,
.flags = current->flags);
.flags = current->flags,
.allocation_site_file = current->allocation_site_file,
.allocation_site_line = current->allocation_site_line);
}
new_block->base_pos = current->base_pos + current->res;
+5 -1
View File
@@ -26,6 +26,8 @@ struct ArenaParams
U64 reserve_size;
U64 commit_size;
void *optional_backing_buffer;
char *allocation_site_file;
int allocation_site_line;
};
typedef struct Arena Arena;
@@ -40,6 +42,8 @@ struct Arena
U64 pos;
U64 cmt;
U64 res;
char *allocation_site_file;
int allocation_site_line;
#if ARENA_FREE_LIST
U64 free_size;
Arena *free_last;
@@ -66,7 +70,7 @@ global ArenaFlags arena_default_flags = 0;
//- rjf: arena creation/destruction
internal Arena *arena_alloc_(ArenaParams *params);
#define arena_alloc(...) arena_alloc_(&(ArenaParams){.reserve_size = arena_default_reserve_size, .commit_size = arena_default_commit_size, .flags = arena_default_flags, __VA_ARGS__})
#define arena_alloc(...) arena_alloc_(&(ArenaParams){.reserve_size = arena_default_reserve_size, .commit_size = arena_default_commit_size, .flags = arena_default_flags, .allocation_site_file = __FILE__, .allocation_site_line = __LINE__, __VA_ARGS__})
internal void arena_release(Arena *arena);
//- rjf: arena push/pop/pos core functions