11#include <boost/optional.hpp>
26 std::function<void(uint32_t, uint32_t)>
poke_fn;
27 std::function<uint32_t(uint32_t)>
peek_fn;
80 using sptr = std::shared_ptr<register_iface>;
93 std::function<bool(uint32_t addr,
const std::vector<uint32_t>& data)>;
109 uint32_t addr,
const std::vector<uint32_t>& data, std::optional<uint64_t>)>;
116 uint32_t addr,
const std::vector<uint32_t>& data, boost::optional<uint64_t>)>;
133 bool ack =
false) = 0;
158 {uint32_t(data & 0xFFFFFFFF), uint32_t((data >> 32) & 0xFFFFFFFF)},
182 const std::vector<uint32_t> data,
184 bool ack =
false) = 0;
207 const std::vector<uint32_t> data,
209 bool ack =
false) = 0;
240 return uint64_t(vals[0]) | (uint64_t(vals[1]) << 32);
308 bool ack =
false) = 0;
360 [[deprecated(
"Prefer std::optional over boost::optional.")]]
virtual void
399 const uint32_t length,
400 std::function<
void(uint32_t, uint32_t)> poke_fn,
401 std::function<uint32_t(uint32_t)> peek_fn) = 0;
Definition device_addr.hpp:39
Definition register_iface.hpp:78
virtual void register_async_msg_handler(async_msg_callback_t callback_f)=0
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
std::function< void( uint32_t addr, const std::vector< uint32_t > &data, boost::optional< uint64_t >)> async_msg_callback_legacy_t
Definition register_iface.hpp:115
uint64_t peek64(uint32_t addr, time_spec_t time=uhd::time_spec_t::ASAP)
Definition register_iface.hpp:237
std::shared_ptr< register_iface > sptr
Definition register_iface.hpp:80
virtual register_iface_stats get_stats() const =0
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 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 void register_async_msg_validator(async_msg_validator_t callback_f)=0
std::function< void( uint32_t addr, const std::vector< uint32_t > &data, std::optional< uint64_t >)> async_msg_callback_t
Definition register_iface.hpp:108
virtual uint16_t get_port_num() const =0
std::function< bool(uint32_t addr, const std::vector< uint32_t > &data)> async_msg_validator_t
Definition register_iface.hpp:92
virtual std::vector< uint32_t > block_peek32(uint32_t first_addr, size_t length, time_spec_t time=uhd::time_spec_t::ASAP)=0
virtual ~register_iface()=default
virtual void set_policy(const std::string &name, const uhd::device_addr_t &args)=0
virtual uint32_t peek32(uint32_t addr, time_spec_t time=uhd::time_spec_t::ASAP)=0
virtual void register_async_msg_handler(async_msg_callback_legacy_t callback_f)=0
virtual uint16_t get_src_epid() const =0
virtual void define_custom_register_space(const uint32_t start_addr, const uint32_t length, std::function< void(uint32_t, uint32_t)> poke_fn, std::function< uint32_t(uint32_t)> peek_fn)=0
void poke64(uint32_t addr, uint64_t data, time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)
Definition register_iface.hpp:152
virtual void sleep(time_spec_t duration, bool ack=false)=0
virtual void poke32(uint32_t addr, uint32_t data, uhd::time_spec_t time=uhd::time_spec_t::ASAP, bool ack=false)=0
Definition time_spec.hpp:31
static constexpr double ASAP
Definition time_spec.hpp:34
#define UHD_API
Definition config.h:87
Definition actions.hpp:25
Definition build_info.hpp:12
Definition register_iface.hpp:24
std::function< void(uint32_t, uint32_t)> poke_fn
Definition register_iface.hpp:26
uint32_t end_addr
Definition register_iface.hpp:25
std::function< uint32_t(uint32_t)> peek_fn
Definition register_iface.hpp:27
Definition register_iface.hpp:49
uint64_t ctrl_dropped
Number of control packets dropped (or ACKs not received).
Definition register_iface.hpp:59
uint64_t ctrl_out_of_sequence
Number of out-of-sequence control packets.
Definition register_iface.hpp:61
uint64_t ack_packets_received
Number of ACK packets received.
Definition register_iface.hpp:53
uint64_t async_packets_received
Number of async packets received.
Definition register_iface.hpp:55
ssize_t buffer_fullness
The fullness of the buffer in the FPGA, as calculated by the software.
Definition register_iface.hpp:63
std::string UHD_API to_string() const
uint64_t ack_packets_sent
Number of ACK packets sent.
Definition register_iface.hpp:57
uint64_t ctrl_packets_sent
Number of control packets sent.
Definition register_iface.hpp:51