Mercurial > flash_v2
comparison packages/compat/uitron/current/src/uit_objs.cxx @ 2:443894e2e912 ecos-v1_2_1-release
Block commit of eCos version 1.2.1
| author | jlarmour |
|---|---|
| date | Tue, 11 May 1999 12:24:34 +0000 |
| parents | 3111d98ba7b3 |
| children | f10165814f1e |
comparison
equal
deleted
inserted
replaced
| 1:72f549f0d891 | 2:443894e2e912 |
|---|---|
| 1 //=========================================================================== | 1 //=========================================================================== |
| 2 // | 2 // |
| 3 // uit_objs.cxx | 3 // uit_objs.cxx |
| 4 // | 4 // |
| 5 // uITRON static objects | 5 // uITRON static objects |
| 6 // | 6 // |
| 7 //=========================================================================== | 7 //=========================================================================== |
| 8 //####COPYRIGHTBEGIN#### | 8 //####COPYRIGHTBEGIN#### |
| 9 // | 9 // |
| 10 // ------------------------------------------- | 10 // ------------------------------------------- |
| 20 // | 20 // |
| 21 // The Original Code is eCos - Embedded Cygnus Operating System, released | 21 // The Original Code is eCos - Embedded Cygnus Operating System, released |
| 22 // September 30, 1998. | 22 // September 30, 1998. |
| 23 // | 23 // |
| 24 // The Initial Developer of the Original Code is Cygnus. Portions created | 24 // The Initial Developer of the Original Code is Cygnus. Portions created |
| 25 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved. | 25 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved. |
| 26 // ------------------------------------------- | 26 // ------------------------------------------- |
| 27 // | 27 // |
| 28 //####COPYRIGHTEND#### | 28 //####COPYRIGHTEND#### |
| 29 //=========================================================================== | 29 //=========================================================================== |
| 30 //#####DESCRIPTIONBEGIN#### | 30 //#####DESCRIPTIONBEGIN#### |
| 31 // | 31 // |
| 32 // Author(s): hmt | 32 // Author(s): hmt |
| 33 // Contributors: hmt | 33 // Contributors: hmt |
| 34 // Date: 1998-03-13 | 34 // Date: 1998-03-13 |
| 35 // Purpose: uITRON static system objects | 35 // Purpose: uITRON static system objects |
| 36 // Description: | 36 // Description: |
| 37 // | 37 // |
| 38 //####DESCRIPTIONEND#### | 38 //####DESCRIPTIONEND#### |
| 39 // | 39 // |
| 40 //=========================================================================== | 40 //=========================================================================== |
| 41 | 41 |
| 47 #include <cyg/compat/uitron/uit_objs.hxx> | 47 #include <cyg/compat/uitron/uit_objs.hxx> |
| 48 // declarations of the objects | 48 // declarations of the objects |
| 49 // we define below, and everything | 49 // we define below, and everything |
| 50 // we need to specify them. | 50 // we need to specify them. |
| 51 | 51 |
| 52 #include <cyg/hal/hal_arch.h> // for CYGNUM_HAL_STACK_SIZE_TYPICAL | |
| 53 | |
| 52 // ------------------------------------------------------------------------ | 54 // ------------------------------------------------------------------------ |
| 53 // Mboxes have no initializer. | 55 // Mboxes have no initializer. |
| 54 #ifdef CYGPKG_UITRON_MBOXES | 56 #ifdef CYGPKG_UITRON_MBOXES |
| 55 #if 0 < CYGNUM_UITRON_MBOXES | 57 #if 0 < CYGNUM_UITRON_MBOXES |
| 56 Cyg_Mbox CYG_UITRON_DECL( MBOXES ); | 58 Cyg_Mbox CYG_UITRON_DECL( MBOXES ); |
| 57 #ifdef CYGPKG_UITRON_MBOXES_CREATE_DELETE | 59 #ifdef CYGPKG_UITRON_MBOXES_CREATE_DELETE |
| 58 Cyg_Mbox *CYG_UITRON_DECL_PTRS( MBOXES ); | 60 Cyg_Mbox *CYG_UITRON_DECL_PTRS( MBOXES ); |
| 59 #endif | 61 #endif |
| 60 #endif | 62 #endif |
| 61 #endif // CYGPKG_UITRON_MBOXES | 63 #endif // CYGPKG_UITRON_MBOXES |
| 62 | 64 |
| 63 // ------------------------------------------------------------------------ | 65 // ------------------------------------------------------------------------ |
| 64 // Flags have no initializer. | 66 // Flags have no initializer. |
| 65 #ifdef CYGPKG_UITRON_FLAGS | 67 #ifdef CYGPKG_UITRON_FLAGS |
| 66 #if 0 < CYGNUM_UITRON_FLAGS | 68 #if 0 < CYGNUM_UITRON_FLAGS |
| 67 Cyg_Flag CYG_UITRON_DECL( FLAGS ); | 69 Cyg_Flag CYG_UITRON_DECL( FLAGS ); |
| 68 #ifdef CYGPKG_UITRON_FLAGS_CREATE_DELETE | 70 #ifdef CYGPKG_UITRON_FLAGS_CREATE_DELETE |
| 69 Cyg_Flag *CYG_UITRON_DECL_PTRS( FLAGS ); | 71 Cyg_Flag *CYG_UITRON_DECL_PTRS( FLAGS ); |
| 70 #endif | 72 #endif |
| 71 #endif | 73 #endif |
| 72 #endif // CYGPKG_UITRON_FLAGS | 74 #endif // CYGPKG_UITRON_FLAGS |
| 73 | 75 |
| 74 // ------------------------------------------------------------------------ | 76 // ------------------------------------------------------------------------ |
| 79 | 81 |
| 80 #ifndef CYGNUM_UITRON_SEMAS | 82 #ifndef CYGNUM_UITRON_SEMAS |
| 81 #error You must define CYGNUM_UITRON_SEMAS | 83 #error You must define CYGNUM_UITRON_SEMAS |
| 82 #endif | 84 #endif |
| 83 | 85 |
| 84 Cyg_Counting_Semaphore2 CYG_UITRON_DECL( SEMAS ) | 86 Cyg_Counting_Semaphore2 CYG_UITRON_DECL( SEMAS ) |
| 85 | 87 |
| 86 #ifdef CYGDAT_UITRON_SEMA_INITIALIZERS | 88 #ifdef CYGDAT_UITRON_SEMA_INITIALIZERS |
| 87 // a Macro to ease the construction: | 89 // a Macro to ease the construction: |
| 88 #define CYG_UIT_SEMA( _count_ ) Cyg_Counting_Semaphore2( (cyg_count32)(_count_) ) | 90 #define CYG_UIT_SEMA( _count_ ) Cyg_Counting_Semaphore2( (cyg_count32)(_count_) ) |
| 89 #ifdef CYGPKG_UITRON_SEMAS_CREATE_DELETE | 91 #ifdef CYGPKG_UITRON_SEMAS_CREATE_DELETE |
| 115 #endif | 117 #endif |
| 116 #ifndef CYGNUM_UITRON_TASKS | 118 #ifndef CYGNUM_UITRON_TASKS |
| 117 #error You must define CYGNUM_UITRON_TASKS | 119 #error You must define CYGNUM_UITRON_TASKS |
| 118 #endif | 120 #endif |
| 119 | 121 |
| 120 // declare the symbols used in the initializer | |
| 121 CYGDAT_UITRON_TASK_EXTERNS | |
| 122 | |
| 123 // a Macro to ease the construction: | 122 // a Macro to ease the construction: |
| 124 // "name", priority, proc, stackbase, stacksize | 123 // "name", priority, proc, stackbase, stacksize |
| 125 #define CYG_UIT_TASK( _name_, _prio_, _func_, _sb_, _ss_ ) \ | 124 #define CYG_UIT_TASK( _name_, _prio_, _func_, _sb_, _ss_ ) \ |
| 126 Cyg_Thread( \ | 125 Cyg_Thread( \ |
| 127 (CYG_ADDRWORD)(_prio_), \ | 126 (CYG_ADDRWORD)(_prio_), \ |
| 128 (_func_), \ | 127 (_func_), \ |
| 129 (CYG_ADDRWORD)0, \ | 128 (CYG_ADDRWORD)0, \ |
| 130 _name_, \ | 129 _name_, \ |
| 131 (CYG_ADDRESS)(_sb_), \ | 130 (CYG_ADDRESS)(_sb_), \ |
| 132 (cyg_ucount32)(_ss_) ) | 131 (cyg_ucount32)(_ss_) ) |
| 133 | 132 |
| 134 #ifdef CYGPKG_UITRON_TASKS_CREATE_DELETE | 133 #ifdef CYGPKG_UITRON_TASKS_CREATE_DELETE |
| 135 #define CYG_UIT_TASK_NOEXS( _name_, _sb_, _ss_ ) \ | 134 #define CYG_UIT_TASK_NOEXS( _name_, _sb_, _ss_ ) \ |
| 136 Cyg_Thread( \ | 135 Cyg_Thread( \ |
| 137 (CYG_ADDRWORD)(CYG_SCHED_DEFAULT_INFO), \ | 136 (CYG_ADDRWORD)(CYG_SCHED_DEFAULT_INFO), \ |
| 138 (cyg_thread_entry *)(0), \ | 137 (cyg_thread_entry *)(0), \ |
| 139 (CYG_ADDRWORD)0, \ | 138 (CYG_ADDRWORD)0, \ |
| 140 _name_, \ | 139 _name_, \ |
| 141 (CYG_ADDRESS)(_sb_), \ | 140 (CYG_ADDRESS)(_sb_), \ |
| 142 (cyg_ucount32)(_ss_) ) | 141 (cyg_ucount32)(_ss_) ) |
| 143 #endif | 142 #endif |
| 144 | 143 |
| 145 Cyg_Thread CYG_UITRON_DECL( TASKS ) = | 144 #ifdef CYGNUM_HAL_STACK_SIZE_TYPICAL |
| 145 # ifdef CYGNUM_UITRON_STACK_SIZE | |
| 146 # if CYGNUM_UITRON_STACK_SIZE < CYGNUM_HAL_STACK_SIZE_TYPICAL | |
| 147 | |
| 148 // then override the configured stack size | |
| 149 # undef CYGNUM_UITRON_STACK_SIZE | |
| 150 # define CYGNUM_UITRON_STACK_SIZE CYGNUM_HAL_STACK_SIZE_TYPICAL | |
| 151 | |
| 152 # endif // CYGNUM_UITRON_STACK_SIZE < CYGNUM_HAL_STACK_SIZE_TYPICAL | |
| 153 # endif // CYGNUM_UITRON_STACK_SIZE | |
| 154 #endif // CYGNUM_HAL_STACK_SIZE_TYPICAL | |
| 155 | |
| 156 // declare the symbols used in the initializer | |
| 157 CYGDAT_UITRON_TASK_EXTERNS | |
| 158 | |
| 159 Cyg_Thread CYG_UITRON_DECL( TASKS ) = | |
| 146 { | 160 { |
| 147 CYGDAT_UITRON_TASK_INITIALIZERS | 161 CYGDAT_UITRON_TASK_INITIALIZERS |
| 148 }; | 162 }; |
| 149 | 163 |
| 150 #undef CYG_UIT_TASK | 164 #undef CYG_UIT_TASK |
| 157 cyg_priority | 171 cyg_priority |
| 158 cyg_uitron_task_initial_priorities[ CYG_UITRON_NUM( TASKS ) ]; | 172 cyg_uitron_task_initial_priorities[ CYG_UITRON_NUM( TASKS ) ]; |
| 159 #endif | 173 #endif |
| 160 | 174 |
| 161 #ifdef CYGPKG_UITRON_TASKS_CREATE_DELETE | 175 #ifdef CYGPKG_UITRON_TASKS_CREATE_DELETE |
| 162 Cyg_Thread *CYG_UITRON_DECL_PTRS( TASKS ); | 176 Cyg_Thread *CYG_UITRON_DECL_PTRS( TASKS ); |
| 163 #endif | 177 #endif |
| 164 | 178 |
| 165 // ------------------------------------------------------------------------ | 179 // ------------------------------------------------------------------------ |
| 166 // fixed memory pools MUST be initialized, IF you have some. | 180 // fixed memory pools MUST be initialized, IF you have some. |
| 167 #ifdef CYGPKG_UITRON_MEMPOOLFIXED | 181 #ifdef CYGPKG_UITRON_MEMPOOLFIXED |
| 190 // should not be too inefficient | 204 // should not be too inefficient |
| 191 #define CYG_UIT_MEMPOOLFIXED_NOEXS( _a_, _s_ ) Cyg_Mempool_Fixed( \ | 205 #define CYG_UIT_MEMPOOLFIXED_NOEXS( _a_, _s_ ) Cyg_Mempool_Fixed( \ |
| 192 (cyg_uint8 *)(_a_), (cyg_int32)(_s_), (CYG_ADDRWORD) ((~7)&((_s_)/2)) ) | 206 (cyg_uint8 *)(_a_), (cyg_int32)(_s_), (CYG_ADDRWORD) ((~7)&((_s_)/2)) ) |
| 193 #endif | 207 #endif |
| 194 | 208 |
| 195 Cyg_Mempool_Fixed CYG_UITRON_DECL( MEMPOOLFIXED ) = | 209 Cyg_Mempool_Fixed CYG_UITRON_DECL( MEMPOOLFIXED ) = |
| 196 { | 210 { |
| 197 CYGDAT_UITRON_MEMPOOLFIXED_INITIALIZERS | 211 CYGDAT_UITRON_MEMPOOLFIXED_INITIALIZERS |
| 198 }; | 212 }; |
| 199 #undef CYG_UIT_MEMPOOLFIXED | 213 #undef CYG_UIT_MEMPOOLFIXED |
| 200 #ifdef CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE | 214 #ifdef CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE |
| 201 #undef CYG_UIT_MEMPOOLFIXED_NOEXS | 215 #undef CYG_UIT_MEMPOOLFIXED_NOEXS |
| 202 #endif | 216 #endif |
| 203 | 217 |
| 204 #ifdef CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE | 218 #ifdef CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE |
| 205 Cyg_Mempool_Fixed *CYG_UITRON_DECL_PTRS( MEMPOOLFIXED ); | 219 Cyg_Mempool_Fixed *CYG_UITRON_DECL_PTRS( MEMPOOLFIXED ); |
| 206 #endif | 220 #endif |
| 207 #endif // do we have fixed memory pools at all? | 221 #endif // do we have fixed memory pools at all? |
| 208 #endif // CYGPKG_UITRON_MEMPOOLFIXED | 222 #endif // CYGPKG_UITRON_MEMPOOLFIXED |
| 209 | 223 |
| 210 // ------------------------------------------------------------------------ | 224 // ------------------------------------------------------------------------ |
| 243 #ifdef CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE | 257 #ifdef CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE |
| 244 #undef CYG_UIT_MEMPOOLVAR_NOEXS | 258 #undef CYG_UIT_MEMPOOLVAR_NOEXS |
| 245 #endif | 259 #endif |
| 246 | 260 |
| 247 #ifdef CYGPKG_UITRON_MEMPOOLVAR_CREATE_DELETE | 261 #ifdef CYGPKG_UITRON_MEMPOOLVAR_CREATE_DELETE |
| 248 Cyg_Mempool_Variable *CYG_UITRON_DECL_PTRS( MEMPOOLVAR ); | 262 Cyg_Mempool_Variable *CYG_UITRON_DECL_PTRS( MEMPOOLVAR ); |
| 249 #endif | 263 #endif |
| 250 #endif // do we have variable memory pools at all? | 264 #endif // do we have variable memory pools at all? |
| 251 #endif // CYGPKG_UITRON_MEMPOOLVAR | 265 #endif // CYGPKG_UITRON_MEMPOOLVAR |
| 252 | 266 |
| 253 // ------------------------------------------------------------------------ | 267 // ------------------------------------------------------------------------ |
| 275 // declare the symbols used in the initializer | 289 // declare the symbols used in the initializer |
| 276 CYGDAT_UITRON_CYCLIC_EXTERNS | 290 CYGDAT_UITRON_CYCLIC_EXTERNS |
| 277 | 291 |
| 278 #endif // have externs or initializers | 292 #endif // have externs or initializers |
| 279 | 293 |
| 280 Cyg_Timer CYG_UITRON_DECL( CYCLICS ) | 294 Cyg_Timer CYG_UITRON_DECL( CYCLICS ) |
| 281 | 295 |
| 282 #ifdef CYGDAT_UITRON_CYCLIC_INITIALIZERS | 296 #ifdef CYGDAT_UITRON_CYCLIC_INITIALIZERS |
| 283 | 297 |
| 284 #error *** CYCLIC INITIALIZERS ARE NOT SUPPORTED IN THIS RELEASE*** | 298 #error *** CYCLIC INITIALIZERS ARE NOT SUPPORTED IN THIS RELEASE*** |
| 285 | 299 |
| 320 // declare the symbols used in the initializer | 334 // declare the symbols used in the initializer |
| 321 CYGDAT_UITRON_ALARM_EXTERNS | 335 CYGDAT_UITRON_ALARM_EXTERNS |
| 322 | 336 |
| 323 #endif // have externs or initializers | 337 #endif // have externs or initializers |
| 324 | 338 |
| 325 Cyg_Timer CYG_UITRON_DECL( ALARMS ) | 339 Cyg_Timer CYG_UITRON_DECL( ALARMS ) |
| 326 | 340 |
| 327 #ifdef CYGDAT_UITRON_ALARM_INITIALIZERS | 341 #ifdef CYGDAT_UITRON_ALARM_INITIALIZERS |
| 328 | 342 |
| 329 #error *** ALARM INITIALIZERS ARE NOT SUPPORTED IN THIS RELEASE*** | 343 #error *** ALARM INITIALIZERS ARE NOT SUPPORTED IN THIS RELEASE*** |
| 330 | 344 |
