70 template <
typename A0>
80 template <
typename A0>
100 template <
typename A0>
121 JUT_ASSERT(182,
n ==
sizeof(T));
127 JUT_ASSERT(187,
n ==
sizeof(T));
149template<u32 ChunkSize,
template<
typename>
class T>
150class JASMemChunkPool :
public T<JASMemChunkPool<ChunkSize, T> >::ObjectLevelLockable {
159 return (
u8*)
this + 0xc <= (
u8*)ptr && (
u8*)ptr < (
u8*)
this + (ChunkSize + 0xc);
202 JUT_ASSERT(320, ret);
216 JUT_WARN(428,
"%s",
"Not enough JASSystemHeap");
226 typename T<JASMemChunkPool<ChunkSize, T> >
::Lock lock(*
this);
228 if (freeSize <
size) {
229 if (ChunkSize <
size) {
240 typename T<JASMemChunkPool<ChunkSize, T> >
::Lock lock(*
this);
243 while (chunk != NULL) {
258 JUT_PANIC(362,
"Cannnot free for JASMemChunkPool");
286 static void*
operator new(
size_t n) {
292 static void*
operator new(
size_t n,
void* ptr) {
295 static void operator delete(
void* ptr,
size_t n) {
365 static void*
operator new(
size_t n) {
371 static void*
operator new(
size_t n,
void* ptr) {
374 static void operator delete(
void* ptr,
size_t n) {
JKRSolidHeap * JASDram
Definition JASHeapCtrl.cpp:244
Definition JASHeapCtrl.h:18
bool isAllocated() const
Definition JASHeapCtrl.h:33
JASDisposer * mDisposer
Definition JASHeapCtrl.h:38
void initRootHeap(void *, u32)
Definition JASHeapCtrl.cpp:19
JASHeap * field_0x40
Definition JASHeapCtrl.h:41
JSUTree< JASHeap > mTree
Definition JASHeapCtrl.h:36
OSMutex mMutex
Definition JASHeapCtrl.h:37
JASHeap * getTailHeap()
Definition JASHeapCtrl.cpp:190
u32 getFreeSize() const
Definition JASHeapCtrl.cpp:148
u32 getTotalFreeSize() const
Definition JASHeapCtrl.cpp:135
u32 mSize
Definition JASHeapCtrl.h:40
bool allocTail(JASHeap *, u32)
Definition JASHeapCtrl.cpp:81
void insertChild(JASHeap *, JASHeap *, void *, u32, bool)
Definition JASHeapCtrl.cpp:168
JASHeap(JASDisposer *param_0=NULL)
Definition JASHeapCtrl.cpp:11
bool alloc(JASHeap *, u32)
Definition JASHeapCtrl.cpp:27
bool free()
Definition JASHeapCtrl.cpp:102
u32 getTailOffset()
Definition JASHeapCtrl.cpp:205
u8 * mBase
Definition JASHeapCtrl.h:39
void * getBase()
Definition JASHeapCtrl.h:32
u32 getSize() const
Definition JASHeapCtrl.h:34
u32 getCurOffset()
Definition JASHeapCtrl.cpp:217
Definition JASHeapCtrl.h:150
void * alloc(u32 size)
Definition JASHeapCtrl.h:225
JASMemChunkPool()
Definition JASHeapCtrl.h:199
MemoryChunk * field_0x18
Definition JASHeapCtrl.h:261
bool createNewChunk()
Definition JASHeapCtrl.h:205
void free(void *ptr)
Definition JASHeapCtrl.h:239
Definition JASHeapCtrl.h:340
void newMemPool(int param_0)
Definition JASHeapCtrl.h:342
void * alloc(size_t count)
Definition JASHeapCtrl.h:347
void free(void *ptr, u32 param_1)
Definition JASHeapCtrl.h:352
Definition JASHeapCtrl.h:113
u32 getTotalMemCount() const
Definition JASHeapCtrl.h:137
void newMemPool(int param_0)
Definition JASHeapCtrl.h:115
void free(void *ptr, u32 n)
Definition JASHeapCtrl.h:126
void * alloc(u32 n)
Definition JASHeapCtrl.h:120
u32 getFreeMemCount() const
Definition JASHeapCtrl.h:132
Definition JASHeapCtrl.h:363
static void newMemPool(int n)
Definition JASHeapCtrl.h:381
static JASMemPool_MultiThreaded< T > & getMemPool()
Definition JASHeapCtrl.h:392
static JASMemPool_MultiThreaded< T > memPool_
Definition JASHeapCtrl.h:390
Definition JASHeapCtrl.h:284
static void newMemPool(int param_0)
Definition JASHeapCtrl.h:301
static u32 getTotalMemCount()
Definition JASHeapCtrl.h:313
static u32 getFreeMemCount()
Definition JASHeapCtrl.h:307
static JASMemPool< T > memPool_
Definition JASHeapCtrl.h:322
static JASMemPool< T > & getMemPool_()
Definition JASHeapCtrl.h:324
static JKRHeap * getSystemHeap()
Definition JKRHeap.h:165
Definition JKRSolidHeap.h:10
Definition JASAudioThread.cpp:44
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
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
unsigned char u8
Definition types.h:8
Definition JASHeapCtrl.h:143
void setupAramHeap(u32, u32)
Definition JASHeapCtrl.cpp:312
JASMemChunkPool< 1024, JASThreadingModel::ObjectLevelLockable > * sCommandHeap
Definition JASHeapCtrl.cpp:291
u32 getAramFreeSize()
Definition JASHeapCtrl.cpp:325
u32 sAramBase
Definition JASHeapCtrl.cpp:287
JKRHeap * getSystemHeap()
Definition JASHeapCtrl.cpp:302
JASHeap audioAramHeap
Definition JASHeapCtrl.cpp:310
JKRHeap * sSystemHeap
Definition JASHeapCtrl.cpp:289
JASMemChunkPool< 1024, JASThreadingModel::ObjectLevelLockable > * getCommandHeap()
Definition JASHeapCtrl.cpp:306
void setupRootHeap(JKRSolidHeap *, u32)
Definition JASHeapCtrl.cpp:293
JASHeap * getAramHeap()
Definition JASHeapCtrl.cpp:321
u32 getAramSize()
Definition JASHeapCtrl.cpp:329
Definition JASHeapCtrl.h:69
Definition JASWaveArcLoader.h:14
Definition JASHeapCtrl.h:48
~JASGenericMemPool()
Definition JASHeapCtrl.cpp:235
u32 usedMemCount
Definition JASHeapCtrl.h:66
u32 getFreeMemCount() const
Definition JASHeapCtrl.h:55
u32 freeMemCount
Definition JASHeapCtrl.h:64
u32 totalMemCount
Definition JASHeapCtrl.h:65
void * field_0x0
Definition JASHeapCtrl.h:63
void newMemPool(u32, int)
Definition JASHeapCtrl.cpp:251
u32 getTotalMemCount() const
Definition JASHeapCtrl.h:59
void free(void *, u32)
Definition JASHeapCtrl.cpp:277
JASGenericMemPool()
Definition JASHeapCtrl.cpp:228
void * alloc(u32)
Definition JASHeapCtrl.cpp:264
Definition JASHeapCtrl.h:151
void free(void *mem)
Definition JASHeapCtrl.h:173
bool checkArea(const void *ptr) const
Definition JASHeapCtrl.h:158
void revive()
Definition JASHeapCtrl.h:189
u8 mBuffer[ChunkSize]
Definition JASHeapCtrl.h:196
u32 mUsedSize
Definition JASHeapCtrl.h:194
MemoryChunk(MemoryChunk *nextChunk)
Definition JASHeapCtrl.h:152
MemoryChunk * mNextChunk
Definition JASHeapCtrl.h:193
void setNextChunk(MemoryChunk *chunk)
Definition JASHeapCtrl.h:181
u32 getFreeSize() const
Definition JASHeapCtrl.h:185
u32 mChunks
Definition JASHeapCtrl.h:195
bool isEmpty() const
Definition JASHeapCtrl.h:177
void * alloc(u32 size)
Definition JASHeapCtrl.h:166
MemoryChunk * getNextChunk()
Definition JASHeapCtrl.h:162
Definition JASHeapCtrl.h:72
~Lock()
Definition JASHeapCtrl.h:74
BOOL field_0x0
Definition JASHeapCtrl.h:76
Lock(const A0 ¶m_0)
Definition JASHeapCtrl.h:73
Definition JASHeapCtrl.h:71
Definition JASHeapCtrl.h:86
A0 * mMutex
Definition JASHeapCtrl.h:96
Lock(A0 const &mutex)
Definition JASHeapCtrl.h:87
~Lock()
Definition JASHeapCtrl.h:92
Definition JASHeapCtrl.h:81
ObjectLevelLockable()
Definition JASHeapCtrl.h:82
Definition JASHeapCtrl.h:102
Lock(const A0 ¶m_0)
Definition JASHeapCtrl.h:103
Definition JASHeapCtrl.h:101