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
 |