1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync/* Alloc.h -- Memory allocation functions
2f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka2015-02-21 : Igor Pavlov : Public domain */
3baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifndef __COMMON_ALLOC_H
5baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define __COMMON_ALLOC_H
6baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
7f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka#include "7zTypes.h"
8baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
9f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo OsakaEXTERN_C_BEGIN
10baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
11baa3858d3f5d128a5c8466b700098109edcad5f2repo syncvoid *MyAlloc(size_t size);
12baa3858d3f5d128a5c8466b700098109edcad5f2repo syncvoid MyFree(void *address);
13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifdef _WIN32
15baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
16baa3858d3f5d128a5c8466b700098109edcad5f2repo syncvoid SetLargePageSize();
17baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
18baa3858d3f5d128a5c8466b700098109edcad5f2repo syncvoid *MidAlloc(size_t size);
19baa3858d3f5d128a5c8466b700098109edcad5f2repo syncvoid MidFree(void *address);
20baa3858d3f5d128a5c8466b700098109edcad5f2repo syncvoid *BigAlloc(size_t size);
21baa3858d3f5d128a5c8466b700098109edcad5f2repo syncvoid BigFree(void *address);
22baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
23baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#else
24baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
25baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define MidAlloc(size) MyAlloc(size)
26baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define MidFree(address) MyFree(address)
27baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define BigAlloc(size) MyAlloc(size)
28baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define BigFree(address) MyFree(address)
29baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
30baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif
31baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
32f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osakaextern ISzAlloc g_Alloc;
33f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osakaextern ISzAlloc g_BigAlloc;
34f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo Osaka
35f955a79a9fffb09826cf7547f70d08c3798a2f50Tetsuo OsakaEXTERN_C_END
36baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
37baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif
38