Ylva And Malin
ym_memory.h
Go to the documentation of this file.
1 #pragma once
2 #include <stdint.h>
3 #include <stdatomic.h>
4 
5 #include <ym_core.h>
6 #include <ym_memory_regions.h>
7 
8 typedef
9 struct
10 {
11  void* mem;
13  const uint16_t size;
14 
16  uint16_t used;
18 
19 typedef
20 enum
21 {
24  ym_mem_usage_scoped, // Basically, will it be used only within this function?
25 } ym_mem_usage;
26 
27 ym_errc
28 ym_mem_init();
29 
30 ym_errc
32 
33 void*
34 ym_mem_reg_alloc(ym_mem_reg_id id, int size, char* file, int line);
35 
36 void
37 ym_mem_reg_dealloc(ym_mem_reg_id id, int size, void* ptr, char* file, int line);
38 
39 // Add usage enum, to discern between dynamic vs static usage etc.
40 #define YM_MALLOC(reg_id, size, usage) \
41 ym_mem_reg_alloc(reg_id, size, __FILE__, __LINE__);
42 
43 #define YM_FREE(reg_id, size, ptr) \
44 ym_mem_reg_dealloc(reg_id, size, ptr, __FILE__, __LINE__);
45 
Definition: ym_memory.h:22
Definition: ym_memory.h:24
ym_errc ym_mem_init()
Definition: ym_memory.c:38
void * ym_mem_reg_alloc(ym_mem_reg_id id, int size, char *file, int line)
uint16_t used
Definition: ym_memory.h:16
Definition: ym_memory.h:8
int GLenum UINT size
Definition: wglext.h:321
Definition: ym_memory.h:23
ym_errc
Used to indicate erroneous behavior within a a function.
Definition: ym_error.h:36
void ym_mem_reg_dealloc(ym_mem_reg_id id, int size, void *ptr, char *file, int line)
ym_mem_reg_id
Definition: ym_memory_regions.h:30
ym_errc ym_mem_shutdown()
Definition: ym_memory.c:103
ym_mem_usage
Definition: ym_memory.h:19
void * mem
Definition: ym_memory.h:11
ym_mem_reg_id id
Definition: ym_memory.h:12
const uint16_t size
Definition: ym_memory.h:13