all repos — mgba @ b2d406a411b31acce5bbf0246af32a80c22ca834

mGBA Game Boy Advance Emulator

src/third-party/lzma/Alloc.h (view raw)

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