git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / lzma-22.01 / include / Alloc.h
CommitLineData
9e052883 1/* Alloc.h -- Memory allocation functions\r
22021-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
9EXTERN_C_BEGIN\r
10\r
11void *MyAlloc(size_t size);\r
12void MyFree(void *address);\r
13\r
14#ifdef _WIN32\r
15\r
16void SetLargePageSize(void);\r
17\r
18void *MidAlloc(size_t size);\r
19void MidFree(void *address);\r
20void *BigAlloc(size_t size);\r
21void 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
32extern const ISzAlloc g_Alloc;\r
33\r
34#ifdef _WIN32\r
35extern const ISzAlloc g_BigAlloc;\r
36extern 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
42extern const ISzAlloc g_AlignedAlloc;\r
43\r
44\r
45typedef 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
53void AlignOffsetAlloc_CreateVTable(CAlignOffsetAlloc *p);\r
54\r
55\r
56EXTERN_C_END\r
57\r
58#endif\r