update libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / lzma-22.01 / include / Alloc.h
1 /* Alloc.h -- Memory allocation functions\r
2 2021-07-13 : Igor Pavlov : Public domain */\r
3 \r
4 #ifndef __COMMON_ALLOC_H\r
5 #define __COMMON_ALLOC_H\r
6 \r
7 #include "7zTypes.h"\r
8 \r
9 EXTERN_C_BEGIN\r
10 \r
11 void *MyAlloc(size_t size);\r
12 void MyFree(void *address);\r
13 \r
14 #ifdef _WIN32\r
15 \r
16 void SetLargePageSize(void);\r
17 \r
18 void *MidAlloc(size_t size);\r
19 void MidFree(void *address);\r
20 void *BigAlloc(size_t size);\r
21 void BigFree(void *address);\r
22 \r
23 #else\r
24 \r
25 #define MidAlloc(size) MyAlloc(size)\r
26 #define MidFree(address) MyFree(address)\r
27 #define BigAlloc(size) MyAlloc(size)\r
28 #define BigFree(address) MyFree(address)\r
29 \r
30 #endif\r
31 \r
32 extern const ISzAlloc g_Alloc;\r
33 \r
34 #ifdef _WIN32\r
35 extern const ISzAlloc g_BigAlloc;\r
36 extern const ISzAlloc g_MidAlloc;\r
37 #else\r
38 #define g_BigAlloc g_AlignedAlloc\r
39 #define g_MidAlloc g_AlignedAlloc\r
40 #endif\r
41 \r
42 extern const ISzAlloc g_AlignedAlloc;\r
43 \r
44 \r
45 typedef struct\r
46 {\r
47   ISzAlloc vt;\r
48   ISzAllocPtr baseAlloc;\r
49   unsigned numAlignBits; /* ((1 << numAlignBits) >= sizeof(void *)) */\r
50   size_t offset;         /* (offset == (k * sizeof(void *)) && offset < (1 << numAlignBits) */\r
51 } CAlignOffsetAlloc;\r
52 \r
53 void AlignOffsetAlloc_CreateVTable(CAlignOffsetAlloc *p);\r
54 \r
55 \r
56 EXTERN_C_END\r
57 \r
58 #endif\r