68 template <
typename A0>
78 template <
typename A0>
98 template <
typename A0>
119 JUT_ASSERT(182,
n ==
sizeof(T));
125 JUT_ASSERT(187,
n ==
sizeof(T));
147template<u32 ChunkSize,
template<
typename>
class T>
148class JASMemChunkPool :
public T<JASMemChunkPool<ChunkSize, T> >::ObjectLevelLockable {
157 return (
u8*)
this + 0xc <= (
u8*)ptr && (
u8*)ptr < (
u8*)
this + (ChunkSize + 0xc);
200 JUT_ASSERT(320, ret);
214 JUT_WARN(428,
"%s",
"Not enough JASSystemHeap");
228 typename T<JASMemChunkPool<ChunkSize, T> >
::Lock lock(*
this);
230 if (freeSize <
size) {
231 if (ChunkSize <
size) {
242 typename T<JASMemChunkPool<ChunkSize, T> >
::Lock lock(*
this);
245 while (chunk != NULL) {
260 JUT_PANIC(362,
"Cannnot free for JASMemChunkPool");
286 static void*
operator new(
size_t n) {
290 static void*
operator new(
size_t n,
void* ptr) {
293 static void operator delete(
void* ptr,
size_t n) {
349 static void*
operator new(
size_t n) {
353 static void*
operator new(
size_t n,
void* ptr) {
356 static void operator delete(
void* ptr,
size_t n) {
JKRSolidHeap * JASDram
Definition JASHeapCtrl.cpp:196
Definition JASHeapCtrl.h:18
JASDisposer * mDisposer
Definition JASHeapCtrl.h:36
void initRootHeap(void *, u32)
Definition JASHeapCtrl.cpp:18
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:153
u32 mSize
Definition JASHeapCtrl.h:38
bool allocTail(JASHeap *, u32)
Definition JASHeapCtrl.cpp:79
void insertChild(JASHeap *, JASHeap *, void *, u32, bool)
Definition JASHeapCtrl.cpp:131
JASHeap(JASDisposer *param_0=NULL)
Definition JASHeapCtrl.cpp:10
bool alloc(JASHeap *, u32)
Definition JASHeapCtrl.cpp:26
bool free()
Definition JASHeapCtrl.cpp:98
u32 getTailOffset()
Definition JASHeapCtrl.cpp:167
u8 * mBase
Definition JASHeapCtrl.h:37
void * getBase()
Definition JASHeapCtrl.h:30
u32 getSize() const
Definition JASHeapCtrl.h:32
u32 getCurOffset()
Definition JASHeapCtrl.cpp:174
Definition JASHeapCtrl.h:148
void * alloc(u32 size)
Definition JASHeapCtrl.h:227
JASMemChunkPool()
Definition JASHeapCtrl.h:197
MemoryChunk * field_0x18
Definition JASHeapCtrl.h:263
bool createNewChunk()
Definition JASHeapCtrl.h:203
void free(void *ptr)
Definition JASHeapCtrl.h:241
Definition JASHeapCtrl.h:324
void newMemPool(int param_0)
Definition JASHeapCtrl.h:326
void * alloc(size_t count)
Definition JASHeapCtrl.h:331
void free(void *ptr, u32 param_1)
Definition JASHeapCtrl.h:336
Definition JASHeapCtrl.h:111
u32 getTotalMemCount() const
Definition JASHeapCtrl.h:135
void newMemPool(int param_0)
Definition JASHeapCtrl.h:113
void free(void *ptr, u32 n)
Definition JASHeapCtrl.h:124
void * alloc(u32 n)
Definition JASHeapCtrl.h:118
u32 getFreeMemCount() const
Definition JASHeapCtrl.h:130
Definition JASHeapCtrl.h:347
static void newMemPool(int n)
Definition JASHeapCtrl.h:361
static JASMemPool_MultiThreaded< T > & getMemPool()
Definition JASHeapCtrl.h:369
static JASMemPool_MultiThreaded< T > memPool_
Definition JASHeapCtrl.h:368
Definition JASHeapCtrl.h:284
static void newMemPool(int param_0)
Definition JASHeapCtrl.h:297
static u32 getTotalMemCount()
Definition JASHeapCtrl.h:305
static JASMemPool< T > memPool_
Definition JASHeapCtrl.h:312
static u32 getFreeMemCount()
Definition JASHeapCtrl.h:301
static JASMemPool< T > & getMemPool_()
Definition JASHeapCtrl.h:313
static JKRHeap * getSystemHeap()
Definition JKRHeap.h:157
Definition JKRSolidHeap.h:10
Definition JASAudioThread.cpp:34
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:141
void setupAramHeap(u32, u32)
Definition JASHeapCtrl.cpp:262
JASMemChunkPool< 1024, JASThreadingModel::ObjectLevelLockable > * sCommandHeap
Definition JASHeapCtrl.cpp:241
u32 sAramBase
Definition JASHeapCtrl.cpp:237
JKRHeap * getSystemHeap()
Definition JASHeapCtrl.cpp:252
JASHeap audioAramHeap
Definition JASHeapCtrl.cpp:260
JKRHeap * sSystemHeap
Definition JASHeapCtrl.cpp:239
JASMemChunkPool< 1024, JASThreadingModel::ObjectLevelLockable > * getCommandHeap()
Definition JASHeapCtrl.cpp:256
void setupRootHeap(JKRSolidHeap *, u32)
Definition JASHeapCtrl.cpp:243
JASHeap * getAramHeap()
Definition JASHeapCtrl.cpp:267
Definition JASHeapCtrl.h:67
Definition JASWaveArcLoader.h:14
Definition JASHeapCtrl.h:46
~JASGenericMemPool()
Definition JASHeapCtrl.cpp:187
u32 usedMemCount
Definition JASHeapCtrl.h:64
u32 getFreeMemCount() const
Definition JASHeapCtrl.h:53
u32 freeMemCount
Definition JASHeapCtrl.h:62
u32 totalMemCount
Definition JASHeapCtrl.h:63
void * field_0x0
Definition JASHeapCtrl.h:61
void newMemPool(u32, int)
Definition JASHeapCtrl.cpp:203
u32 getTotalMemCount() const
Definition JASHeapCtrl.h:57
void free(void *, u32)
Definition JASHeapCtrl.cpp:229
JASGenericMemPool()
Definition JASHeapCtrl.cpp:180
void * alloc(u32)
Definition JASHeapCtrl.cpp:216
Definition JASHeapCtrl.h:149
u32 getFreeSize()
Definition JASHeapCtrl.h:183
void free(void *mem)
Definition JASHeapCtrl.h:171
bool checkArea(const void *ptr) const
Definition JASHeapCtrl.h:156
void revive()
Definition JASHeapCtrl.h:187
u8 mBuffer[ChunkSize]
Definition JASHeapCtrl.h:194
u32 mUsedSize
Definition JASHeapCtrl.h:192
MemoryChunk(MemoryChunk *nextChunk)
Definition JASHeapCtrl.h:150
MemoryChunk * mNextChunk
Definition JASHeapCtrl.h:191
void setNextChunk(MemoryChunk *chunk)
Definition JASHeapCtrl.h:179
u32 mChunks
Definition JASHeapCtrl.h:193
bool isEmpty() const
Definition JASHeapCtrl.h:175
void * alloc(u32 size)
Definition JASHeapCtrl.h:164
MemoryChunk * getNextChunk()
Definition JASHeapCtrl.h:160
Definition JASHeapCtrl.h:70
~Lock()
Definition JASHeapCtrl.h:72
BOOL field_0x0
Definition JASHeapCtrl.h:74
Lock(const A0 ¶m_0)
Definition JASHeapCtrl.h:71
Definition JASHeapCtrl.h:69
Definition JASHeapCtrl.h:84
A0 * mMutex
Definition JASHeapCtrl.h:94
Lock(A0 const &mutex)
Definition JASHeapCtrl.h:85
~Lock()
Definition JASHeapCtrl.h:90
Definition JASHeapCtrl.h:79
ObjectLevelLockable()
Definition JASHeapCtrl.h:80
Definition JASHeapCtrl.h:100
Lock(const A0 ¶m_0)
Definition JASHeapCtrl.h:101
Definition JASHeapCtrl.h:99