]> rtime.felk.cvut.cz Git - arc.git/blobdiff - include/isr.h
Merge branch 'mikulka' of git@rtime.felk.cvut.cz:arc into mikulka
[arc.git] / include / isr.h
index 276277a7fd4e9724e3fbd6dde494cc50e826dc97..148dc3a4c6633f2670f1f71800bae4859bacd3ef 100644 (file)
 #define ISR_TYPE_2                     1\r
 \r
 /* ----------------------------[macro]---------------------------------------*/\r
+#if 0\r
+//#ifdef CFG_DRIVERS_USE_CONFIG_ISRS\r
+#define ISR_INSTALL_ISR2( _name, _entry, _vector, _priority, _app )\r
+#define ISR_INSTALL_ISR1(_name,_entry, _vector,_priority,_app)\r
+#else\r
 #define ISR_DECLARE_ISR2(_name, _entry, _unique, _vector,_priority,_app )        \\r
          static const OsIsrConstType _entry ## _unique = { \\r
                        .vector = _vector,   \\r
        do { \\r
          static const OsIsrConstType _entry ## _unique = { \\r
                        .vector = _vector,   \\r
-                       .type = ISR_TYPE_2, \\r
+                       .type = ISR_TYPE_1, \\r
                        .priority = _priority,      \\r
                        .entry = _entry,      \\r
                        .name = _name,      \\r
 #define ISR_INSTALL_ISR1(_name,_entry, _vector,_priority,_app)        \\r
                _ISR_INSTALL_ISR1(_name,_entry, __LINE__, _vector,_priority,_app)\r
 \r
-\r
+#endif\r
 \r
 /* ----------------------------[typedef]-------------------------------------*/\r
 \r
@@ -185,11 +190,15 @@ typedef struct OsIsrConst {
 /*\r
  *\r
  */\r
-typedef struct {\r
+typedef struct OsIsrVar{\r
        ISRType id;\r
 //     OsIsrStackType          stack;\r
        int                                     state;\r
        const OsIsrConstType *constPtr;\r
+#if defined(CFG_ARM_CR4)\r
+       int16_t activeVector;\r
+#endif\r
+\r
        /* List of resource held by this ISR */\r
        TAILQ_HEAD(,OsResource) resourceHead;\r
 } OsIsrVarType;\r
@@ -205,13 +214,21 @@ void Os_IsrInit( void );
 ISRType Os_IsrAdd( const OsIsrConstType * restrict isrPtr );\r
 void Os_IsrGetStackInfo( OsIsrStackType *stack );\r
 void *Os_Isr( void *stack, int16_t vector);\r
+#if defined(CFG_ARM_CR4)\r
+void *Os_Isr_cr4( void *stack, int16_t virtualVector, int16_t vector );\r
+#endif\r
 #if defined(CFG_ARM_CM3)\r
 void Os_Isr_cm3( int16_t vector );\r
 void TailChaining(void *stack);\r
 #endif\r
 \r
 static inline const OsIsrVarType *Os_IsrGet( ISRType id ) {\r
+#if OS_ISR_CNT != 0\r
        return &Os_IsrVarList[id];\r
+#else\r
+       (void)id;\r
+       return NULL;\r
+#endif\r
 }\r
 \r
 static inline ApplicationType Os_IsrGetApplicationOwner( ISRType id ) {\r