prime/include/Kyoto/CARAMManager.hpp

39 lines
1.0 KiB
C++

#ifndef _CARAMMANAGER
#define _CARAMMANAGER
#include "types.h"
class CARAMManager {
public:
enum EDMAPriority {
kDMAPrio_Zero,
kDMAPrio_One,
kDMAPrio_Two,
kDMAPrio_Three,
kDMAPrio_Four,
kDMAPrio_Five,
kDMAPrio_Six,
};
static void Shutdown();
static void CollectGarbage();
static void PreInitializeAlloc(uint size) { mPreInitializeAlloc += size; }
static void Initialize(uint);
static void WaitForAllDMAsToComplete();
static const void* GetInvalidAlloc() { return (const void*)kInvalidAlloc; }
static const uint GetInvalidDMAHandle() { return kInvalidHandle; }
static bool CancelDMA(uint);
static void WaitForDMACompletion(uint);
static bool IsDMACompleted(uint handle);
static void* Alloc(uint len);
static void Free(const void* ptr);
static int DMAToARAM(void*, void*, uint, EDMAPriority);
static int DMAToMRAM(void*, void*, uint, EDMAPriority);
private:
static uint mPreInitializeAlloc;
static const int kInvalidAlloc;
static const int kInvalidHandle;
};
#endif // _CARAMMANAGER