diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2014-11-02 10:22:36 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2014-11-02 10:22:36 +0000 |
commit | a5454ca785c3f5862453ea0521fd919fcd32ce41 (patch) | |
tree | 2dc4e03ebd9f22dd642416f86d8e3769d55b94bb /os/hal | |
parent | bfb9a08f46f526cb8725a504a9c56cd2d229ce88 (diff) | |
download | ChibiOS-a5454ca785c3f5862453ea0521fd919fcd32ce41.tar.gz ChibiOS-a5454ca785c3f5862453ea0521fd919fcd32ce41.tar.bz2 ChibiOS-a5454ca785c3f5862453ea0521fd919fcd32ce41.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7458 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal')
-rw-r--r-- | os/hal/ports/STM32/LLD/mac_lld.c | 12 | ||||
-rw-r--r-- | os/hal/ports/STM32/LLD/mac_lld.h | 4 | ||||
-rw-r--r-- | os/hal/src/mac.c | 12 |
3 files changed, 15 insertions, 13 deletions
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;
}
|