git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@430 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2008-09-11 15:03:25 +00:00
parent fceb645e35
commit a474010e54
13 changed files with 31 additions and 37 deletions

View File

@ -102,10 +102,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -102,10 +102,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -102,10 +102,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -102,7 +102,6 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT

View File

@ -102,10 +102,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -102,10 +102,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -102,10 +102,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -102,10 +102,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -103,10 +103,9 @@
/** Configuration option: if specified then the
* \p chThdGetExitEventSource() function is included in the kernel.
* @deprecated
* @note requires \p CH_USE_MESSAGES.
* @note requires \p CH_USE_EVENTS.*/
//#define CH_USE_EXIT_EVENT
#define CH_USE_EXIT_EVENT
/** Configuration option: if specified then the I/O queues APIs are included
* in the kernel.*/

View File

@ -38,10 +38,11 @@
* <li>No static setup at compile time, there is no need to configure a maximum
* number of all the above resources.</li>
* <li>No *need* for a memory allocator, all the kernel structures are static
* and declaratively allocated. A memory allocator can be used in your
* application but it is not required by the ChibiOS/RT itself.</li>
* and declaratively allocated.</li>
* <li>Threads, Semaphores, Event Sources, Virtual Timers creation/deletion at
* runtime.</li>
* <li>Optional, thread safe, Heap Allocator subsystem.</li>
* <li>Optional, thread safe, Memory Pools Allocator subsystem.</li>
* <li>Blocking and non blocking I/O channels with timeout and events generation
* capability.</li>
* <li>Minimal system requirements: about 8KiB ROM with all options enabled and

View File

@ -93,13 +93,13 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process,
code to the Thread structure.
- FIX: Corrected the wrong definition of the chThdResumeI() macro.
- FIX: The API chSemWaitTimeout() was missing in the documentation.
- CHANGE: Modified the chMtxUnlock() and chMtxUnlockS() APIs to return the
pointer to the released mutex instead of void.
- CHANGE: Now the chThdResume() asserts that the thread is in PRSUSPEND state
rather than test it.
- CHANGE: Removed the CH_USE_TERMINATE, CH_USE_SLEEP, CH_USE_SUSPEND and
CH_USE_RESUME configuration options in order to make the chconf.h file
simpler. The related functions are very small and almost always required.
- CHANGE: The CH_USE_EXIT_EVENT configuration option and related functions are
now deprecated.
- CHANGE: The P_MSGBYPRIO thread option has been removed, now the threads
always serve messages in priority order if the CH_USE_MESSAGES_PRIORITY
configuration option is active.

View File

@ -149,8 +149,8 @@ bool_t chMtxTryLockS(Mutex *mp) {
/**
* Unlocks the next owned mutex in reverse lock order.
*/
void chMtxUnlock(void) {
Mutex *mp;
Mutex *chMtxUnlock(void) {
Mutex *ump, *mp;
chSysLock();
@ -158,16 +158,16 @@ void chMtxUnlock(void) {
"chmtx.c, chMtxUnlock()");
/* remove the top Mutex from the Threads's owned mutexes list */
mp = currp->p_mtxlist;
currp->p_mtxlist = mp->m_next;
ump = currp->p_mtxlist;
currp->p_mtxlist = ump->m_next;
/* mark the Mutex as not owned */
mp->m_owner = NULL;
ump->m_owner = NULL;
/*
* If a thread is waiting on the mutex then the hard part begins.
*/
if (chMtxQueueNotEmptyS(mp)) {
if (chMtxQueueNotEmptyS(ump)) {
/* get the highest priority thread waiting for the unlocked mutex */
Thread *tp = fifo_remove(&mp->m_queue);
Thread *tp = fifo_remove(&ump->m_queue);
/*
* Recalculates the optimal thread priority by scanning the owned mutexes list.
*/
@ -187,6 +187,7 @@ void chMtxUnlock(void) {
chSchWakeupS(tp, RDY_OK);
}
chSysUnlock();
return ump;
}
/**
@ -195,8 +196,8 @@ void chMtxUnlock(void) {
* block.
* @note This function does not reschedule internally.
*/
void chMtxUnlockS(void) {
Mutex *mp;
Mutex *chMtxUnlockS(void) {
Mutex *ump, *mp;
chDbgAssert((currp->p_mtxlist != NULL) && (currp->p_mtxlist->m_owner == currp),
"chmtx.c, chMtxUnlockS()");
@ -204,14 +205,14 @@ void chMtxUnlockS(void) {
/*
* Removes the top Mutex from the owned mutexes list and marks it as not owned.
*/
mp = currp->p_mtxlist;
currp->p_mtxlist = mp->m_next;
mp->m_owner = NULL;
ump = currp->p_mtxlist;
currp->p_mtxlist = ump->m_next;
ump->m_owner = NULL;
/*
* If a thread is waiting on the mutex then the hard part begins.
*/
if (chMtxQueueNotEmptyS(mp)) {
Thread *tp = fifo_remove(&mp->m_queue);
if (chMtxQueueNotEmptyS(ump)) {
Thread *tp = fifo_remove(&ump->m_queue);
/*
* Recalculates the optimal thread priority by scanning the owned mutexes list.
*/
@ -225,6 +226,7 @@ void chMtxUnlockS(void) {
currp->p_prio = newprio;
chSchReadyI(tp);
}
return ump;
}
/**

View File

@ -46,8 +46,8 @@ extern "C" {
void chMtxLockS(Mutex *mp);
bool_t chMtxTryLock(Mutex *mp);
bool_t chMtxTryLockS(Mutex *mp);
void chMtxUnlock(void);
void chMtxUnlockS(void);
Mutex *chMtxUnlock(void);
Mutex *chMtxUnlockS(void);
void chMtxUnlockAll(void);
#ifdef __cplusplus
}