--- 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;
}