18 #define UHD_RFNOC_BLOCK_REGISTER_FOR_DEVICE_DIRECT( \ 19 CLASS_NAME, NOC_ID, DEVICE_ID, BLOCK_NAME, MB_ACCESS, TB_CLOCK, CTRL_CLOCK) \ 20 uhd::rfnoc::noc_block_base::sptr CLASS_NAME##_make( \ 21 uhd::rfnoc::noc_block_base::make_args_ptr make_args) \ 23 return std::make_shared<CLASS_NAME##_impl>(std::move(make_args)); \ 25 UHD_STATIC_BLOCK(register_rfnoc_##CLASS_NAME) \ 27 uhd::rfnoc::registry::register_block_direct(NOC_ID, \ 33 &CLASS_NAME##_make); \ 36 #define UHD_RFNOC_BLOCK_REGISTER_DIRECT( \ 37 CLASS_NAME, NOC_ID, BLOCK_NAME, TB_CLOCK, CTRL_CLOCK) \ 38 UHD_RFNOC_BLOCK_REGISTER_FOR_DEVICE_DIRECT( \ 39 CLASS_NAME, NOC_ID, ANY_DEVICE, BLOCK_NAME, false, TB_CLOCK, CTRL_CLOCK) 41 #define UHD_RFNOC_BLOCK_REGISTER_DIRECT_MB_ACCESS( \ 42 CLASS_NAME, NOC_ID, BLOCK_NAME, TB_CLOCK, CTRL_CLOCK) \ 43 UHD_RFNOC_BLOCK_REGISTER_FOR_DEVICE_DIRECT( \ 44 CLASS_NAME, NOC_ID, ANY_DEVICE, BLOCK_NAME, true, TB_CLOCK, CTRL_CLOCK) 46 namespace uhd {
namespace rfnoc {
55 using factory_t = std::function<noc_block_base::sptr(noc_block_base::make_args_ptr)>;
87 static void register_block_direct(
noc_id_t noc_id,
89 const std::string& block_name,
91 const std::string& timebase_clock,
92 const std::string& ctrlport_clock,
97 static void register_block_direct(std::vector<noc_id_t> noc_ids,
99 const std::string& block_name,
101 const std::string& timebase_clock,
102 const std::string& ctrlport_clock,
116 static void register_block_descriptor(
117 const std::string& block_key,
factory_t factory_fn);
Definition: registry.hpp:52
Definition: build_info.hpp:12
uint16_t device_type_t
Device Type.
Definition: defaults.hpp:55
#define UHD_API
Definition: config.h:87
std::function< noc_block_base::sptr(noc_block_base::make_args_ptr)> factory_t
Definition: registry.hpp:55
uint32_t noc_id_t
Definition: defaults.hpp:51