mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-28 10:20:52 -04:00
59 lines
1.9 KiB
C++
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;
|
|
}
|