master/master.c
changeset 361 29af81543ce1
parent 356 4bdc4f2e1a93
child 377 ecac8252f114
--- 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) {