lib/common.c
changeset 1258 900f1124e8f8
parent 1244 0b70040d3daa
child 1266 dd1f501c4070
equal deleted inserted replaced
1257:9844ac126275 1258:900f1124e8f8
    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 /*****************************************************************************/