39enum class CDL : uint8_t {
78template <
typename Reg,
unsigned m>
80 static volatile uint8_t&
access(
int index = 0) {
82 return Reg::access(index);
89 for (
unsigned i = 0; i < commandBuffer.
size; i++) {
98 template <
typename... Args>
101 recursiveSend(args...);
106 void recursiveSend(uint8_t arg) {
Fifo = arg; }
107 template <
typename... Args>
108 void recursiveSend(uint8_t arg, Args... args) {
110 recursiveSend(args...);
115extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 0>>
DataRequest;
116extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0802, 0xbf801000, uint8_t>, 1>>
CauseMask;
117extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 1>>
Cause;
118extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0802, 0xbf801000, uint8_t>, 2>>
LeftToLeftVolume;
119extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 2>>
LeftToRightVolume;
120extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0801, 0xbf801000, uint8_t>, 3>>
RightToRightVolume;
121extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0802, 0xbf801000, uint8_t>, 3>>
RightToLeftVolume;
122extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 3>>
VolumeSettings;
uint32_t cmd
Definition dma.c:108
Definition cdrom-commandbuffer.hh:34
CDL
Definition cdrom.hh:39
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0802, 0xbf801000, uint8_t >, 2 > > LeftToLeftVolume
Definition cdrom.cpp:48
Hardware::Register< 0x0800, uint8_t, WriteQueue::Bypass > Ctrl
Definition cdrom.cpp:29
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0803, 0xbf801000, uint8_t >, 3 > > VolumeSettings
Definition cdrom.cpp:60
Hardware::Register< 0x0802, uint8_t, WriteQueue::Bypass > Fifo
Definition cdrom.cpp:31
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0801, 0xbf801000, uint8_t >, 3 > > RightToRightVolume
Definition cdrom.cpp:54
CommandFifo Command
Definition cdrom.cpp:35
Hardware::Register< 0x0801, uint8_t, WriteQueue::Bypass > Response
Definition cdrom.cpp:30
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0803, 0xbf801000, uint8_t >, 1 > > Cause
Definition cdrom.cpp:44
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0802, 0xbf801000, uint8_t >, 3 > > RightToLeftVolume
Definition cdrom.cpp:57
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0803, 0xbf801000, uint8_t >, 0 > > DataRequest
Definition cdrom.cpp:38
Hardware::Register< 0x0803, uint8_t, WriteQueue::Bypass > InterruptControl
Definition cdrom.cpp:33
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0803, 0xbf801000, uint8_t >, 2 > > LeftToRightVolume
Definition cdrom.cpp:51
Register< 0, uint8_t, WriteQueue::Bypass, Access< BasicAccess< 0x0802, 0xbf801000, uint8_t >, 1 > > CauseMask
Definition cdrom.cpp:41
static volatile uint8_t & access(int index=0)
Definition cdrom.hh:80
Definition cdrom-commandbuffer.hh:39
uint8_t buffer[16]
Definition cdrom-commandbuffer.hh:46
uint8_t size
Definition cdrom-commandbuffer.hh:47
void send(CDL cmd, Args... args)
Definition cdrom.hh:99
void send(CDL cmd)
Definition cdrom.hh:94
void send(CDL cmd, const CDRomCommandBuffer &commandBuffer)
Definition cdrom.hh:87