#define configASSERT_DEFINED 1\r
#endif\r
\r
#define configASSERT_DEFINED 1\r
#endif\r
\r
-/* configPRECONDITION should be resolve to configASSERT.\r
+/* configPRECONDITION should be defined as configASSERT.\r
The CBMC proofs need a way to track assumptions and assertions.\r
A configPRECONDITION statement should express an implicit invariant or\r
assumption made. A configASSERT statement should express an invariant that must\r
The CBMC proofs need a way to track assumptions and assertions.\r
A configPRECONDITION statement should express an implicit invariant or\r
assumption made. A configASSERT statement should express an invariant that must\r
* Clears the bits specified by the ulBitsToClear bit mask in the notification\r
* value of the task referenced by xTask.\r
*\r
* Clears the bits specified by the ulBitsToClear bit mask in the notification\r
* value of the task referenced by xTask.\r
*\r
-* Set ulBitsToClear to to 0xffffffff (UINT_MAX on 32-bit architectures) to clear\r
+* Set ulBitsToClear to 0xffffffff (UINT_MAX on 32-bit architectures) to clear\r
* the notification value to 0. Set ulBitsToClear to 0 to query the task's\r
* notification value without clearing any bits.\r
*\r
* the notification value to 0. Set ulBitsToClear to 0 to query the task's\r
* notification value without clearing any bits.\r
*\r
/* Handle of the thread that executes the task. */\r
void *pvThread;\r
\r
/* Handle of the thread that executes the task. */\r
void *pvThread;\r
\r
- /* Event used to makes sure the thread does not execute past a yield point\r
+ /* Event used to make sure the thread does not execute past a yield point\r
between the call to SuspendThread() to suspend the thread and the\r
asynchronous SuspendThread() operation actually being performed. */\r
void *pvYieldEvent;\r
between the call to SuspendThread() to suspend the thread and the\r
asynchronous SuspendThread() operation actually being performed. */\r
void *pvYieldEvent;\r
xInsideInterrupt = pdFALSE;\r
WaitForMultipleObjects( sizeof( pvObjectList ) / sizeof( void * ), pvObjectList, TRUE, INFINITE );\r
\r
xInsideInterrupt = pdFALSE;\r
WaitForMultipleObjects( sizeof( pvObjectList ) / sizeof( void * ), pvObjectList, TRUE, INFINITE );\r
\r
- /* Cannot be in a critical section to get here. Tasks that exist a\r
+ /* Cannot be in a critical section to get here. Tasks that exit a\r
critical section will block on a yield mutex to wait for an interrupt to\r
process if an interrupt was set pending while the task was inside the\r
critical section. xInsideInterrupt prevents interrupts that contain\r
critical section will block on a yield mutex to wait for an interrupt to\r
process if an interrupt was set pending while the task was inside the\r
critical section. xInsideInterrupt prevents interrupts that contain\r
\r
/* Ensure the thread is actually suspended by performing a\r
synchronous operation that can only complete when the thread is\r
\r
/* Ensure the thread is actually suspended by performing a\r
synchronous operation that can only complete when the thread is\r
- actually suspended. The below code asks for dummy register\r
- data. Experimentation shows that these two lines don't appear\r
+ actually suspended. The code below asks for dummy register\r
+ data. Experimentation shows that these two lines don't appear\r
to do anything now, but according to\r
https://devblogs.microsoft.com/oldnewthing/20150205-00/?p=44743\r
to do anything now, but according to\r
https://devblogs.microsoft.com/oldnewthing/20150205-00/?p=44743\r
- they do - so as they do not harm (slight run-time hit) they have\r
- been left it. */\r
+ they do - so as they do not harm (slight run-time hit). */\r
xContext.ContextFlags = CONTEXT_INTEGER;\r
( void ) GetThreadContext( pxThreadState->pvThread, &xContext );\r
\r
xContext.ContextFlags = CONTEXT_INTEGER;\r
( void ) GetThreadContext( pxThreadState->pvThread, &xContext );\r
\r
ReleaseMutex( pvInterruptEventMutex );\r
if( ulCriticalNesting == portNO_CRITICAL_NESTING )\r
{\r
ReleaseMutex( pvInterruptEventMutex );\r
if( ulCriticalNesting == portNO_CRITICAL_NESTING )\r
{\r
- /* An interrupt was pended so ensure to block to alow it to\r
+ /* An interrupt was pended so ensure to block to allow it to\r
execute. In most cases the (simulated) interrupt will have\r
executed before the next line is reached - so this is just to make\r
sure. */\r
execute. In most cases the (simulated) interrupt will have\r
executed before the next line is reached - so this is just to make\r
sure. */\r
pvInterruptEventMutex is released as it waits on both\r
pvInterruptEventMutex and pvInterruptEvent.\r
pvInterruptEvent is only set when the simulated\r
pvInterruptEventMutex is released as it waits on both\r
pvInterruptEventMutex and pvInterruptEvent.\r
pvInterruptEvent is only set when the simulated\r
- interrupt is pendeded if the interrupt is pended\r
+ interrupt is pended if the interrupt is pended\r
from outside a critical section - hence it is set\r
here. */\r
SetEvent( pvInterruptEvent );\r
from outside a critical section - hence it is set\r
here. */\r
SetEvent( pvInterruptEvent );\r