mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Alloc.h -- Memory allocation functions
 | |
| 2018-02-19 : Igor Pavlov : Public domain */
 | |
| 
 | |
| #ifndef __COMMON_ALLOC_H
 | |
| #define __COMMON_ALLOC_H
 | |
| 
 | |
| #include "7zTypes.h"
 | |
| 
 | |
| EXTERN_C_BEGIN
 | |
| 
 | |
| void *MyAlloc(size_t size);
 | |
| void MyFree(void *address);
 | |
| 
 | |
| #ifdef _WIN32
 | |
| 
 | |
| void SetLargePageSize();
 | |
| 
 | |
| void *MidAlloc(size_t size);
 | |
| void MidFree(void *address);
 | |
| void *BigAlloc(size_t size);
 | |
| void BigFree(void *address);
 | |
| 
 | |
| #else
 | |
| 
 | |
| #define MidAlloc(size) MyAlloc(size)
 | |
| #define MidFree(address) MyFree(address)
 | |
| #define BigAlloc(size) MyAlloc(size)
 | |
| #define BigFree(address) MyFree(address)
 | |
| 
 | |
| #endif
 | |
| 
 | |
| extern const ISzAlloc g_Alloc;
 | |
| extern const ISzAlloc g_BigAlloc;
 | |
| extern const ISzAlloc g_MidAlloc;
 | |
| extern const ISzAlloc g_AlignedAlloc;
 | |
| 
 | |
| 
 | |
| typedef struct
 | |
| {
 | |
|   ISzAlloc vt;
 | |
|   ISzAllocPtr baseAlloc;
 | |
|   unsigned numAlignBits; /* ((1 << numAlignBits) >= sizeof(void *)) */
 | |
|   size_t offset;         /* (offset == (k * sizeof(void *)) && offset < (1 << numAlignBits) */
 | |
| } CAlignOffsetAlloc;
 | |
| 
 | |
| void AlignOffsetAlloc_CreateVTable(CAlignOffsetAlloc *p);
 | |
| 
 | |
| 
 | |
| EXTERN_C_END
 | |
| 
 | |
| #endif
 | 
