}\r
/*-----------------------------------------------------------*/\r
\r
-unsigned portBASE_TYPE uxPortSetInterruptMaskFromISR( void )\r
+void vPortYieldHandler( void )\r
{\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
+unsigned portLONG ulSavedInterruptMask;\r
\r
-void vPortClearInterruptMaskFromISR( unsigned portBASE_TYPE uxSavedInterruptMask )\r
-{\r
-}\r
-\r
-void vPortClearYield( void )\r
-{\r
/* -32 as we are using the high word of the 64bit mask. */\r
MCF_INTC0_INTFRCH &= ~( 1UL << ( configYIELD_INTERRUPT_VECTOR - 32UL ) );\r
+\r
+ ulSavedInterruptMask = portSET_INTERRUPT_MASK_FROM_ISR();\r
+ vTaskSwitchContext();\r
+ portCLEAR_INTERRUPT_MASK_FROM_ISR( ulSavedInterruptMask );\r
}\r
\r
\r
/* Yield interrupt. */\r
__cs3_isr_interrupt_127:\r
portSAVE_CONTEXT\r
- jsr vPortClearYield\r
- jsr vTaskSwitchContext\r
+ jsr vPortYieldHandler\r
portRESTORE_CONTEXT\r
\r
/********************************************************************/\r
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )\r
/*-----------------------------------------------------------*/\r
unsigned portLONG ulPortSetIPL( unsigned portLONG );\r
-#define portDISABLE_INTERRUPTS() ulPortSetIPL( configKERNEL_INTERRUPT_PRIORITY )\r
+#define portDISABLE_INTERRUPTS() ulPortSetIPL( configMAX_SYSCALL_INTERRUPT_PRIORITY )\r
#define portENABLE_INTERRUPTS() ulPortSetIPL( 0 )\r
\r
\r
\r
extern unsigned portBASE_TYPE uxPortSetInterruptMaskFromISR( void );\r
extern void vPortClearInterruptMaskFromISR( unsigned portBASE_TYPE );\r
-#define portSET_INTERRUPT_MASK_FROM_ISR() uxPortSetInterruptMaskFromISR()\r
-#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusRegister ) vPortClearInterruptMaskFromISR( uxSavedStatusRegister )\r
+#define portSET_INTERRUPT_MASK_FROM_ISR() ulPortSetIPL( configMAX_SYSCALL_INTERRUPT_PRIORITY )\r
+#define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusRegister ) ulPortSetIPL( uxSavedStatusRegister )\r
\r
/*-----------------------------------------------------------*/\r
\r