From c8dff54685e5e904f7e7c6382144ac22035aad10 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Mon, 26 Aug 2013 13:07:19 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6226 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/rt/include/chsys.h | 4 ++-- os/rt/src/chsys.c | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'os/rt') diff --git a/os/rt/include/chsys.h b/os/rt/include/chsys.h index 678770299..270772323 100644 --- a/os/rt/include/chsys.h +++ b/os/rt/include/chsys.h @@ -218,8 +218,8 @@ extern "C" { void chSysInit(void); void chSysHalt(const char *reason); void chSysTimerHandlerI(void); - syssts_t chSysGetAndLockX(void); - void chSysRestoreLockX(syssts_t sts); + syssts_t chSysGetStatusAndLockX(void); + void chSysRestoreLockAndRescheduleX(syssts_t sts); #if CH_PORT_SUPPORTS_RT bool chSysIsCounterWithinX(rtcnt_t cnt, rtcnt_t start, rtcnt_t end); void chSysPolledDelayX(rtcnt_t cycles); diff --git a/os/rt/src/chsys.c b/os/rt/src/chsys.c index 5279ef518..19964ec13 100644 --- a/os/rt/src/chsys.c +++ b/os/rt/src/chsys.c @@ -227,7 +227,7 @@ void chSysTimerHandlerI(void) { * * @xclass */ -syssts_t chSysGetAndLockX(void) { +syssts_t chSysGetStatusAndLockX(void) { syssts_t sts = port_get_irq_status(); if (port_irq_enabled(sts)) { @@ -246,13 +246,15 @@ syssts_t chSysGetAndLockX(void) { * * @xclass */ -void chSysRestoreLockX(syssts_t sts) { +void chSysRestoreLockAndRescheduleX(syssts_t sts) { if (port_irq_enabled(sts)) { if (port_is_isr_context()) chSysUnlockFromISR(); - else + else { + chSchRescheduleS(); chSysUnlock(); + } } } -- cgit v1.2.3