comparison packages/hal/common/current/src/hal_if.c @ 119:77cec8369160 ecos-sw-2000-09-01

Merge from eCos master repository on 2000-09-01-07:47:03-BST
author jlarmour
date Fri, 01 Sep 2000 13:45:23 +0000
parents 6ed91473a1cd
children a9ac27ec7abc
comparison
equal deleted inserted replaced
118:59c1a83fb200 119:77cec8369160
417 isr_ret = CYGACC_COMM_IF_DBG_ISR(*__chan, &ctrlc, vector, data); 417 isr_ret = CYGACC_COMM_IF_DBG_ISR(*__chan, &ctrlc, vector, data);
418 if (ctrlc) 418 if (ctrlc)
419 cyg_hal_user_break( (CYG_ADDRWORD *)hal_saved_interrupt_state ); 419 cyg_hal_user_break( (CYG_ADDRWORD *)hal_saved_interrupt_state );
420 return isr_ret; 420 return isr_ret;
421 } 421 }
422
423 cyg_bool
424 hal_ctrlc_check(CYG_ADDRWORD vector, CYG_ADDRWORD data)
425 {
426 hal_virtual_comm_table_t* chan = CYGACC_CALL_IF_DEBUG_PROCS();
427 int gdb_vector = -1;
428 int isr_ret, ctrlc = 0;
429
430 // This check only to avoid crash on older stubs in case of unhandled
431 // interrupts. It is a bit messy, but required in a transition period.
432 if (CYGNUM_CALL_IF_TABLE_VERSION+1 == CYGACC_CALL_IF_VERSION()) {
433 gdb_vector = CYGACC_COMM_IF_CONTROL(*chan, __COMMCTL_DBG_ISR_VECTOR);
434 }
435 if( vector == gdb_vector ) {
436 isr_ret = CYGACC_COMM_IF_DBG_ISR(*chan, &ctrlc, vector, data);
437 if (ctrlc)
438 cyg_hal_user_break( (CYG_ADDRWORD *)hal_saved_interrupt_state );
439 return true;
440 }
441 return false;
442 }
422 #endif // CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT || CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT 443 #endif // CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT || CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
423 444
424 //-------------------------------------------------------------------------- 445 //--------------------------------------------------------------------------
425 // Init function. It should be called from the platform initialization code. 446 // Init function. It should be called from the platform initialization code.
426 // For monitor configurations it will initialize the calling interface table, 447 // For monitor configurations it will initialize the calling interface table,