]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Removed old config functions, replaced with the config macros
authoraa <devnull@localhost>
Thu, 9 Dec 2010 08:45:53 +0000 (09:45 +0100)
committeraa <devnull@localhost>
Thu, 9 Dec 2010 08:45:53 +0000 (09:45 +0100)
include/os_config_funcs.h
system/kernel/alarm.c
system/kernel/counter.c
system/kernel/event.c
system/kernel/init.c
system/kernel/resource.c
system/kernel/sched_table.c
system/kernel/task.c

index 4e0d3c1652284290b6ec83fb612b69491ebde887..5a437d76f0cf5365e092dc2f5a87ae3298d3cd22 100644 (file)
@@ -75,36 +75,20 @@ OsRomApplicationType *Os_CfgGetApplObj( ApplicationType application_id ) {
 }\r
 #endif\r
 \r
-/*-----------------------------------------------------------------*/\r
-int Os_CfgGetTaskCnt(void) {\r
-       return OS_TASK_CNT;\r
-}\r
 /*-----------------------------------------------------------------*/\r
 \r
 OsResourceType *Os_CfgGetResource( ResourceType resource ) {\r
        return &resource_list[resource];\r
 }\r
 \r
-int Os_CfgGetResourceCnt() {\r
-       return OS_RESOURCE_CNT;\r
-}\r
-\r
 /*-----------------------------------------------------------------*/\r
 \r
 OsCounterType *Os_CfgGetCounter(CounterType count_id) {\r
        return &counter_list[count_id];\r
 }\r
 \r
-uint32 Os_CfgGetCounterCnt(void ) {\r
-       return OS_COUNTER_CNT;\r
-//     return sizeof(counter_list)/sizeof(OsCounterType);\r
-}\r
 /*-----------------------------------------------------------------*/\r
 \r
-uint32 Os_CfgGetSchedCnt(  void ) {\r
-       return OS_SCHTBL_CNT;\r
-}\r
-\r
 OsSchTblType *Os_CfgGetSched( ScheduleTableType sched_id ) {\r
 #if (OS_SCHTBL_CNT!=0)\r
        if(sched_id < OS_SCHTBL_CNT) {\r
@@ -119,10 +103,6 @@ OsSchTblType *Os_CfgGetSched( ScheduleTableType sched_id ) {
 \r
 /*-----------------------------------------------------------------*/\r
 \r
-uint32 Os_CfgGetAlarmCnt(void) {\r
-       return OS_ALARM_CNT;\r
-}\r
-\r
 OsAlarmType *Os_CfgGetAlarmObj( AlarmType alarm_id ) {\r
 #if (OS_ALARM_CNT!=0)\r
        if( alarm_id < OS_ALARM_CNT) {\r
@@ -139,7 +119,7 @@ StatusType Os_CfgGetAlarmBase(AlarmType alarm_id, AlarmBaseRefType info) {
 \r
        StatusType rv = E_OK;\r
 \r
-       if( alarm_id >= Os_CfgGetAlarmCnt() ) {\r
+       if( alarm_id >= OS_ALARM_CNT ) {\r
                rv = E_OS_ID;\r
        } else {\r
 #if (OS_ALARM_CNT!=0)\r
index 900812f76a068ce2a936c62b959bcff4ea4c6f9c..e2cd7e7f75e905fe4187deb7b45c32724dbb0808 100644 (file)
@@ -22,7 +22,7 @@
 #define COUNTER_MAX(x)                         (x)->counter->alarm_base.maxallowedvalue\r
 #define COUNTER_MIN_CYCLE(x)   (x)->counter->alarm_base.mincycle\r
 #define ALARM_CHECK_ID(x)                              \\r
-       if( (x) > Os_CfgGetAlarmCnt()) { \\r
+       if( (x) > OS_ALARM_CNT) { \\r
                rv = E_OS_ID;                                   \\r
                goto err;                                               \\r
        }\r
@@ -304,5 +304,24 @@ void Os_AlarmCheck( OsCounterType *c_p ) {
        }\r
 }\r
 \r
+void Os_AlarmAutostart(void) {\r
+       int j;\r
+       for (j = 0; j < OS_ALARM_CNT; j++) {\r
+               OsAlarmType *alarmPtr;\r
+               alarmPtr = Os_CfgGetAlarmObj(j);\r
+               if (alarmPtr->autostartPtr != NULL) {\r
+                       const OsAlarmAutostartType *autoPtr = alarmPtr->autostartPtr;\r
+\r
+                       if (os_sys.appMode & autoPtr->appModeRef) {\r
+                               if (autoPtr->autostartType == ALARM_AUTOSTART_ABSOLUTE) {\r
+                                       SetAbsAlarm(j, autoPtr->alarmTime, autoPtr->cycleTime);\r
+                               } else {\r
+                                       SetRelAlarm(j, autoPtr->alarmTime, autoPtr->cycleTime);\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
 \r
 \r
index b17936cdaf983e4b79c958523b4c4a3968b95334..16ba4191a26bdbd1b96568b1945385dd27de5daf 100644 (file)
@@ -46,7 +46,7 @@ static inline struct OsScheduleTableSync *getSync( OsSchTblType *stblPtr ) {
 #endif\r
 \r
 \r
-#define IsCounterValid(_counterId)   ((_counterId) <= Os_CfgGetCounterCnt())\r
+#define IsCounterValid(_counterId)   ((_counterId) <= OS_COUNTER_CNT)\r
 \r
 /**\r
  *\r
@@ -72,7 +72,7 @@ StatusType IncrementCounter( CounterType counter_id ) {
        /* Check param */\r
        /** @req OS285 */\r
        if( ( cPtr->type != COUNTER_TYPE_SOFT ) ||\r
-               ( counter_id >= Os_CfgGetCounterCnt() ) ) {\r
+               ( counter_id >= OS_COUNTER_CNT ) ) {\r
                rv =  E_OS_ID;\r
                Irq_Restore(flags);\r
                goto err;\r
@@ -81,8 +81,12 @@ StatusType IncrementCounter( CounterType counter_id ) {
        /** @req OS286 */\r
        cPtr->val = Os_CounterAdd( cPtr->val, Os_CounterGetMaxValue(cPtr), 1 );\r
 \r
+#if OS_ALARM_CNT!=0\r
        Os_AlarmCheck(cPtr);\r
+#endif\r
+#if OS_SCHTBL_CNT!=0\r
        Os_SchTblCheck(cPtr);\r
+#endif\r
 \r
        Irq_Restore(flags);\r
 \r
@@ -193,9 +197,12 @@ void OsTick( void ) {
                cPtr->val = Os_CounterAdd( cPtr->val, Os_CounterGetMaxValue(cPtr), 1 );\r
 \r
        //      os_sys.tick = cPtr->val;\r
-\r
+#if OS_ALARM_CNT!=0\r
                Os_AlarmCheck(cPtr);\r
+#endif\r
+#if OS_SCHTBL_CNT!=0\r
                Os_SchTblCheck(cPtr);\r
+#endif\r
        }\r
 }\r
 \r
@@ -208,23 +215,33 @@ TickType GetOsTick( void ) {
  * Initialize alarms and schedule-tables for the counters\r
  */\r
 void Os_CounterInit( void ) {\r
-       OsCounterType *cPtr;\r
-       OsAlarmType *aPtr;\r
-       OsSchTblType *sPtr;\r
-\r
-       /* Add the alarms to counters */\r
-       for(int i=0; i < Os_CfgGetAlarmCnt(); i++ ) {\r
-               aPtr = Os_CfgGetAlarmObj(i);\r
-               cPtr = aPtr->counter;\r
-               SLIST_INSERT_HEAD(&cPtr->alarm_head,aPtr, alarm_list);\r
+#if OS_ALARM_CNT!=0\r
+       {\r
+               OsCounterType *cPtr;\r
+               OsAlarmType *aPtr;\r
+\r
+               /* Add the alarms to counters */\r
+               for (int i = 0; i < OS_ALARM_CNT; i++) {\r
+                       aPtr = Os_CfgGetAlarmObj(i);\r
+                       cPtr = aPtr->counter;\r
+                       SLIST_INSERT_HEAD(&cPtr->alarm_head, aPtr, alarm_list);\r
+               }\r
        }\r
+#endif\r
+\r
+#if OS_SCHTBL_CNT!=0\r
+       {\r
+               OsCounterType *cPtr;\r
+               OsSchTblType *sPtr;\r
 \r
-       /* Add the schedule tables to counters */\r
-       for(int i=0; i < Os_CfgGetSchedCnt(); i++ ) {\r
+               /* Add the schedule tables to counters */\r
+               for(int i=0; i < OS_SCHTBL_CNT; i++ ) {\r
 \r
-               sPtr = Os_CfgGetSched(i);\r
-               cPtr = sPtr->counter;\r
-               SLIST_INSERT_HEAD(&cPtr->sched_head, sPtr, sched_list);\r
+                       sPtr = Os_CfgGetSched(i);\r
+                       cPtr = sPtr->counter;\r
+                       SLIST_INSERT_HEAD(&cPtr->sched_head, sPtr, sched_list);\r
+               }\r
        }\r
+#endif\r
 }\r
 \r
index e022f2c588c27afba6dd5a026e5b8e56db17aa29..e7f07038faad28ca4a834779584d443590aa52e3 100644 (file)
@@ -107,7 +107,7 @@ StatusType SetEvent( TaskType TaskID, EventMaskType Mask ) {
 \r
        OS_DEBUG(D_EVENT,"# SetEvent %s\n",Os_TaskGetCurrent()->name);\r
 \r
-       if( TaskID  >= Os_CfgGetTaskCnt() ) {\r
+       if( TaskID  >= OS_TASK_CNT ) {\r
                rv = E_OS_ID;\r
                goto err;\r
        }\r
@@ -186,7 +186,7 @@ StatusType GetEvent( TaskType TaskId, EventMaskRefType Mask) {
        OsPcbType *dest_pcb;\r
        StatusType rv = E_OK;\r
 \r
-       if( TaskId  >= Os_CfgGetTaskCnt() ) {\r
+       if( TaskId  >= OS_TASK_CNT ) {\r
                rv = E_OS_ID;\r
                goto err;\r
        }\r
index 6cc513f0fff2231e8af7c7f6204573a7ad825769..8e313c2e28007eba33d8da3b982bcecf0f896dad 100644 (file)
@@ -107,14 +107,18 @@ void InitOS( void ) {
        os_sys.int_stack = int_stack.top + int_stack.size - 16;
 
        // Init counter.. with alarms and schedule tables
+#if OS_COUNTER_CNT!=0
        Os_CounterInit();
+#endif
+#if OS_SCHTBL_CNT!=0
        Os_SchTblInit();
+#endif
 
        // Put all tasks in the pcb list
        // Put the one that belong in the ready queue there
        // TODO: we should really hash on priority here to get speed, but I don't care for the moment
        // TODO: Isn't this just EXTENED tasks ???
-       for( i=0; i < Os_CfgGetTaskCnt(); i++) {
+       for( i=0; i < OS_TASK_CNT; i++) {
                tmp_pcb = os_get_pcb(i);
 
                assert(tmp_pcb->prio<=OS_TASK_PRIORITY_MAX);
@@ -154,23 +158,13 @@ static void os_start( void ) {
        }
 
        /* Alarm autostart */
-       for(int j=0; j < Os_CfgGetAlarmCnt(); j++ ) {
-               OsAlarmType *alarmPtr;
-               alarmPtr = Os_CfgGetAlarmObj(j);
-               if(alarmPtr->autostartPtr != NULL ) {
-                       const OsAlarmAutostartType *autoPtr = alarmPtr->autostartPtr;
-
-                       if( os_sys.appMode & autoPtr->appModeRef) {
-                               if( autoPtr->autostartType == ALARM_AUTOSTART_ABSOLUTE ) {
-                                       SetAbsAlarm(j,autoPtr->alarmTime, autoPtr->cycleTime);
-                               } else {
-                                       SetRelAlarm(j,autoPtr->alarmTime, autoPtr->cycleTime);
-                               }
-                       }
-               }
-       }
+#if OS_ALARM_CNT!=0
+       Os_AlarmAutostart();
+#endif
 
+#if OS_SCHTBL_CNT!=0
        Os_SchTblAutostart();
+#endif
 
        // Set up the systick interrupt
        {
index 3c832b75c92f010c17f41b9413e6325dbd72b8b0..d99e431bcef9505869458931d983c26b244e3224 100644 (file)
@@ -102,8 +102,8 @@ TODO:
  *\r
  */\r
 \r
-#define valid_standard_id() (rPtr->nr < Os_CfgGetResourceCnt()) //&& !(rPtr->type == RESOURCE_TYPE_INTERNAL) )\r
-#define valid_internal_id() (rPtr->nr < Os_CfgGetResourceCnt()) //&& (rPtr->type == RESOURCE_TYPE_INTERNAL) )\r
+#define valid_standard_id() (rPtr->nr < OS_RESOURCE_CNT) //&& !(rPtr->type == RESOURCE_TYPE_INTERNAL) )\r
+#define valid_internal_id() (rPtr->nr < OS_RESOURCE_CNT) //&& (rPtr->type == RESOURCE_TYPE_INTERNAL) )\r
 \r
 \r
 void Os_ResourceAlloc( OsResourceType *rPtr, OsPcbType *pcbPtr) {\r
@@ -318,11 +318,11 @@ void Os_ResourceInit( void ) {
         *\r
         * Note that this applies both internal and standard resources.\r
         * */\r
-       for( int i=0; i < Os_CfgGetResourceCnt(); i++) {\r
+       for( int i=0; i < OS_RESOURCE_CNT; i++) {\r
                rsrc_p = Os_CfgGetResource(i);\r
                topPrio = 0;\r
 \r
-               for( int pi = 0; pi < Os_CfgGetTaskCnt(); pi++) {\r
+               for( int pi = 0; pi < OS_TASK_CNT; pi++) {\r
 \r
                        pcb_p = os_get_pcb(pi);\r
 \r
index d1e6df2eeb51fe4eba7c9ecedb4f884b6e2e1c74..f1223779c6db9ad2188f064fdc905692a52872f1 100644 (file)
@@ -63,7 +63,7 @@
 // Cancel\r
 \r
 #define SCHED_CHECK_ID(x)                              \\r
-       if( (x) > Os_CfgGetSchedCnt()) { \\r
+       if( (x) > OS_SCHTBL_CNT) { \\r
                rv = E_OS_ID;                                   \\r
                goto err;                                               \\r
        }\r
@@ -565,7 +565,7 @@ void Os_SchTblCheck(OsCounterType *c_p) {
  */\r
 void Os_SchTblInit( void ) {\r
        OsSchTblType *s_p;\r
-       for( int i=0; i < Os_CfgGetSchedCnt();i++ ) {\r
+       for( int i=0; i < OS_SCHTBL_CNT;i++ ) {\r
                s_p = Os_CfgGetSched(i);\r
 \r
                ScheduleTableConsistenyCheck(s_p);\r
@@ -574,7 +574,7 @@ void Os_SchTblInit( void ) {
 \r
 void Os_SchTblAutostart( void ) {\r
 \r
-       for(int j=0; j < Os_CfgGetSchedCnt(); j++ ) {\r
+       for(int j=0; j < OS_SCHTBL_CNT; j++ ) {\r
                OsSchTblType *sPtr;\r
                sPtr = Os_CfgGetSched(j);\r
 \r
index fd0f0f1f58bcc64c24c036010906973f4da05849..f2696f5080b304fa127c9daf6dd6b063becbfd12 100644 (file)
@@ -23,7 +23,7 @@
 /** @req OS067 */\r
 \r
 _Bool os_pcb_pid_valid( OsPcbType *restrict pcb ) {\r
-       return ( pcb->pid > Os_CfgGetTaskCnt() ) ? 0 : 1;\r
+       return ( pcb->pid > OS_TASK_CNT ) ? 0 : 1;\r
 }\r
 /**\r
  * Start an extended task.\r
@@ -479,7 +479,7 @@ void Os_Arc_GetStackInfo( TaskType task, StackInfoType *s) {
 \r
 \r
 #define TASK_CHECK_ID(x)                               \\r
-       if( (x) > Os_CfgGetTaskCnt()) { \\r
+       if( (x) > OS_TASK_CNT) { \\r
                rv = E_OS_ID;                                   \\r
                goto err;                                               \\r
        }\r