mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-10-11 22:49:56 +00:00
### Description of Changes Updated a number of dependencies and third-party libraries to newer versions / commits. ## **Deps:** * libpng `v1.6.56` -> `v1.6.58` * harfbuzz `14.0.0` -> `14.2.0` * agilitysdk `1.619.1` -> `1.619.2` * rapidyaml `v0.11.1` -> `v0.12.1` * shaderc `2026.1` -> `2026.2` ## **3rdparty:** * vixl `e6076e9` -> `3fe1686` * cubeb `e495bee` -> `6ad18e2` * xbyak `v7.35.2` -> `v7.37` * CPUInfo `7364b49` -> `3681f0c` * LZMA/7zipSDK `25.00` -> `26.01` * fast_float `v8.1.0` -> `v8.2.5` ### Rationale behind Changes Security fixes and improvements are good ### Suggested Testing Steps Test everything (yaml, png, vulkan, cpu information in osd, audio etc) ### Did you use AI to help find, test, or implement this issue or feature? Nah. --------- Signed-off-by: SternXD <[email protected]>
77 lines
2.3 KiB
C
77 lines
2.3 KiB
C
/* Alloc.h -- Memory allocation functions
|
|
: Igor Pavlov : Public domain */
|
|
|
|
#ifndef ZIP7_INC_ALLOC_H
|
|
#define ZIP7_INC_ALLOC_H
|
|
|
|
#include "7zTypes.h"
|
|
|
|
EXTERN_C_BEGIN
|
|
|
|
/*
|
|
MyFree(NULL) : is allowed, as free(NULL)
|
|
MyAlloc(0) : returns NULL : but malloc(0) is allowed to return NULL or non_NULL
|
|
MyRealloc(NULL, 0) : returns NULL : but realloc(NULL, 0) is allowed to return NULL or non_NULL
|
|
MyRealloc() is similar to realloc() for the following cases:
|
|
MyRealloc(non_NULL, 0) : returns NULL and always calls MyFree(ptr)
|
|
MyRealloc(NULL, non_ZERO) : returns NULL, if allocation failed
|
|
MyRealloc(non_NULL, non_ZERO) : returns NULL, if reallocation failed
|
|
*/
|
|
|
|
void *MyAlloc(size_t size);
|
|
void MyFree(void *address);
|
|
void *MyRealloc(void *address, size_t size);
|
|
|
|
void *z7_AlignedAlloc(size_t size);
|
|
void z7_AlignedFree(void *p);
|
|
|
|
extern const ISzAlloc g_Alloc;
|
|
extern const ISzAlloc g_AlignedAlloc;
|
|
|
|
#ifdef _WIN32
|
|
void *MidAlloc(size_t size);
|
|
void MidFree(void *address);
|
|
extern const ISzAlloc g_MidAlloc;
|
|
#else
|
|
#define MidAlloc(size) z7_AlignedAlloc(size)
|
|
#define MidFree(address) z7_AlignedFree(address)
|
|
#define g_MidAlloc g_AlignedAlloc
|
|
#endif
|
|
|
|
#ifdef Z7_LARGE_PAGES
|
|
|
|
#define Z7_LARGE_PAGES_FLAG_USE_HUGEPAGE (1 << 0) // PAGE_ALIGNED / MADV_HUGEPAGE
|
|
#define Z7_LARGE_PAGES_FLAG_NO_PAGECODE (1 << 1) // no PAGE_ALIGNED / no madvise
|
|
#define Z7_LARGE_PAGES_FLAG_NO_MADVISE (1 << 2) // PAGE_ALIGNED / no madvise : for THP=always
|
|
#define Z7_LARGE_PAGES_FLAG_NO_HUGEPAGE (1 << 3) // PAGE_ALIGNED / MADV_NOHUGEPAGE
|
|
#define Z7_LARGE_PAGES_FLAG_FAIL_STOP (1 << 15) // for benchmarks
|
|
#define Z7_LARGE_PAGES_FLAG_DIRECT_PAGE_SIZE (1 << 16)
|
|
#define Z7_LARGE_PAGES_FLAG_DIRECT_THRESHOLD (1 << 17)
|
|
|
|
void z7_LargePage_Set(UInt32 flags, size_t pageSize, size_t threshold);
|
|
|
|
void *BigAlloc(size_t size);
|
|
void BigFree(void *address);
|
|
extern const ISzAlloc g_BigAlloc;
|
|
#else
|
|
#define BigAlloc(size) MidAlloc(size)
|
|
#define BigFree(address) MidFree(address)
|
|
#define g_BigAlloc g_MidAlloc
|
|
#endif
|
|
|
|
|
|
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
|