]> git.sur5r.net Git - freertos/blobdiff - Source/portable/GCC/PPC405/portmacro.h
More work in progress (PPC).
[freertos] / Source / portable / GCC / PPC405 / portmacro.h
index 478c1174e354193a276a0b7be62f3d607829a0d0..5b6be119ae65565c1894557906782d24364859a2 100644 (file)
@@ -43,6 +43,8 @@
 #ifndef PORTMACRO_H\r
 #define PORTMACRO_H\r
 \r
+#include "xexception_l.h"\r
+\r
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
@@ -75,22 +77,25 @@ extern "C" {
 #endif\r
 /*-----------------------------------------------------------*/        \r
 \r
+#define portCRITICAL_NESTING_IN_TCB            1\r
+\r
 /* Interrupt control macros. */\r
-#define portDISABLE_INTERRUPTS()       \r
-#define portENABLE_INTERRUPTS()                \r
+#define portDISABLE_INTERRUPTS()               XExc_mDisableExceptions( XEXC_NON_CRITICAL );\r
+#define portENABLE_INTERRUPTS()                        XExc_mEnableExceptions( XEXC_NON_CRITICAL );\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* Critical section macros. */\r
-void vPortEnterCritical( void );\r
-void vPortExitCritical( void );\r
-#define portENTER_CRITICAL()                                                                   \r
-#define portEXIT_CRITICAL()\r
+void vTaskEnterCritical( void );\r
+void vTaskExitCritical( void );\r
+#define portENTER_CRITICAL()                   vTaskEnterCritical()\r
+#define portEXIT_CRITICAL()                            vTaskExitCritical()\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
 /* Task utilities. */\r
 void vPortYield( void );\r
-#define portYIELD() asm volatile ( "SC" )\r
+#define portYIELD() asm volatile ( "SC \n\t NOP" )\r
 #define portYIELD_FROM_ISR()\r
 /*-----------------------------------------------------------*/\r
 \r