33enum class CDL : uint8_t {
72template <
typename Reg,
unsigned m>
74 static volatile uint8_t&
access(
int index = 0) {
76 return Reg::access(index);
85 template <
typename... Args>
88 recursiveSend(args...);
93 void recursiveSend(uint8_t arg) {
Fifo = arg; }
94 template <
typename... Args>
95 void recursiveSend(uint8_t arg, Args... args) {
97 recursiveSend(args...);
102extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 0>>
DataRequest;
103extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0802, 0xbf801000, uint8_t>, 1>>
CauseMask;
104extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 1>>
Cause;
105extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0802, 0xbf801000, uint8_t>, 2>>
LeftToLeftVolume;
106extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 2>>
LeftToRightVolume;
107extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0801, 0xbf801000, uint8_t>, 3>>
RightToRightVolume;
108extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0802, 0xbf801000, uint8_t>, 3>>
RightToLeftVolume;
109extern Register<0, uint8_t, WriteQueue::Bypass, Access<BasicAccess<0x0803, 0xbf801000, uint8_t>, 3>>
VolumeSettings;
uint32_t cmd
Definition dma.c:108
CDL
Definition cdrom.hh:33
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:74
void send(CDL cmd, Args... args)
Definition cdrom.hh:86
void send(CDL cmd)
Definition cdrom.hh:81