Files
2026-05-20 17:55:07 +02:00

44 lines
1.1 KiB
C++

#pragma once
#include <ircolib/types.hpp>
namespace weee::core {
struct mem;
struct dsp {
dsp(mem &);
ircolib::u16 read16(ircolib::u32);
void write16(ircolib::u32, ircolib::u16);
ircolib::u32 read32(ircolib::u32);
void write32(ircolib::u32, ircolib::u32);
union Csr {
struct {
unsigned res : 1;
unsigned piint : 1;
unsigned halt : 1;
unsigned aidint : 1;
unsigned aidint_mask : 1;
unsigned arint : 1;
unsigned arint_mask : 1;
unsigned dspint : 1;
unsigned dspint_mask : 1;
unsigned int_status : 1;
unsigned : 1;
unsigned boot_mode : 1;
unsigned : 4;
};
ircolib::u16 raw;
} csr;
union {
struct {
ircolib::u32 lo;
ircolib::u32 hi;
};
ircolib::u64 whole;
} ar_dma_mmaddr, ar_dma_araddr, ar_dma_cnt, dma_start_addr;
ircolib::u16 ar_size;
ircolib::u16 dsp_mail_hi = 0, dsp_mail_lo = 0, cpu_mail_hi = 0, cpu_mail_lo = 0;
};
} // namespace weee::core