Microblaze: Add a port optimised task selection implementation to the Microblaze port.

Windows port:  Add code to ensure Windows threads are truely suspended before resuming another thread.
Typo correction to the task notification standard demo task.
Correct case of some include file names to fix build issues on Linux.
This commit is contained in:
Richard Barry 2015-06-24 15:10:03 +00:00
parent cfb8223232
commit 8a1450effc
32 changed files with 156 additions and 4410 deletions

View file

@ -365,6 +365,7 @@ static void prvProcessSimulatedInterrupts( void )
uint32_t ulSwitchRequired, i;
xThreadState *pxThreadState;
void *pvObjectList[ 2 ];
CONTEXT xContext;
/* Going to block on the mutex that ensured exclusive access to the simulated
interrupt objects, and the event that signals that a simulated interrupt
@ -426,6 +427,13 @@ void *pvObjectList[ 2 ];
pxThreadState = ( xThreadState *) *( ( size_t * ) pvOldCurrentTCB );
SuspendThread( pxThreadState->pvThread );
/* Ensure the thread is actually suspended by performing a
synchronous operation that can only complete when the thread is
actually suspended. The below code asks for dummy register
data. */
xContext.ContextFlags = CONTEXT_INTEGER;
( void ) GetThreadContext( pxThreadState->pvThread, &xContext );
/* Obtain the state of the task now selected to enter the
Running state. */
pxThreadState = ( xThreadState * ) ( *( size_t *) pxCurrentTCB );