Changes between Version 19 and Version 20 of kernel_interrupts
- Timestamp:
- Mar 27, 2015, 10:28:40 AM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
kernel_interrupts
v19 v20 54 54 55 55 === void '''_isr_wakup'''( unsigned int irq_type, unsigned int irq_id, unsigned int channel ) === 56 This ISR can only be executed after a WTI (IPI) awake an idle processor, or to force a context switch 57 on a remote processor. The context switch is only executed if the current task is the IDLE_TASK, or if the value written in the mailbox is non zero. 56 This ISR is executed after a WTI WAKUP (Inter Processor Interrupt). It is used to awake a processor in ''wait'' mode (low-power mode), or to force a context switch on a remote processor. The context switch is only executed if the current task is the IDLE_TASK, or if the value written in the mailbox is non zero. 58 57 59 58 === void '''_isr_tick'''( unsigned int irq_type, unsigned int irq_id, unsigned int channel ) === 60 This ISR is in charge of context switch, and handles the IRQs generated by 61 // the "system" timers. It can be PTI in case of XCU, or it can be HWI generated 62 // by an external timer in case of ICU. 63 // The ISR acknowledges the IRQ, and calls the _ctx_switch() function. 59 This ISR is in charge of context switch, and handles the PTI IRQs generated by the XCU timers. 60 The ISR acknowledges the IRQ, and calls the _ctx_switch() function. 64 61 65 62 === void '''_isr_default'''() === … … 69 66 70 67 === void '''_ext_irq_init'''() === 71 This function is only used when the architecture contains an external IOPIC component. It initializes the _ext_irq_index[isr][channel] array, 72 defining the IRQ index associated to an (isr_type/isr_channel) couple, as specified in the mapping. 73 This array is used by the kernel for dynamic routing of external IRQs. 68 This function is only used when the architecture contains an external IOPIC component. It initializes the ''_ext_irq_index[isr][channel]'' kernel array. This array defines the IRQ index (i.e. the IOPIC input index) associated to an (isr_type / isr_channel) couple, as specified in the mapping. It is used by the kernel for dynamic routing of external IRQs. 74 69 75 70 === void '''_ext_irq_alloc( unsigned int isr_type , unsigned int isr_channel , unsigned int* wti_index ) === 76 This function is used when the architecture contains an external IOPIC component. It dynamically allocates an external IRQ signaling completion of an I/O operation to the processor P[x,y,p] running the calling task. The two (isr_type ,isr_channel) arguments define actually the external IRQ to be routed.71 This function is used when the architecture contains an external IOPIC component. It dynamically allocates an external IRQ signaling completion of an I/O operation to the processor P[x,y,p] running the calling task. The two (isr_type / isr_channel) arguments define actually the external IRQ to be routed. 77 72 * '''isr_type''' : type of ISR 78 73 * '''isr_channel''' : ISR channel (for multi-channels peripherals)