summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-11-08 15:14:32 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-11-12 13:25:43 +0100
commit3c6a6e80ecc92f0c5bd1dacfd3b833d7b7240f0b (patch)
tree3a8e1289ca22d806e52f2be8af306a897ddd4cb9
parentepiphany: Remove use of proc_ptr (diff)
downloadrtems-3c6a6e80ecc92f0c5bd1dacfd3b833d7b7240f0b.tar.bz2
i386: Remove use of proc_ptr
Update #3585.
-rw-r--r--bsps/i386/shared/irq/idt.c8
-rw-r--r--cpukit/score/cpu/i386/cpu.c4
-rw-r--r--cpukit/score/cpu/i386/include/rtems/score/cpu.h25
3 files changed, 10 insertions, 27 deletions
diff --git a/bsps/i386/shared/irq/idt.c b/bsps/i386/shared/irq/idt.c
index d3adbc4f05..ac50fc4497 100644
--- a/bsps/i386/shared/irq/idt.c
+++ b/bsps/i386/shared/irq/idt.c
@@ -104,8 +104,8 @@ int i386_set_idt_entry (const rtems_raw_irq_connect_data* irq)
}
void _CPU_ISR_install_vector (uint32_t vector,
- proc_ptr hdl,
- proc_ptr * oldHdl)
+ CPU_ISR_handler hdl,
+ CPU_ISR_handler * oldHdl)
{
interrupt_gate_descriptor* idt_entry_tbl;
unsigned limit;
@@ -121,8 +121,8 @@ void _CPU_ISR_install_vector (uint32_t vector,
return;
}
rtems_interrupt_lock_acquire(&rtems_idt_access_lock, &lock_context);
- * ((unsigned int *) oldHdl) = idt_entry_tbl[vector].low_offsets_bits |
- (idt_entry_tbl[vector].high_offsets_bits << 16);
+ *oldHdl = (CPU_ISR_handler) (idt_entry_tbl[vector].low_offsets_bits |
+ (idt_entry_tbl[vector].high_offsets_bits << 16));
create_interrupt_gate_descriptor(&new, hdl);
idt_entry_tbl[vector] = new;
diff --git a/cpukit/score/cpu/i386/cpu.c b/cpukit/score/cpu/i386/cpu.c
index 72b99c0d80..a90eb7a288 100644
--- a/cpukit/score/cpu/i386/cpu.c
+++ b/cpukit/score/cpu/i386/cpu.c
@@ -171,8 +171,8 @@ void _CPU_Context_Initialize(
_stack = ((uint32_t)(_stack_base)) + (_size);
_stack &= ~ (CPU_STACK_ALIGNMENT - 1);
- _stack -= 2*sizeof(proc_ptr*); /* see above for why we need to do this */
- *((proc_ptr *)(_stack)) = (_entry_point);
+ _stack -= 2*sizeof(void *); /* see above for why we need to do this */
+ *((void (**)(void))(_stack)) = (_entry_point);
the_context->ebp = (void *) 0;
the_context->esp = (void *) _stack;
diff --git a/cpukit/score/cpu/i386/include/rtems/score/cpu.h b/cpukit/score/cpu/i386/include/rtems/score/cpu.h
index d38af9475f..10614a72ee 100644
--- a/cpukit/score/cpu/i386/include/rtems/score/cpu.h
+++ b/cpukit/score/cpu/i386/include/rtems/score/cpu.h
@@ -539,29 +539,12 @@ extern void _CPU_Fatal_halt(uint32_t source, uint32_t error)
void _CPU_Initialize(void);
-/*
- * _CPU_ISR_install_raw_handler
- *
- * This routine installs a "raw" interrupt handler directly into the
- * processor's vector table.
- */
-
-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.
- */
+typedef void ( *CPU_ISR_handler )( void );
void _CPU_ISR_install_vector(
- uint32_t vector,
- proc_ptr new_handler,
- proc_ptr *old_handler
+ uint32_t vector,
+ CPU_ISR_handler new_handler,
+ CPU_ISR_handler *old_handler
);
void *_CPU_Thread_Idle_body( uintptr_t ignored );