61 template <
typename A0>
108template<u32 ChunkSize,
typename T>
118 return (
u8*)
this + 0xc <= (
u8*)ptr && (
u8*)ptr < (
u8*)
this + (ChunkSize + 0xc);
188 typename T::Lock lock(&
mMutex);
190 if (ChunkSize <
size) {
201 typename T::Lock lock(&
mMutex);
204 while (chunk != NULL) {
243 static void*
operator new(
size_t n) {
245 return memPool->
alloc(
sizeof(T));
243 static void*
operator new(
size_t n) {
…}
247 static void*
operator new(
size_t n,
void* ptr) {
247 static void*
operator new(
size_t n,
void* ptr) {
…}
250 static void operator delete(
void* ptr,
size_t n) {
252 memPool_->
free(ptr,
sizeof(T));
250 static void operator delete(
void* ptr,
size_t n) {
…}
296 static void*
operator new(
size_t n) {
298 return memPool_->
alloc(
sizeof(T));
296 static void*
operator new(
size_t n) {
…}
300 static void*
operator new(
size_t n,
void* ptr) {
300 static void*
operator new(
size_t n,
void* ptr) {
…}
303 static void operator delete(
void* ptr,
size_t n) {
305 memPool_->
free(ptr,
sizeof(T));
303 static void operator delete(
void* ptr,
size_t n) {
…}
JKRSolidHeap * JASDram
Definition JASHeapCtrl.cpp:218
asm BOOL OSRestoreInterrupts(register BOOL level)
Definition OSInterrupt.c:106
asm BOOL OSDisableInterrupts(void)
Definition OSInterrupt.c:85
void OSInitMutex(OSMutex *mutex)
Definition OSMutex.c:52
void OSUnlockMutex(OSMutex *mutex)
Definition OSMutex.c:86
void OSLockMutex(OSMutex *mutex)
Definition OSMutex.c:58
unsigned int size
Definition __os.h:106
Definition JASHeapCtrl.h:17
JASDisposer * mDisposer
Definition JASHeapCtrl.h:36
void initRootHeap(void *, u32)
Definition JASHeapCtrl.cpp:23
bool isAllocated()
Definition JASHeapCtrl.h:31
JASHeap * field_0x40
Definition JASHeapCtrl.h:39
JSUTree< JASHeap > mTree
Definition JASHeapCtrl.h:34
OSMutex mMutex
Definition JASHeapCtrl.h:35
JASHeap * getTailHeap()
Definition JASHeapCtrl.cpp:170
u32 mSize
Definition JASHeapCtrl.h:38
bool allocTail(JASHeap *, u32)
Definition JASHeapCtrl.cpp:90
void insertChild(JASHeap *, JASHeap *, void *, u32, bool)
Definition JASHeapCtrl.cpp:147
JASHeap(JASDisposer *param_0=NULL)
Definition JASHeapCtrl.cpp:14
u32 getSize()
Definition JASHeapCtrl.h:32
bool alloc(JASHeap *, u32)
Definition JASHeapCtrl.cpp:32
bool free()
Definition JASHeapCtrl.cpp:111
u32 getTailOffset()
Definition JASHeapCtrl.cpp:185
u8 * mBase
Definition JASHeapCtrl.h:37
void * getBase()
Definition JASHeapCtrl.h:30
~JASHeap()
Definition JASHeapCtrl.h:28
u32 getCurOffset()
Definition JASHeapCtrl.cpp:193
Definition JASHeapCtrl.h:109
void * alloc(u32 size)
Definition JASHeapCtrl.h:187
JASMemChunkPool()
Definition JASHeapCtrl.h:158
MemoryChunk * field_0x18
Definition JASHeapCtrl.h:220
bool createNewChunk()
Definition JASHeapCtrl.h:164
void free(void *ptr)
Definition JASHeapCtrl.h:200
OSMutex mMutex
Definition JASHeapCtrl.h:219
Definition JASHeapCtrl.h:271
void newMemPool(int param_0)
Definition JASHeapCtrl.h:273
void * alloc(size_t count)
Definition JASHeapCtrl.h:278
void free(void *ptr, u32 param_1)
Definition JASHeapCtrl.h:283
Definition JASHeapCtrl.h:95
void newMemPool(int param_0)
Definition JASHeapCtrl.h:97
void free(void *ptr, u32 n)
Definition JASHeapCtrl.h:99
void * alloc(u32 n)
Definition JASHeapCtrl.h:98
Definition JASHeapCtrl.h:294
static void newMemPool(int n)
Definition JASHeapCtrl.h:308
static JASMemPool_MultiThreaded< T > * getMemPool()
Definition JASHeapCtrl.h:313
Definition JASHeapCtrl.h:241
static void newMemPool(int param_0)
Definition JASHeapCtrl.h:254
static JASMemPool< T > * getMemPool_()
Definition JASHeapCtrl.h:260
static JKRHeap * getSystemHeap()
Definition JKRHeap.h:153
Definition JKRSolidHeap.h:10
Definition JASAudioThread.cpp:41
Definition JASHeapCtrl.h:102
void setupAramHeap(u32, u32)
Definition JASHeapCtrl.cpp:289
JASMemChunkPool< 1024, JASThreadingModel::ObjectLevelLockable > * sCommandHeap
Definition JASHeapCtrl.cpp:262
u32 sAramBase
Definition JASHeapCtrl.cpp:256
JKRHeap * getSystemHeap()
Definition JASHeapCtrl.cpp:276
JASHeap audioAramHeap
Definition JASHeapCtrl.cpp:286
JKRHeap * sSystemHeap
Definition JASHeapCtrl.cpp:259
JASMemChunkPool< 1024, JASThreadingModel::ObjectLevelLockable > * getCommandHeap()
Definition JASHeapCtrl.cpp:281
void setupRootHeap(JKRSolidHeap *, u32)
Definition JASHeapCtrl.cpp:266
JASHeap * getAramHeap()
Definition JASHeapCtrl.cpp:295
Definition JASHeapCtrl.h:60
Definition JASWaveArcLoader.h:15
Definition JASHeapCtrl.h:46
~JASGenericMemPool()
Definition JASHeapCtrl.cpp:208
u32 usedMemCount
Definition JASHeapCtrl.h:56
u32 freeMemCount
Definition JASHeapCtrl.h:54
u32 totalMemCount
Definition JASHeapCtrl.h:55
void * field_0x0
Definition JASHeapCtrl.h:53
void newMemPool(u32, int)
Definition JASHeapCtrl.cpp:222
void free(void *, u32)
Definition JASHeapCtrl.cpp:247
JASGenericMemPool()
Definition JASHeapCtrl.cpp:200
void * alloc(u32)
Definition JASHeapCtrl.cpp:233
Definition JASHeapCtrl.h:110
u32 getFreeSize()
Definition JASHeapCtrl.h:144
void revive()
Definition JASHeapCtrl.h:148
u8 mBuffer[ChunkSize]
Definition JASHeapCtrl.h:155
u32 mUsedSize
Definition JASHeapCtrl.h:153
MemoryChunk(MemoryChunk *nextChunk)
Definition JASHeapCtrl.h:111
MemoryChunk * mNextChunk
Definition JASHeapCtrl.h:152
void setNextChunk(MemoryChunk *chunk)
Definition JASHeapCtrl.h:140
u32 mChunks
Definition JASHeapCtrl.h:154
bool isEmpty()
Definition JASHeapCtrl.h:136
void free()
Definition JASHeapCtrl.h:132
void * alloc(u32 size)
Definition JASHeapCtrl.h:125
MemoryChunk * getNextChunk()
Definition JASHeapCtrl.h:121
bool checkArea(void *ptr)
Definition JASHeapCtrl.h:117
Definition JASHeapCtrl.h:63
~Lock()
Definition JASHeapCtrl.h:65
BOOL field_0x0
Definition JASHeapCtrl.h:67
Lock(const A0 ¶m_0)
Definition JASHeapCtrl.h:64
Definition JASHeapCtrl.h:62
Definition JASHeapCtrl.h:75
~Lock()
Definition JASHeapCtrl.h:81
Lock(OSMutex *mutex)
Definition JASHeapCtrl.h:76
OSMutex * mMutex
Definition JASHeapCtrl.h:85
Definition JASHeapCtrl.h:72
int BOOL
Definition types.h:30
unsigned long u32
Definition types.h:9
unsigned char u8
Definition types.h:5