From a5454ca785c3f5862453ea0521fd919fcd32ce41 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 2 Nov 2014 10:22:36 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7458 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/STM32/LLD/mac_lld.c | 12 ++++++------ os/hal/ports/STM32/LLD/mac_lld.h | 4 ++-- os/hal/src/mac.c | 12 +++++++----- 3 files changed, 15 insertions(+), 13 deletions(-) (limited to 'os') diff --git a/os/hal/ports/STM32/LLD/mac_lld.c b/os/hal/ports/STM32/LLD/mac_lld.c index 746eccd78..59742572e 100644 --- a/os/hal/ports/STM32/LLD/mac_lld.c +++ b/os/hal/ports/STM32/LLD/mac_lld.c @@ -175,10 +175,10 @@ static void mac_lld_set_address(const uint8_t *p) { /* Driver interrupt handlers. */ /*===========================================================================*/ -CH_IRQ_HANDLER(ETH_IRQHandler) { +OSAL_IRQ_HANDLER(ETH_IRQHandler) { uint32_t dmasr; - CH_IRQ_PROLOGUE(); + OSAL_IRQ_PROLOGUE(); dmasr = ETH->DMASR; ETH->DMASR = dmasr; /* Clear status bits.*/ @@ -186,9 +186,9 @@ CH_IRQ_HANDLER(ETH_IRQHandler) { if (dmasr & ETH_DMASR_RS) { /* Data Received.*/ osalSysLockFromISR(); - chSemResetI(ÐD1.rdsem, 0); + osalThreadDequeueAllI(ÐD1.rdqueue, MSG_RESET); #if MAC_USE_EVENTS - chEvtBroadcastI(ÐD1.rdevent); + osalEventBroadcastFlagsI(ÐD1.rdevent, 0); #endif osalSysUnlockFromISR(); } @@ -196,11 +196,11 @@ CH_IRQ_HANDLER(ETH_IRQHandler) { if (dmasr & ETH_DMASR_TS) { /* Data Transmitted.*/ osalSysLockFromISR(); - chSemResetI(ÐD1.tdsem, 0); + osalThreadDequeueAllI(ÐD1.tdqueue, MSG_RESET); osalSysUnlockFromISR(); } - CH_IRQ_EPILOGUE(); + OSAL_IRQ_EPILOGUE(); } /*===========================================================================*/ diff --git a/os/hal/ports/STM32/LLD/mac_lld.h b/os/hal/ports/STM32/LLD/mac_lld.h index 362678ab3..b43d15e22 100644 --- a/os/hal/ports/STM32/LLD/mac_lld.h +++ b/os/hal/ports/STM32/LLD/mac_lld.h @@ -245,11 +245,11 @@ struct MACDriver { /** * @brief Transmit semaphore. */ - semaphore_t tdsem; + threads_queue_t tdqueue; /** * @brief Receive semaphore. */ - semaphore_t rdsem; + threads_queue_t rdqueue; #if MAC_USE_EVENTS || defined(__DOXYGEN__) /** * @brief Receive event. diff --git a/os/hal/src/mac.c b/os/hal/src/mac.c index 66f10131f..82446267d 100644 --- a/os/hal/src/mac.c +++ b/os/hal/src/mac.c @@ -81,10 +81,10 @@ void macObjectInit(MACDriver *macp) { macp->state = MAC_STOP; macp->config = NULL; - chSemObjectInit(&macp->tdsem, 0); - chSemObjectInit(&macp->rdsem, 0); + osalThreadQueueObjectInit(&macp->tdqueue); + osalThreadQueueObjectInit(&macp->rdqueue); #if MAC_USE_EVENTS - chEvtObjectInit(&macp->rdevent); + osalEventObjectInit(&macp->rdevent); #endif } @@ -160,7 +160,8 @@ msg_t macWaitTransmitDescriptor(MACDriver *macp, (time > 0)) { osalSysLock(); now = osalOsGetSystemTimeX(); - if ((msg = chSemWaitTimeoutS(&macp->tdsem, time)) == MSG_TIMEOUT) { + msg = osalThreadEnqueueTimeoutS(&macp->tdqueue, time); + if (msg == MSG_TIMEOUT) { osalSysUnlock(); break; } @@ -218,7 +219,8 @@ msg_t macWaitReceiveDescriptor(MACDriver *macp, (time > 0)) { osalSysLock(); now = osalOsGetSystemTimeX(); - if ((msg = chSemWaitTimeoutS(&macp->rdsem, time)) == MSG_TIMEOUT) { + msg = osalThreadEnqueueTimeoutS(&macp->rdqueue, time); + if (msg == MSG_TIMEOUT) { osalSysUnlock(); break; } -- cgit v1.2.3