aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/usrp/dboard_base.hpp3
-rw-r--r--host/include/uhd/usrp/dboard_manager.hpp34
2 files changed, 25 insertions, 12 deletions
diff --git a/host/include/uhd/usrp/dboard_base.hpp b/host/include/uhd/usrp/dboard_base.hpp
index 5a7cdd6d2..b106a1ac6 100644
--- a/host/include/uhd/usrp/dboard_base.hpp
+++ b/host/include/uhd/usrp/dboard_base.hpp
@@ -46,6 +46,9 @@ public:
dboard_base(ctor_args_t);
virtual ~dboard_base() {}
+ //post-construction initializer
+ virtual void initialize() {}
+
protected:
std::string get_subdev_name(void);
dboard_iface::sptr get_iface(void);
diff --git a/host/include/uhd/usrp/dboard_manager.hpp b/host/include/uhd/usrp/dboard_manager.hpp
index aa8599aa4..4a5074e50 100644
--- a/host/include/uhd/usrp/dboard_manager.hpp
+++ b/host/include/uhd/usrp/dboard_manager.hpp
@@ -45,15 +45,17 @@ public:
* Register a rx or tx dboard into the system.
* For single subdevice boards, omit subdev_names.
* \param dboard_id the dboard id (rx or tx)
- * \param dboard_ctor the dboard constructor function pointer
+ * \param db_subdev_ctor the dboard sub-device constructor function pointer (one instance per subdev name)
* \param name the canonical name for the dboard represented
* \param subdev_names the names of the subdevs on this dboard
+ * \param db_container_ctor the dboard container constructor function pointer (one instance per dboard)
*/
static void register_dboard(
const dboard_id_t &dboard_id,
- dboard_ctor_t dboard_ctor,
+ dboard_ctor_t db_subdev_ctor,
const std::string &name,
- const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0")
+ const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0"),
+ dboard_ctor_t db_container_ctor = NULL
);
/*!
@@ -61,50 +63,58 @@ public:
* For single subdevice boards, omit subdev_names.
* \param rx_dboard_id the rx unit dboard id
* \param tx_dboard_id the tx unit dboard id
- * \param dboard_ctor the dboard constructor function pointer
+ * \param db_subdev_ctor the dboard sub-device constructor function pointer (one instance per subdev name)
* \param name the canonical name for the dboard represented
* \param subdev_names the names of the subdevs on this dboard
+ * \param db_container_ctor the dboard container constructor function pointer (one instance per dboard)
*/
static void register_dboard(
const dboard_id_t &rx_dboard_id,
const dboard_id_t &tx_dboard_id,
- dboard_ctor_t dboard_ctor,
+ dboard_ctor_t db_subdev_ctor,
const std::string &name,
- const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0")
+ const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0"),
+ dboard_ctor_t db_container_ctor = NULL
);
/*!
* Register a restricted rx or tx dboard into the system.
+ * A restricted dboard does not add its dboard_iface object into the property tree.
* For single subdevice boards, omit subdev_names.
* The iface for a restricted board is not registered into the property tree.
* \param dboard_id the dboard id (rx or tx)
- * \param dboard_ctor the dboard constructor function pointer
+ * \param db_subdev_ctor the dboard sub-device constructor function pointer (one instance per subdev name)
* \param name the canonical name for the dboard represented
* \param subdev_names the names of the subdevs on this dboard
+ * \param db_container_ctor the dboard container constructor function pointer (one instance per dboard)
*/
static void register_dboard_restricted(
const dboard_id_t &dboard_id,
- dboard_ctor_t dboard_ctor,
+ dboard_ctor_t db_subdev_ctor,
const std::string &name,
- const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0")
+ const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0"),
+ dboard_ctor_t db_container_ctor = NULL
);
/*!
* Register a restricted xcvr dboard into the system.
+ * A restricted dboard does not add its dboard_iface object into the property tree.
* For single subdevice boards, omit subdev_names.
* The iface for a restricted board is not registered into the property tree.
* \param rx_dboard_id the rx unit dboard id
* \param tx_dboard_id the tx unit dboard id
- * \param dboard_ctor the dboard constructor function pointer
+ * \param db_subdev_ctor the dboard sub-device constructor function pointer (one instance per subdev name)
* \param name the canonical name for the dboard represented
* \param subdev_names the names of the subdevs on this dboard
+ * \param db_container_ctor the dboard container constructor function pointer (one instance per dboard)
*/
static void register_dboard_restricted(
const dboard_id_t &rx_dboard_id,
const dboard_id_t &tx_dboard_id,
- dboard_ctor_t dboard_ctor,
+ dboard_ctor_t db_subdev_ctor,
const std::string &name,
- const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0")
+ const std::vector<std::string> &subdev_names = std::vector<std::string>(1, "0"),
+ dboard_ctor_t db_container_ctor = NULL
);
/*!