lib/master.c
changeset 2616 f99e5b11806c
parent 2589 2b9c78543663
child 2618 3affe9cd0b66
equal deleted inserted replaced
2615:bc34e2303fd6 2616:f99e5b11806c
    58 void ec_master_clear_config(ec_master_t *master)
    58 void ec_master_clear_config(ec_master_t *master)
    59 {
    59 {
    60     ec_domain_t *d, *next_d;
    60     ec_domain_t *d, *next_d;
    61     ec_slave_config_t *c, *next_c;
    61     ec_slave_config_t *c, *next_c;
    62 
    62 
       
    63     if (master->process_data)  {
       
    64         munmap(master->process_data, master->process_data_size);
       
    65         master->process_data = NULL;
       
    66     }
       
    67 
    63     d = master->first_domain;
    68     d = master->first_domain;
    64     while (d) {
    69     while (d) {
    65         next_d = d->next;
    70         next_d = d->next;
    66         ec_domain_clear(d);
    71         ec_domain_clear(d);
    67         d = next_d;
    72         d = next_d;
    79 
    84 
    80 /****************************************************************************/
    85 /****************************************************************************/
    81 
    86 
    82 void ec_master_clear(ec_master_t *master)
    87 void ec_master_clear(ec_master_t *master)
    83 {
    88 {
    84     if (master->process_data)  {
       
    85         munmap(master->process_data, master->process_data_size);
       
    86     }
       
    87 
       
    88     ec_master_clear_config(master);
    89     ec_master_clear_config(master);
    89 
    90 
    90     if (master->fd != -1) {
    91     if (master->fd != -1) {
    91 #if USE_RTDM
    92 #if USE_RTDM
    92         rt_dev_close(master->fd);
    93         rt_dev_close(master->fd);