16 namespace uhd {
namespace rfnoc {
24 std::function<void(uint32_t, uint32_t)>
poke_fn;
25 std::function<uint32_t(uint32_t)>
peek_fn;
40 using sptr = std::shared_ptr<register_iface>;
53 std::function<bool(uint32_t addr, const std::vector<uint32_t>& data)>;
66 uint32_t addr,
const std::vector<uint32_t>& data, boost::optional<uint64_t>)>;
80 virtual void poke32(uint32_t addr,
83 bool ack =
false) = 0;
108 {uint32_t(data & 0xFFFFFFFF), uint32_t((data >> 32) & 0xFFFFFFFF)},
131 virtual void multi_poke32(
const std::vector<uint32_t> addrs,
132 const std::vector<uint32_t> data,
134 bool ack =
false) = 0;
156 virtual void block_poke32(uint32_t first_addr,
157 const std::vector<uint32_t> data,
159 bool ack =
false) = 0;
189 const auto vals = block_peek32(addr, 2, time);
190 return uint64_t(vals[0]) | (uint64_t(vals[1]) << 32);
212 virtual std::vector<uint32_t> block_peek32(uint32_t first_addr,
253 virtual void poll32(uint32_t addr,
258 bool ack =
false) = 0;
271 virtual void sleep(
time_spec_t duration,
bool ack =
false) = 0;
317 virtual uint16_t get_src_epid()
const = 0;
324 virtual uint16_t get_port_num()
const = 0;
338 virtual void define_custom_register_space(
const uint32_t start_addr,
339 const uint32_t length,
340 std::function<
void(uint32_t, uint32_t)>
poke_fn,
341 std::function<uint32_t(uint32_t)>
peek_fn) = 0;
uint64_t peek64(uint32_t addr, time_spec_t time=uhd::time_spec_t::ASAP)
Definition: register_iface.hpp:187
uint32_t end_addr
Definition: register_iface.hpp:23
Definition: time_spec.hpp:28
static constexpr double ASAP
Definition: time_spec.hpp:34
std::shared_ptr< register_iface > sptr
Definition: register_iface.hpp:40
Definition: build_info.hpp:12
std::function< void(uint32_t, uint32_t)> poke_fn
Definition: register_iface.hpp:24
void poke64(uint32_t addr, uint64_t data, time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)
Definition: register_iface.hpp:102
std::function< bool(uint32_t addr, const std::vector< uint32_t > &data)> async_msg_validator_t
Definition: register_iface.hpp:53
std::function< void(uint32_t addr, const std::vector< uint32_t > &data, boost::optional< uint64_t >)> async_msg_callback_t
Definition: register_iface.hpp:66
UHD_INLINE data_t mask(const soft_reg_field_t field)
Definition: soft_register.hpp:86
Definition: register_iface.hpp:21
Definition: register_iface.hpp:37
Definition: device_addr.hpp:37
std::function< uint32_t(uint32_t)> peek_fn
Definition: register_iface.hpp:25