master/master.c
changeset 1581 e51cf2af3ff9
parent 1544 cfcaf46c5b3f
parent 1580 1baac79a40cf
child 1586 eb9185dfa8ac
equal deleted inserted replaced
1578:30f065ea5271 1581:e51cf2af3ff9
   112     int ret;
   112     int ret;
   113 
   113 
   114     master->index = index;
   114     master->index = index;
   115     master->reserved = 0;
   115     master->reserved = 0;
   116 
   116 
   117     init_MUTEX(&master->master_sem);
   117     sema_init(&master->master_sem, 1);
   118 
   118 
   119     master->main_mac = main_mac;
   119     master->main_mac = main_mac;
   120     master->backup_mac = backup_mac;
   120     master->backup_mac = backup_mac;
   121     init_MUTEX(&master->device_sem);
   121 
       
   122     sema_init(&master->device_sem, 1);
   122 
   123 
   123     master->phase = EC_ORPHANED;
   124     master->phase = EC_ORPHANED;
   124     master->active = 0;
   125     master->active = 0;
   125     master->injection_seq_fsm = 0;
   126     master->injection_seq_fsm = 0;
   126     master->injection_seq_rt = 0;
   127     master->injection_seq_rt = 0;
   134     master->app_start_time = 0ULL;
   135     master->app_start_time = 0ULL;
   135     master->has_start_time = 0;
   136     master->has_start_time = 0;
   136 
   137 
   137     master->scan_busy = 0;
   138     master->scan_busy = 0;
   138     master->allow_scan = 1;
   139     master->allow_scan = 1;
   139     init_MUTEX(&master->scan_sem);
   140     sema_init(&master->scan_sem, 1);
   140     init_waitqueue_head(&master->scan_queue);
   141     init_waitqueue_head(&master->scan_queue);
   141 
   142 
   142     master->config_busy = 0;
   143     master->config_busy = 0;
   143     master->allow_config = 1;
   144     master->allow_config = 1;
   144     init_MUTEX(&master->config_sem);
   145     sema_init(&master->config_sem, 1);
   145     init_waitqueue_head(&master->config_queue);
   146     init_waitqueue_head(&master->config_queue);
   146     
   147     
   147     INIT_LIST_HEAD(&master->datagram_queue);
   148     INIT_LIST_HEAD(&master->datagram_queue);
   148     master->datagram_index = 0;
   149     master->datagram_index = 0;
   149 
   150 
   150     INIT_LIST_HEAD(&master->ext_datagram_queue);
   151     INIT_LIST_HEAD(&master->ext_datagram_queue);
   151     init_MUTEX(&master->ext_queue_sem);
   152     sema_init(&master->ext_queue_sem, 1);
   152 
   153 
   153     INIT_LIST_HEAD(&master->domains);
   154     INIT_LIST_HEAD(&master->domains);
   154 
   155 
   155     master->debug_level = debug_level;
   156     master->debug_level = debug_level;
   156     master->stats.timeouts = 0;
   157     master->stats.timeouts = 0;
   164 #ifdef EC_EOE
   165 #ifdef EC_EOE
   165     master->eoe_thread = NULL;
   166     master->eoe_thread = NULL;
   166     INIT_LIST_HEAD(&master->eoe_handlers);
   167     INIT_LIST_HEAD(&master->eoe_handlers);
   167 #endif
   168 #endif
   168 
   169 
   169     init_MUTEX(&master->io_sem);
   170     sema_init(&master->io_sem, 1);
   170     master->send_cb = NULL;
   171     master->send_cb = NULL;
   171     master->receive_cb = NULL;
   172     master->receive_cb = NULL;
   172     master->cb_data = NULL;
   173     master->cb_data = NULL;
   173     master->app_send_cb = NULL;
   174     master->app_send_cb = NULL;
   174     master->app_receive_cb = NULL;
   175     master->app_receive_cb = NULL;