lib/common.c
changeset 1497 c9308eb34c0e
parent 1495 88f242b722ce
child 1826 ec6223c3b7ec
--- a/lib/common.c	Fri Jul 10 09:38:37 2009 +0000
+++ b/lib/common.c	Fri Jul 10 10:07:48 2009 +0000
@@ -50,9 +50,25 @@
 
 /*****************************************************************************/
 
+ec_master_t *ecrt_request_master(unsigned int master_index)
+{
+    ec_master_t *master = ecrt_open_master(master_index);
+    if (master) {
+        if (ecrt_master_reserve(master) < 0) {
+            close(master->fd);
+            free(master);
+            master = 0;
+        }
+    }
+
+    return master;
+}
+
+/*****************************************************************************/
+
 #define MAX_PATH_LEN 64
 
-ec_master_t *ecrt_request_master(unsigned int master_index)
+ec_master_t *ecrt_open_master(unsigned int master_index)
 {
     char path[MAX_PATH_LEN];
     ec_master_t *master;
@@ -75,14 +91,6 @@
         return 0;
     }
 
-    if (ioctl(master->fd, EC_IOCTL_REQUEST, NULL) == -1) {
-        fprintf(stderr, "Failed to request master %u: %s\n",
-                master_index, strerror(errno));
-        close(master->fd);
-        free(master);
-        return 0; 
-    }
-
     return master;
 }