arc: remove deprecated dynamic interrupt implementation

Change-Id: I7a81123f72458f43d3e8e1ca04a921ae6c5f1f6e
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
Andrew Boie 2016-08-01 16:53:32 -07:00 committed by Anas Nashif
commit 3a1cf9af2c
4 changed files with 0 additions and 110 deletions

View file

@ -231,19 +231,6 @@ config SW_ISR_TABLE
a parameter to be passed to the interrupt handlers. Also, invoking
the exeception/interrupt exit stub is automatically done.
This has to be enabled for dynamically connecting interrupt handlers
at runtime (SW_ISR_TABLE_DYNAMIC).
config SW_ISR_TABLE_DYNAMIC
bool
prompt "Allow installing interrupt handlers at runtime"
depends on SW_ISR_TABLE
default n
help
This option enables irq_connect_dynamic(). It moves the ISR table to
SRAM so that it is writable. This has the side-effect of removing
write-protection on the ISR table.
config IRQ_VECTOR_TABLE_CUSTOM
bool
prompt "Projects provide a custom static IRQ part of vector table"

View file

@ -22,9 +22,6 @@
* Interrupt management:
*
* - enabling/disabling
* - dynamic ISR connecting/replacing
*
* SW_ISR_TABLE_DYNAMIC has to be enabled for connecting ISRs at runtime.
*
* An IRQ number passed to the @a irq parameters found in this file is a
* number from 16 to last IRQ number on the platform.
@ -117,75 +114,3 @@ void _irq_spurious(void *unused)
;
}
#if CONFIG_SW_ISR_TABLE_DYNAMIC
/*
* @internal
*
* @brief Replace an interrupt handler by another
*
* An interrupt's ISR can be replaced at runtime.
*
* @return N/A
*/
void _irq_handler_set(
unsigned int irq,
void (*new)(void *arg),
void *arg
)
{
int key = irq_lock();
int index = irq - 16;
__ASSERT(irq < CONFIG_NUM_IRQS, "IRQ number too high");
_sw_isr_table[index].isr = new;
_sw_isr_table[index].arg = arg;
irq_unlock(key);
}
/*
* @brief Connect an ISR to an interrupt line
*
* @a isr is connected to interrupt line @a irq, a number greater than or equal
* 16. No prior ISR can have been connected on @a irq interrupt line since the
* system booted.
*
* This routine will hang if another ISR was connected for interrupt line @a irq
* and ASSERT_ON is enabled; if ASSERT_ON is disabled, it will fail silently.
*
* @return the interrupt line number
*/
int _arch_irq_connect_dynamic(
unsigned int irq,
unsigned int prio,
void (*isr)(void *arg),
void *arg,
uint32_t flags
)
{
ARG_UNUSED(flags);
_irq_handler_set(irq, isr, arg);
_irq_priority_set(irq, prio);
return irq;
}
/*
* @internal
*
* @brief Disconnect an ISR from an interrupt line
*
* Interrupt line @a irq is disconnected from its ISR and the latter is
* replaced by _irq_spurious(). irq_disable() should have been called before
* invoking this routine.
*
* @return N/A
*/
void _irq_disconnect(unsigned int irq)
{
_irq_handler_set(irq, _irq_spurious, NULL);
}
#endif /* CONFIG_SW_ISR_TABLE_DYNAMIC */

View file

@ -39,11 +39,6 @@ GTEXT(_arch_irq_connect)
GTEXT(_arch_irq_enable)
GTEXT(_arch_irq_disable)
#else
extern int _arch_irq_connect_dynamic(unsigned int irq,
unsigned int prio,
void (*isr)(void *arg),
void *arg,
uint32_t flags);
extern void _arch_irq_enable(unsigned int irq);
extern void _arch_irq_disable(unsigned int irq);

View file

@ -89,7 +89,6 @@ SECTIONS {
*(.version_header)
KEEP(*(".version_header*"))
#endif
#ifndef CONFIG_SW_ISR_TABLE_DYNAMIC
KEEP(*(.isr_irq*))
/*
@ -108,7 +107,6 @@ SECTIONS {
KEEP(*(SORT(.gnu.linkonce.isr_irq[2-9][0-9])))
/* sections for IRQ100-999 */
KEEP(*(SORT(.gnu.linkonce.isr_irq[1-9][0-9][0-9])))
#endif
*(.text)
*(".text.*")
@ -193,21 +191,6 @@ SECTIONS {
*(.data)
*(".data.*")
#if CONFIG_SW_ISR_TABLE_DYNAMIC
KEEP(*(.isr_irq*))
/*The following sections maps the location of the different rows for
the _sw_isr_table. Each row maps to an IRQ entry (handler, argument).*/
/*In ARC architecture, IRQ 0-15 are reserved for the system and are not
assignable by the user, for that reason the linker sections start
on IRQ 16*/
/* sections for IRQ16-19 */
KEEP(*(SORT(.gnu.linkonce.isr_irq[1][6-9])))
/* sections for IRQ20-99 */
KEEP(*(SORT(.gnu.linkonce.isr_irq[2-9][0-9])))
/* sections for IRQ100-999 */
KEEP(*(SORT(.gnu.linkonce.isr_irq[1-9][0-9][0-9])))
#endif
} GROUP_LINK_IN(RAMABLE_REGION)
SECTION_PROLOGUE(initlevel, (OPTIONAL),)