15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Alloc.h -- Memory allocation functions
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)2009-02-07 : Igor Pavlov : Public domain */
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef __COMMON_ALLOC_H
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __COMMON_ALLOC_H
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stddef.h>
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void *MyAlloc(size_t size);
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MyFree(void *address);
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _WIN32
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetLargePageSize();
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void *MidAlloc(size_t size);
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void MidFree(void *address);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void *BigAlloc(size_t size);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void BigFree(void *address);
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MidAlloc(size) MyAlloc(size)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MidFree(address) MyFree(address)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BigAlloc(size) MyAlloc(size)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BigFree(address) MyFree(address)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
39