removed now obsolete ext_datagram_queu

This commit is contained in:
Martin Troxler 2010-12-16 11:29:23 +01:00
parent c15f66ae48
commit fc0ab2c764
2 changed files with 10 additions and 36 deletions

View File

@ -169,9 +169,7 @@ int ec_master_init(ec_master_t *master, /**< EtherCAT master */
INIT_LIST_HEAD(&master->datagram_queue);
master->datagram_index = 0;
INIT_LIST_HEAD(&master->ext_datagram_queue);
sema_init(&master->ext_queue_sem, 1);
sema_init(&master->fsm_queue_sem, 1);
INIT_LIST_HEAD(&master->fsm_datagram_queue);
// send interval in IDLE phase
@ -690,9 +688,9 @@ void ec_master_inject_fsm_datagrams(
ec_datagram_t *datagram, *n;
size_t queue_size = 0;
down(&master->ext_queue_sem);
down(&master->fsm_queue_sem);
if (list_empty(&master->fsm_datagram_queue)) {
up(&master->ext_queue_sem);
up(&master->fsm_queue_sem);
return;
}
list_for_each_entry(datagram, &master->datagram_queue, queue) {
@ -762,7 +760,7 @@ void ec_master_inject_fsm_datagrams(
}
}
}
up(&master->ext_queue_sem);
up(&master->fsm_queue_sem);
}
/*****************************************************************************/
@ -805,14 +803,14 @@ void ec_master_queue_fsm_datagram(
{
ec_datagram_t *queued_datagram;
down(&master->ext_queue_sem);
down(&master->fsm_queue_sem);
// check, if the datagram is already queued
list_for_each_entry(queued_datagram, &master->fsm_datagram_queue,
queue) {
if (queued_datagram == datagram) {
datagram->state = EC_DATAGRAM_QUEUED;
up(&master->ext_queue_sem);
up(&master->fsm_queue_sem);
return;
}
}
@ -829,7 +827,7 @@ void ec_master_queue_fsm_datagram(
#endif
datagram->jiffies_sent = jiffies;
up(&master->ext_queue_sem);
up(&master->fsm_queue_sem);
}
/*****************************************************************************/
@ -859,19 +857,6 @@ void ec_master_queue_datagram(
datagram->state = EC_DATAGRAM_QUEUED;
}
/*****************************************************************************/
/** Places a datagram in the non-application datagram queue.
*/
void ec_master_queue_datagram_ext(
ec_master_t *master, /**< EtherCAT master */
ec_datagram_t *datagram /**< datagram */
)
{
down(&master->ext_queue_sem);
list_add_tail(&datagram->queue, &master->ext_datagram_queue);
up(&master->ext_queue_sem);
}
/*****************************************************************************/
@ -2115,14 +2100,6 @@ void ecrt_master_receive(ec_master_t *master)
void ecrt_master_send_ext(ec_master_t *master)
{
ec_datagram_t *datagram, *next;
list_for_each_entry_safe(datagram, next, &master->ext_datagram_queue,
queue) {
list_del(&datagram->queue);
ec_master_queue_datagram(master, datagram);
}
ecrt_master_send(master);
}

View File

@ -210,12 +210,10 @@ struct ec_master {
struct list_head datagram_queue; /**< Datagram queue. */
uint8_t datagram_index; /**< Current datagram index. */
struct list_head ext_datagram_queue; /**< Queue for non-application
datagrams. */
struct semaphore ext_queue_sem; /**< Semaphore protecting the \a
ext_datagram_queue. */
struct semaphore fsm_queue_sem; /**< Semaphore protecting the \a
fsm_datagram_queue. */
struct list_head fsm_datagram_queue; /**< External Datagram queue. */
unsigned int send_interval; /**< Interval between calls to ecrt_master_send */
size_t max_queue_size; /**< Maximum size of datagram queue */
@ -267,7 +265,6 @@ void ec_master_leave_operation_phase(ec_master_t *);
// datagram IO
void ec_master_receive_datagrams(ec_master_t *, const uint8_t *, size_t);
void ec_master_queue_datagram(ec_master_t *, ec_datagram_t *);
void ec_master_queue_datagram_ext(ec_master_t *, ec_datagram_t *);
void ec_master_queue_request_fsm_datagram(ec_master_t *, ec_datagram_t *);
void ec_master_queue_fsm_datagram(ec_master_t *, ec_datagram_t *);
void ec_master_inject_fsm_datagrams(ec_master_t *);