Files
tww/src/JSystem/JAudio/JASSystemHeap.cpp
T
Jasper St. Pierre 47303cd4b7 JAS work
2023-11-08 00:41:29 -08:00

59 lines
1.9 KiB
C++

//
// Generated by dtk
// Translation Unit: JASSystemHeap.cpp
//
#include "JSystem/JAudio/JASSystemHeap.h"
#include "JSystem/JAudio/JASHeapCtrl.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JKernel/JKRStdHeap.h"
#include "JSystem/JUtility/JUTAssert.h"
#include "dolphin/ar/ar.h"
#include "dolphin/os/OS.h"
u32 JASystem::Kernel::audioDramSize = 0x000C8000;
JKRSolidHeap* JASDram;
/* 8027DB38-8027DB9C .text sysDramSetup__Q28JASystem6KernelFP12JKRSolidHeap */
void JASystem::Kernel::sysDramSetup(JKRSolidHeap* heap) {
if (heap) {
JASDram = heap;
return;
}
OSReport("[JASKernel::sysDramSetup] メモリ指定がありませんので、システムからオーディオヒープを取得します。\n");
JASDram = JKRSolidHeap::create(audioDramSize, JKRStdHeap::create(audioDramSize + 0x100, NULL, false), false);
}
/* 8027DB9C-8027DC30 .text allocFromSysDram__Q28JASystem6KernelFUl */
void* JASystem::Kernel::allocFromSysDram(u32 size) {
void* ptr;
BOOL enable = OSDisableInterrupts();
ptr = new (JASDram, 0x20) u8[size];
JUT_ASSERT(79, ptr != 0);
OSRestoreInterrupts(enable);
return ptr;
}
JASystem::Kernel::TSolidHeap JASystem::Kernel::audioAramHeap;
u32 JASystem::Kernel::audioAramSize = 0x00400000;
int JASystem::Kernel::audioAramTop;
int JASystem::Kernel::CARD_SECURITY_BUFFER;
/* 8027DC30-8027DC84 .text sysAramSetup__Q28JASystem6KernelFUl */
void JASystem::Kernel::sysAramSetup(u32 size) {
if (!size) {
size = audioAramSize;
}
audioAramTop = ARGetBaseAddress();
CARD_SECURITY_BUFFER = 0x40;
audioAramHeap.init((u8*)audioAramTop, size - audioAramTop);
}
/* 8027DC84-8027DCDC .text allocFromSysAramFull__Q28JASystem6KernelFPUl */
void* JASystem::Kernel::allocFromSysAramFull(u32* bufSize) {
u32 size = audioAramHeap.getRemain();
void* buf = audioAramHeap.alloc(size - 0x20);
*bufSize = size - 0x20;
return buf;
}