16 namespace uhd {
namespace rfnoc {
30 using sptr = std::shared_ptr<register_iface>;
43 std::function<bool(uint32_t addr, const std::vector<uint32_t>& data)>;
56 uint32_t addr,
const std::vector<uint32_t>& data, boost::optional<uint64_t>)>;
70 virtual void poke32(uint32_t addr,
73 bool ack =
false) = 0;
98 {uint32_t(data & 0xFFFFFFFF), uint32_t((data >> 32) & 0xFFFFFFFF)},
121 virtual void multi_poke32(
const std::vector<uint32_t> addrs,
122 const std::vector<uint32_t> data,
124 bool ack =
false) = 0;
147 const std::vector<uint32_t> data,
149 bool ack =
false) = 0;
180 return uint64_t(vals[0]) | (uint64_t(vals[1]) << 32);
202 virtual std::vector<uint32_t>
block_peek32(uint32_t first_addr,
243 virtual void poll32(uint32_t addr,
248 bool ack =
false) = 0;
uint64_t peek64(uint32_t addr, time_spec_t time=uhd::time_spec_t::ASAP)
Definition: register_iface.hpp:177
virtual void set_policy(const std::string &name, const uhd::device_addr_t &args)=0
Definition: time_spec.hpp:28
virtual void poll32(uint32_t addr, uint32_t data, uint32_t mask, time_spec_t timeout, time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)=0
virtual void register_async_msg_handler(async_msg_callback_t callback_f)=0
static constexpr double ASAP
Definition: time_spec.hpp:34
virtual void block_poke32(uint32_t first_addr, const std::vector< uint32_t > data, uhd::time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)=0
virtual uint32_t peek32(uint32_t addr, time_spec_t time=uhd::time_spec_t::ASAP)=0
virtual void sleep(time_spec_t duration, bool ack=false)=0
std::shared_ptr< register_iface > sptr
Definition: register_iface.hpp:30
virtual void poke32(uint32_t addr, uint32_t data, uhd::time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)=0
Definition: build_info.hpp:12
virtual uint16_t get_src_epid() const =0
virtual ~register_iface()=default
void poke64(uint32_t addr, uint64_t data, time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)
Definition: register_iface.hpp:92
std::function< bool(uint32_t addr, const std::vector< uint32_t > &data)> async_msg_validator_t
Definition: register_iface.hpp:43
virtual void multi_poke32(const std::vector< uint32_t > addrs, const std::vector< uint32_t > data, uhd::time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)=0
virtual std::vector< uint32_t > block_peek32(uint32_t first_addr, size_t length, time_spec_t time=uhd::time_spec_t::ASAP)=0
std::function< void(uint32_t addr, const std::vector< uint32_t > &data, boost::optional< uint64_t >)> async_msg_callback_t
Definition: register_iface.hpp:56
UHD_INLINE data_t mask(const soft_reg_field_t field)
Definition: soft_register.hpp:86
virtual void register_async_msg_validator(async_msg_validator_t callback_f)=0
virtual uint16_t get_port_num() const =0
Definition: register_iface.hpp:27
Definition: device_addr.hpp:37