68 unsigned write_queue()
const;
76 std::deque<u32> m_queue_rd;
77 std::deque<u32> m_queue_wr;
80 enum class ReadMode {UNSAFE, STRICT, ECHO, CONSTANT};
141 std::map<unsigned, satcat5::cfg::ConfigBus&> m_devs;
ConfigBus core definitions.
IoStatus
Status codes for ConfigBus read/write operations.
void irq_poll()
Poll all registered ConfigBus interrupt handlers.
Simulated bank of ConfigBus registers.
void irq_poll()
Make the "irq_poll" method accessible.
satcat5::cfg::IoStatus read(unsigned regaddr, u32 &val) override
Basic single-register read operation.
void read_default_none()
Set read mode for all contained registers.
void read_default_echo()
Set read mode for all contained registers.
void read_default(u32 val)
Set read mode for all contained registers.
satcat5::cfg::IoStatus write(unsigned regaddr, u32 wrval) override
Basic single-register write operation.
satcat5::test::CfgRegister & operator[](unsigned idx)
Accessor for each simulated register.
Simulation of a single ConfigBus register.
void read_default(u32 val)
Set default value for reads when the queue is empty.
unsigned read_count() const
Total reads from this register.
void read_push(u32 val)
Queue up a read for this register.
CfgRegister()
Constructor for a single register.
satcat5::cfg::IoStatus read(unsigned regaddr, u32 &rdval) override
Basic single-register read operation.
u32 write_pop()
Pop one value from the recent write queue.
void read_default_echo()
Set default value for reads when the queue is empty.
satcat5::cfg::IoStatus write(unsigned regaddr, u32 wrval) override
Basic single-register write operation.
void read_default_none()
Set default value for reads when the queue is empty.
unsigned read_queue() const
Number of queued responses.
unsigned write_count() const
Total writes to this register.
Simulated ConfigBus address space with many devices.
satcat5::cfg::IoStatus read(unsigned regaddr, u32 &val) override
Basic single-register read operation.
satcat5::cfg::ConfigBus & get_device(unsigned devaddr)
Access the designated device handler, by device-address.
void add_device(unsigned devaddr, satcat5::cfg::ConfigBus &cfg)
Register a handler for a specific device address.
satcat5::cfg::IoStatus write(unsigned regaddr, u32 wrval) override
Basic single-register write operation.
void irq_poll()
Make the "irq_poll" method accessible.