master/master.c
changeset 318 5f35e74124d1
parent 313 ba324d82dfd3
child 321 64e20e6e9d0b
equal deleted inserted replaced
317:e5ceb7cd20b5 318:5f35e74124d1
    53 #include "datagram.h"
    53 #include "datagram.h"
    54 #include "ethernet.h"
    54 #include "ethernet.h"
    55 
    55 
    56 /*****************************************************************************/
    56 /*****************************************************************************/
    57 
    57 
    58 void ec_master_idle(void *);
    58 void ec_master_idle_run(void *);
    59 void ec_master_eoe_run(unsigned long);
    59 void ec_master_eoe_run(unsigned long);
    60 ssize_t ec_show_master_attribute(struct kobject *, struct attribute *, char *);
    60 ssize_t ec_show_master_attribute(struct kobject *, struct attribute *, char *);
    61 ssize_t ec_store_master_attribute(struct kobject *, struct attribute *,
    61 ssize_t ec_store_master_attribute(struct kobject *, struct attribute *,
    62                                   const char *, size_t);
    62                                   const char *, size_t);
    63 
    63 
   114     INIT_LIST_HEAD(&master->slaves);
   114     INIT_LIST_HEAD(&master->slaves);
   115     INIT_LIST_HEAD(&master->datagram_queue);
   115     INIT_LIST_HEAD(&master->datagram_queue);
   116     INIT_LIST_HEAD(&master->domains);
   116     INIT_LIST_HEAD(&master->domains);
   117     INIT_LIST_HEAD(&master->eoe_handlers);
   117     INIT_LIST_HEAD(&master->eoe_handlers);
   118     ec_datagram_init(&master->simple_datagram);
   118     ec_datagram_init(&master->simple_datagram);
   119     INIT_WORK(&master->idle_work, ec_master_idle, (void *) master);
   119     INIT_WORK(&master->idle_work, ec_master_idle_run, (void *) master);
   120     init_timer(&master->eoe_timer);
   120     init_timer(&master->eoe_timer);
   121     master->eoe_timer.function = ec_master_eoe_run;
   121     master->eoe_timer.function = ec_master_eoe_run;
   122     master->eoe_timer.data = (unsigned long) master;
   122     master->eoe_timer.data = (unsigned long) master;
   123     master->internal_lock = SPIN_LOCK_UNLOCKED;
   123     master->internal_lock = SPIN_LOCK_UNLOCKED;
   124     master->eoe_running = 0;
   124     master->eoe_running = 0;
   722 
   722 
   723 /**
   723 /**
   724    Idle mode function.
   724    Idle mode function.
   725 */
   725 */
   726 
   726 
   727 void ec_master_idle(void *data /**< master pointer */)
   727 void ec_master_idle_run(void *data /**< master pointer */)
   728 {
   728 {
   729     ec_master_t *master = (ec_master_t *) data;
   729     ec_master_t *master = (ec_master_t *) data;
   730 
   730 
   731     // aquire master lock
   731     // aquire master lock
   732     spin_lock_bh(&master->internal_lock);
   732     spin_lock_bh(&master->internal_lock);