x86: Add context value to loapic_mkstub and ioapic_mkstub macros
Add a context value to the ioapic and loapic mkstub macros to allow the developer to specify a context value that will be passed on the stack to the interrupt service routines. All the invocations for the loapic_mkstub and ioapic_mkstub macros have been changed to pass in 0 so there is no functional difference ATM. This change removes the need for drivers to have trampoline ISR routines to pass a context vaule to their generic ISR routine. This is the first step in getting rid of the hack where the driver needs to look into the __initconfig_* linker objects. Change-Id: I2c5eaa20d8cb5a42ef445762c426854be32c8452 Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
This commit is contained in:
parent
147d6585ae
commit
ad5af93f25
4 changed files with 17 additions and 17 deletions
|
@ -30,57 +30,57 @@ by x86 platforms.
|
|||
#include <drivers/system_timer.h>
|
||||
|
||||
#if defined(CONFIG_LOAPIC_TIMER)
|
||||
loapic_mkstub loapic _timer_int_handler
|
||||
loapic_mkstub loapic _timer_int_handler 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_HPET_TIMER)
|
||||
ioapic_mkstub hpet _timer_int_handler
|
||||
ioapic_mkstub hpet _timer_int_handler 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BLUETOOTH_UART)
|
||||
#if defined(CONFIG_IOAPIC)
|
||||
ioapic_mkstub bluetooth bt_uart_isr
|
||||
ioapic_mkstub bluetooth bt_uart_isr 0
|
||||
#endif /* CONFIG_IOAPIC */
|
||||
#endif /* CONFIG_BLUETOOTH_UART */
|
||||
|
||||
#if defined(CONFIG_CONSOLE_HANDLER)
|
||||
#if defined(CONFIG_IOAPIC)
|
||||
ioapic_mkstub console uart_console_isr
|
||||
ioapic_mkstub console uart_console_isr 0
|
||||
#endif /* CONFIG_IOAPIC */
|
||||
#endif /* CONFIG_CONSOLE_HANDLER */
|
||||
|
||||
#if defined(CONFIG_UART_SIMPLE)
|
||||
#if defined(CONFIG_IOAPIC)
|
||||
ioapic_mkstub uart_simple uart_simple_isr
|
||||
ioapic_mkstub uart_simple uart_simple_isr 0
|
||||
#endif /* CONFIG_IOAPIC */
|
||||
#endif /* CONFIG_UART_SIMPLE */
|
||||
|
||||
#if defined(CONFIG_GPIO_DW)
|
||||
#if CONFIG_GPIO_DW_0
|
||||
ioapic_mkstub gpio_dw_0 gpio_dw_isr_0
|
||||
ioapic_mkstub gpio_dw_0 gpio_dw_isr_0 0
|
||||
#endif /* CONFIG_GPIO_DW_0 */
|
||||
|
||||
#if CONFIG_GPIO_DW_1
|
||||
ioapic_mkstub gpio_dw_1 gpio_dw_isr_1
|
||||
ioapic_mkstub gpio_dw_1 gpio_dw_isr_1 0
|
||||
#endif /* CONFIG_GPIO_DW_1 */
|
||||
#endif /* CONFIG_GPIO_DW */
|
||||
|
||||
#if defined(CONFIG_SHARED_IRQ)
|
||||
#if CONFIG_SHARED_IRQ_0
|
||||
ioapic_mkstub shared_irq_0 shared_irq_isr_0
|
||||
ioapic_mkstub shared_irq_0 shared_irq_isr_0 0
|
||||
#endif /* CONFIG_SHIRQ_0 */
|
||||
|
||||
#if CONFIG_SHARED_IRQ_1
|
||||
ioapic_mkstub shared_irq_1 shared_irq_isr_1
|
||||
ioapic_mkstub shared_irq_1 shared_irq_isr_1 0
|
||||
#endif /* CONFIG_SHARED_IRQ_1 */
|
||||
#endif /* CONFIG_SHARED_IRQ */
|
||||
|
||||
#if defined(CONFIG_SPI_INTEL)
|
||||
#if defined(CONFIG_SPI_INTEL_PORT_0)
|
||||
ioapic_mkstub spi_intel_irq_port_0 spi_intel_isr_0
|
||||
ioapic_mkstub spi_intel_irq_port_0 spi_intel_isr_0 0
|
||||
#endif /* CONFIG_SPI_INTEL_PORT_0 */
|
||||
#if defined(CONFIG_SPI_INTEL_PORT_1)
|
||||
ioapic_mkstub spi_intel_irq_port_1 spi_intel_isr_1
|
||||
ioapic_mkstub spi_intel_irq_port_1 spi_intel_isr_1 0
|
||||
#endif /* CONFIG_SPI_INTEL_PORT_1 */
|
||||
#endif /* CONFIG_SPI_INTEL */
|
||||
|
||||
|
|
|
@ -29,13 +29,13 @@
|
|||
|
||||
#if defined(CONFIG_I2C_DW_0)
|
||||
#ifdef CONFIG_IOAPIC
|
||||
ioapic_mkstub i2c_dw_0 i2c_dw_isr_0
|
||||
ioapic_mkstub i2c_dw_0 i2c_dw_isr_0 0
|
||||
#endif
|
||||
#endif /* CONFIG_I2C_DW_0 */
|
||||
|
||||
#if defined(CONFIG_I2C_DW_1)
|
||||
#ifdef CONFIG_IOAPIC
|
||||
ioapic_mkstub i2c_dw_1 i2c_dw_isr_1
|
||||
ioapic_mkstub i2c_dw_1 i2c_dw_isr_1 0
|
||||
#endif
|
||||
#endif /* CONFIG_I2C_DW_1 */
|
||||
|
||||
|
|
|
@ -47,12 +47,12 @@ extern "C" {
|
|||
#ifdef _ASMLANGUAGE
|
||||
GTEXT(_ioapic_eoi)
|
||||
|
||||
.macro ioapic_mkstub device isr
|
||||
.macro ioapic_mkstub device isr context
|
||||
GTEXT(_\()\device\()_\()\isr\()_stub)
|
||||
|
||||
SECTION_FUNC(TEXT, _\()\device\()_\()\isr\()_stub)
|
||||
call _IntEnt /* Inform kernel interrupt has begun */
|
||||
pushl $0 /* Push dummy parameter */
|
||||
pushl \context /* Push context parameter */
|
||||
call \isr /* Call actual interrupt handler */
|
||||
call _ioapic_eoi /* Inform ioapic interrupt is done */
|
||||
addl $4, %esp /* Clean-up stack from push above */
|
||||
|
|
|
@ -57,12 +57,12 @@ extern "C" {
|
|||
#ifdef _ASMLANGUAGE
|
||||
GTEXT(_loapic_eoi)
|
||||
|
||||
.macro loapic_mkstub device isr
|
||||
.macro loapic_mkstub device isr context
|
||||
GTEXT(_\()\device\()_\()\isr\()_stub)
|
||||
|
||||
SECTION_FUNC(TEXT, _\()\device\()_\()\isr\()_stub)
|
||||
call _IntEnt /* Inform kernel interrupt has begun */
|
||||
pushl $0 /* Push dummy parameter */
|
||||
pushl \context /* Push context parameter */
|
||||
call \isr /* Call actual interrupt handler */
|
||||
call _loapic_eoi /* Inform loapic interrupt is done */
|
||||
addl $4, %esp /* Clean-up stack from push above */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue