--- a/master/master.c Tue Sep 19 13:09:39 2006 +0000
+++ b/master/master.c Tue Sep 19 13:28:40 2006 +0000
@@ -98,7 +98,8 @@
int ec_master_init(ec_master_t *master, /**< EtherCAT master */
unsigned int index, /**< master index */
- unsigned int eoeif_count /**< number of EoE interfaces */
+ unsigned int eoeif_count, /**< number of EoE interfaces */
+ dev_t dev_num /**< number for XML cdev's */
)
{
ec_eoe_t *eoe, *next_eoe;
@@ -133,6 +134,12 @@
goto out_return;
}
+ // init XML character device
+ if (ec_xmldev_init(&master->xmldev, master, dev_num)) {
+ EC_ERR("Failed to init XML character device.\n");
+ goto out_clear_wq;
+ }
+
// create EoE handlers
for (i = 0; i < eoeif_count; i++) {
if (!(eoe = (ec_eoe_t *) kmalloc(sizeof(ec_eoe_t), GFP_KERNEL))) {
@@ -168,6 +175,8 @@
ec_eoe_clear(eoe);
kfree(eoe);
}
+ ec_xmldev_clear(&master->xmldev);
+ out_clear_wq:
destroy_workqueue(master->workqueue);
out_return:
return -1;
@@ -191,6 +200,7 @@
ec_master_reset(master);
ec_fsm_clear(&master->fsm);
destroy_workqueue(master->workqueue);
+ ec_xmldev_clear(&master->xmldev);
// clear EoE objects
list_for_each_entry_safe(eoe, next_eoe, &master->eoe_handlers, list) {