Mercurial > ecos
comparison packages/hal/common/current/src/hal_if.c @ 112:02ea4320376c ecos-sw-2000-07-21
Merge from eCos master repository on 2000-07-21-21:01:39-BST
| author | jlarmour |
|---|---|
| date | Fri, 21 Jul 2000 21:34:11 +0000 |
| parents | 84e4bde58b26 |
| children | 6ed91473a1cd |
comparison
equal
deleted
inserted
replaced
| 111:211b8a635ce9 | 112:02ea4320376c |
|---|---|
| 159 } | 159 } |
| 160 | 160 |
| 161 //---------------------------------- | 161 //---------------------------------- |
| 162 // Comm controls | 162 // Comm controls |
| 163 | 163 |
| 164 static hal_virtual_comm_table_t comm_channels[CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS+1]; | 164 #ifdef CYGNUM_HAL_VIRTUAL_VECTOR_AUX_CHANNELS |
| 165 #define CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS \ | |
| 166 (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS+CYGNUM_HAL_VIRTUAL_VECTOR_AUX_CHANNELS) | |
| 167 #else | |
| 168 #define CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS \ | |
| 169 CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS | |
| 170 #endif | |
| 171 | |
| 172 static hal_virtual_comm_table_t comm_channels[CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS+1]; | |
| 165 | 173 |
| 166 static int | 174 static int |
| 167 set_debug_comm(int __comm_id) | 175 set_debug_comm(int __comm_id) |
| 168 { | 176 { |
| 169 static int __selected_id = CYGNUM_CALL_IF_SET_COMM_ID_EMPTY; | 177 static int __selected_id = CYGNUM_CALL_IF_SET_COMM_ID_EMPTY; |
| 171 int interrupt_state = 0; | 179 int interrupt_state = 0; |
| 172 int res = 1, update = 0; | 180 int res = 1, update = 0; |
| 173 CYGARC_HAL_SAVE_GP(); | 181 CYGARC_HAL_SAVE_GP(); |
| 174 | 182 |
| 175 CYG_ASSERT(__comm_id >= CYGNUM_CALL_IF_SET_COMM_ID_MANGLER | 183 CYG_ASSERT(__comm_id >= CYGNUM_CALL_IF_SET_COMM_ID_MANGLER |
| 176 && __comm_id < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS, | 184 && __comm_id < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS, |
| 177 "Invalid channel"); | 185 "Invalid channel"); |
| 178 | 186 |
| 179 switch (__comm_id) { | 187 switch (__comm_id) { |
| 180 case CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT: | 188 case CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT: |
| 181 if (__selected_id > 0) | 189 if (__selected_id > 0) |
| 229 static int __selected_id = CYGNUM_CALL_IF_SET_COMM_ID_EMPTY; | 237 static int __selected_id = CYGNUM_CALL_IF_SET_COMM_ID_EMPTY; |
| 230 int res = 1, update = 0; | 238 int res = 1, update = 0; |
| 231 CYGARC_HAL_SAVE_GP(); | 239 CYGARC_HAL_SAVE_GP(); |
| 232 | 240 |
| 233 CYG_ASSERT(__comm_id >= CYGNUM_CALL_IF_SET_COMM_ID_MANGLER | 241 CYG_ASSERT(__comm_id >= CYGNUM_CALL_IF_SET_COMM_ID_MANGLER |
| 234 && __comm_id < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS, | 242 && __comm_id < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS, |
| 235 "Invalid channel"); | 243 "Invalid channel"); |
| 236 | 244 |
| 237 switch (__comm_id) { | 245 switch (__comm_id) { |
| 238 case CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT: | 246 case CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT: |
| 239 if (__selected_id > 0) | 247 if (__selected_id > 0) |
| 420 // This should only be done for service routine entries - data | 428 // This should only be done for service routine entries - data |
| 421 // pointers should be NULLed. | 429 // pointers should be NULLed. |
| 422 for (i = 0; i < CYGNUM_CALL_IF_TABLE_SIZE; i++) | 430 for (i = 0; i < CYGNUM_CALL_IF_TABLE_SIZE; i++) |
| 423 hal_virtual_vector_table[i] = (CYG_ADDRWORD) &nop_service; | 431 hal_virtual_vector_table[i] = (CYG_ADDRWORD) &nop_service; |
| 424 | 432 |
| 425 for (j = 0; j < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS+1; j++) | 433 for (j = 0; j < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS+1; j++) |
| 426 for (i = 0; i < CYGNUM_COMM_IF_TABLE_SIZE; i++) | 434 for (i = 0; i < CYGNUM_COMM_IF_TABLE_SIZE; i++) |
| 427 comm_channels[j][i] = (CYG_ADDRWORD) &nop_service; | 435 comm_channels[j][i] = (CYG_ADDRWORD) &nop_service; |
| 428 | 436 |
| 429 | 437 |
| 430 // Fill in supported services. | 438 // Fill in supported services. |
