equal
deleted
inserted
replaced
37 #include <stdio.h> |
37 #include <stdio.h> |
38 #include <stdlib.h> |
38 #include <stdlib.h> |
39 #include <errno.h> |
39 #include <errno.h> |
40 #include <string.h> |
40 #include <string.h> |
41 #include <sys/ioctl.h> |
41 #include <sys/ioctl.h> |
|
42 #include <sys/mman.h> |
42 |
43 |
43 #include "master.h" |
44 #include "master.h" |
44 #include "master/ioctl.h" |
45 #include "master/ioctl.h" |
45 |
46 |
46 /*****************************************************************************/ |
47 /*****************************************************************************/ |
63 if (!master) { |
64 if (!master) { |
64 fprintf(stderr, "Failed to allocate memory.\n"); |
65 fprintf(stderr, "Failed to allocate memory.\n"); |
65 return 0; |
66 return 0; |
66 } |
67 } |
67 |
68 |
|
69 master->process_data = NULL; |
|
70 master->process_data_size = 0; |
|
71 |
68 snprintf(path, MAX_PATH_LEN - 1, "/dev/EtherCAT%u", master_index); |
72 snprintf(path, MAX_PATH_LEN - 1, "/dev/EtherCAT%u", master_index); |
69 |
73 |
70 master->fd = open(path, O_RDWR); |
74 master->fd = open(path, O_RDWR); |
71 if (master->fd == -1) { |
75 if (master->fd == -1) { |
72 fprintf(stderr, "Failed to open %s: %s\n", path, strerror(errno)); |
76 fprintf(stderr, "Failed to open %s: %s\n", path, strerror(errno)); |
87 |
91 |
88 /*****************************************************************************/ |
92 /*****************************************************************************/ |
89 |
93 |
90 void ecrt_release_master(ec_master_t *master) |
94 void ecrt_release_master(ec_master_t *master) |
91 { |
95 { |
|
96 if (master->process_data) { |
|
97 munmap(master->process_data, master->process_data_size); |
|
98 } |
|
99 |
92 close(master->fd); |
100 close(master->fd); |
93 free(master); |
101 free(master); |
94 } |
102 } |
95 |
103 |
96 /*****************************************************************************/ |
104 /*****************************************************************************/ |