forked from Imagelibrary/rtems
@@ -49,59 +49,14 @@ uint32_t _CPU_ISR_Get_level( void )
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* _CPU_ISR_install_raw_handler
|
|
||||||
*/
|
|
||||||
void _CPU_ISR_install_raw_handler(
|
|
||||||
uint32_t vector,
|
|
||||||
proc_ptr new_handler,
|
|
||||||
proc_ptr *old_handler
|
|
||||||
)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* This is where we install the interrupt handler into the "raw" interrupt
|
|
||||||
* table used by the CPU to dispatch interrupt handlers.
|
|
||||||
* Use Debug level IRQ Handlers
|
|
||||||
*/
|
|
||||||
/* H8BD_Install_IRQ(vector,new_handler,old_handler); */
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* _CPU_ISR_install_vector
|
|
||||||
*
|
|
||||||
* This kernel routine installs the RTEMS handler for the
|
|
||||||
* specified vector.
|
|
||||||
*
|
|
||||||
* Input parameters:
|
|
||||||
* vector - interrupt vector number
|
|
||||||
* old_handler - former ISR for this vector number
|
|
||||||
* new_handler - replacement ISR for this vector number
|
|
||||||
*
|
|
||||||
* Output parameters: NONE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void _CPU_ISR_install_vector(
|
void _CPU_ISR_install_vector(
|
||||||
uint32_t vector,
|
uint32_t vector,
|
||||||
proc_ptr new_handler,
|
CPU_ISR_handler new_handler,
|
||||||
proc_ptr *old_handler
|
CPU_ISR_handler *old_handler
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
*old_handler = _ISR_Vector_table[ vector ];
|
*old_handler = _ISR_Vector_table[ vector ];
|
||||||
|
_ISR_Vector_table[ vector ] = new_handler;
|
||||||
/*
|
|
||||||
* If the interrupt vector table is a table of pointer to isr entry
|
|
||||||
* points, then we need to install the appropriate RTEMS interrupt
|
|
||||||
* handler for this vector number.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_CPU_ISR_install_raw_handler( vector, new_handler, old_handler );
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We put the actual user ISR address in '_ISR_vector_table'. This will
|
|
||||||
* be used by the _ISR_Handler so the user gets control.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_ISR_Vector_table[ vector ] = new_handler;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -478,7 +478,7 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
(void) _is_fp; /* avoid warning for being unused */ \
|
(void) _is_fp; /* avoid warning for being unused */ \
|
||||||
(void) _isr; /* avoid warning for being unused */ \
|
(void) _isr; /* avoid warning for being unused */ \
|
||||||
_stack = ((uintptr_t)(_stack_base)) + (_size) - 8; \
|
_stack = ((uintptr_t)(_stack_base)) + (_size) - 8; \
|
||||||
*((proc_ptr *)(_stack)) = (_entry_point); \
|
*((void (**)(void))(_stack)) = (_entry_point); \
|
||||||
_stack -= 4; \
|
_stack -= 4; \
|
||||||
(_the_context)->fp = (void *)_stack; \
|
(_the_context)->fp = (void *)_stack; \
|
||||||
(_the_context)->sp = (void *)_stack; \
|
(_the_context)->sp = (void *)_stack; \
|
||||||
@@ -538,35 +538,12 @@ uint32_t _CPU_ISR_Get_level( void );
|
|||||||
*/
|
*/
|
||||||
void _CPU_Initialize(void);
|
void _CPU_Initialize(void);
|
||||||
|
|
||||||
/*
|
typedef void ( *CPU_ISR_handler )( uint32_t );
|
||||||
* _CPU_ISR_install_raw_handler
|
|
||||||
*
|
|
||||||
* This routine installs a "raw" interrupt handler directly into the
|
|
||||||
* processor's vector table.
|
|
||||||
*
|
|
||||||
* MOXIE Specific Information:
|
|
||||||
*
|
|
||||||
* XXX
|
|
||||||
*/
|
|
||||||
void _CPU_ISR_install_raw_handler(
|
|
||||||
uint32_t vector,
|
|
||||||
proc_ptr new_handler,
|
|
||||||
proc_ptr *old_handler
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* _CPU_ISR_install_vector
|
|
||||||
*
|
|
||||||
* This routine installs an interrupt vector.
|
|
||||||
*
|
|
||||||
* MOXIE Specific Information:
|
|
||||||
*
|
|
||||||
* XXX
|
|
||||||
*/
|
|
||||||
void _CPU_ISR_install_vector(
|
void _CPU_ISR_install_vector(
|
||||||
uint32_t vector,
|
uint32_t vector,
|
||||||
proc_ptr new_handler,
|
CPU_ISR_handler new_handler,
|
||||||
proc_ptr *old_handler
|
CPU_ISR_handler *old_handler
|
||||||
);
|
);
|
||||||
|
|
||||||
void *_CPU_Thread_Idle_body( uintptr_t );
|
void *_CPU_Thread_Idle_body( uintptr_t );
|
||||||
|
|||||||
Reference in New Issue
Block a user