interrupts: new static IRQ API
The interrupt API has been redesigned: - irq_connect() for dynamic interrupts renamed to irq_connect_dynamic(). It will be used in situations where the new static irq_connect() won't work, i.e. the value of arguments can't be computed at build time - a new API for static interrupts replaces irq_connect(). it is used exactly the same way as its dynamic counterpart. The old static irq macros will be removed - Separate stub assembly files are no longer needed as the stubs are now generated inline with irq_connect() ReST documentation updated for the changed API. Some detail about the IDT in ROM added, and an oblique reference to the internal-only _irq_handler_set() API removed; we don't talk about internal APIs in the official documentation. Change-Id: I280519993da0e0fe671eb537a876f67de33d3cd4 Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
parent
4a2ce3c0c9
commit
d9cfbd5a61
70 changed files with 347 additions and 923 deletions
|
@ -113,7 +113,7 @@ int _ioapic_init(struct device *unused)
|
|||
|
||||
/*
|
||||
* Initialize the redirection table entries with default settings;
|
||||
* actual interrupt vectors are specified during irq_connect().
|
||||
* actual interrupt vectors are specified during irq_connect_dynamic().
|
||||
*
|
||||
* A future enhancement should make this initialization "table driven":
|
||||
* use data provided by the platform to specify the initial state
|
||||
|
|
|
@ -302,7 +302,7 @@ void _loapic_disable(void)
|
|||
* @brief Set the vector field in the specified RTE
|
||||
*
|
||||
* This routine is utilized by the interrupt controller's _SysIntVecAlloc()
|
||||
* routine (which exists to support the irq_connect() API). Once
|
||||
* routine (which exists to support the irq_connect_dynamic() API). Once
|
||||
* a vector has been allocated, this routine is invoked to update the LVT
|
||||
* entry associated with <irq> with the vector.
|
||||
*
|
||||
|
|
|
@ -61,8 +61,8 @@ static int __LocalIntVecAlloc(unsigned int irq, unsigned int priority);
|
|||
*
|
||||
* @brief Allocate interrupt vector
|
||||
*
|
||||
* This routine is used by the x86's irq_connect(). It performs the following
|
||||
* functions:
|
||||
* This routine is used by the x86's irq_connect_dynamic(). It performs the
|
||||
* following functions:
|
||||
*
|
||||
* a) Allocates a vector satisfying the requested priority. The utility
|
||||
* routine _IntVecAlloc() provided by the nanokernel will be used to
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue