Go to the source code of this file.
Typedefs | |
| typedef void(* | s_mode_entry) (void) |
Functions | |
| static ATTR_ALWAYS_INLINE void | enable_global_irq (uint32_t mask) |
| Enable global IRQ with mask. More... | |
| static ATTR_ALWAYS_INLINE uint32_t | disable_global_irq (uint32_t mask) |
| Disable global IRQ with mask and return mstatus. More... | |
| static ATTR_ALWAYS_INLINE void | restore_global_irq (uint32_t mask) |
| Restore global IRQ with mask. More... | |
| static ATTR_ALWAYS_INLINE void | enable_irq_from_intc (void) |
| Enable IRQ from interrupt controller. More... | |
| static ATTR_ALWAYS_INLINE void | disable_irq_from_intc (void) |
| Disable IRQ from interrupt controller. More... | |
| static ATTR_ALWAYS_INLINE void | enable_mchtmr_irq (void) |
| Enable machine timer IRQ. More... | |
| static ATTR_ALWAYS_INLINE void | disable_mchtmr_irq (void) |
| Disable machine timer IRQ. More... | |
| static ATTR_ALWAYS_INLINE void | delegate_irq (uint32_t mask) |
| Delegate IRQ handling. More... | |
| static ATTR_ALWAYS_INLINE void | undelegate_irq (uint32_t mask) |
| Undelegate IRQ handling. More... | |
| static ATTR_ALWAYS_INLINE void | enable_s_global_irq (uint32_t mask) |
| Enable global IRQ with mask for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE uint32_t | disable_s_global_irq (uint32_t mask) |
| Disable global IRQ with mask and return sstatus for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | restore_s_global_irq (uint32_t mask) |
| Restore global IRQ with mask for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | disable_s_irq_from_intc (void) |
| Disable IRQ from interrupt controller for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | enable_s_irq_from_intc (void) |
| Enable IRQ from interrupt controller for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | enable_s_mchtmr_irq (void) |
| Enable machine timer IRQ for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | disable_s_mchtmr_irq (void) |
| Disable machine timer IRQ. More... | |
| static ATTR_ALWAYS_INLINE void | intc_m_init_swi (void) |
| Initialize software interrupt. More... | |
| static ATTR_ALWAYS_INLINE void | intc_m_enable_swi (void) |
| Enable software interrupt. More... | |
| static ATTR_ALWAYS_INLINE void | intc_m_disable_swi (void) |
| Disable software interrupt. More... | |
| static ATTR_ALWAYS_INLINE void | intc_m_trigger_swi (void) |
| Trigger software interrupt. More... | |
| static ATTR_ALWAYS_INLINE void | intc_m_claim_swi (void) |
| Claim software interrupt. More... | |
| static ATTR_ALWAYS_INLINE void | intc_m_complete_swi (void) |
| Complete software interrupt. More... | |
| static ATTR_ALWAYS_INLINE void | intc_s_enable_swi (void) |
| Enable software interrupt for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | intc_s_disable_swi (void) |
| Disable software interrupt for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | intc_s_trigger_swi (void) |
| Trigger software interrupt for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | intc_s_complete_swi (void) |
| Complete software interrupt for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | intc_enable_irq (uint32_t target, uint32_t irq) |
| static ATTR_ALWAYS_INLINE void | intc_set_irq_priority (uint32_t irq, uint32_t priority) |
| Set interrupt priority. More... | |
| static ATTR_ALWAYS_INLINE void | intc_disable_irq (uint32_t target, uint32_t irq) |
| Disable specific interrupt. More... | |
| static ATTR_ALWAYS_INLINE void | intc_set_threshold (uint32_t target, uint32_t threshold) |
| Set interrupt threshold. More... | |
| static ATTR_ALWAYS_INLINE uint32_t | intc_get_threshold (uint32_t target) |
| Get interrupt threshold. More... | |
| static ATTR_ALWAYS_INLINE uint32_t | intc_claim_irq (uint32_t target) |
| Claim IRQ. More... | |
| static ATTR_ALWAYS_INLINE void | intc_complete_irq (uint32_t target, uint32_t irq) |
| Complete IRQ. More... | |
| void | default_irq_entry (void) |
| static ATTR_ALWAYS_INLINE void | install_isr (uint32_t irq, uint32_t isr) |
| Install ISR for certain IRQ for ram based vector table. More... | |
| static ATTR_ALWAYS_INLINE void | uninstall_isr (uint32_t irq) |
| Uninstall ISR for certain IRQ for ram based vector table. More... | |
| void | default_s_irq_entry (void) |
| static ATTR_ALWAYS_INLINE void | install_s_isr (uint32_t irq, uint32_t isr) |
| Install ISR for certain IRQ for ram based vector table for supervisor mode. More... | |
| static ATTR_ALWAYS_INLINE void | uninstall_s_isr (uint32_t irq) |
| Uninstall ISR for certain IRQ for ram based vector table for supervisor mode. More... | |
| static void | switch_to_s_mode (s_mode_entry entry) |
| Switch mode to supervisor from machine. More... | |
|
inlinestatic |
Delegate IRQ handling.
| [in] | mask | interrupt mask to be delegated |
|
inlinestatic |
Disable global IRQ with mask and return mstatus.
| [in] | mask | interrupt mask to be disabled |
| current | mstatus value before irq mask is disabled |
|
inlinestatic |
Disable IRQ from interrupt controller.
|
inlinestatic |
Disable machine timer IRQ.
|
inlinestatic |
Disable global IRQ with mask and return sstatus for supervisor mode.
| [in] | mask | interrupt mask to be disabled |
| current | sstatus value before irq mask is disabled |
|
inlinestatic |
Disable IRQ from interrupt controller for supervisor mode.
|
inlinestatic |
Disable machine timer IRQ.
|
inlinestatic |
Enable global IRQ with mask.
| [in] | mask | interrupt mask to be enabaled |
|
inlinestatic |
Enable IRQ from interrupt controller.
|
inlinestatic |
Enable machine timer IRQ.
|
inlinestatic |
Enable global IRQ with mask for supervisor mode.
| [in] | mask | interrupt mask to be enabaled |
|
inlinestatic |
Enable IRQ from interrupt controller for supervisor mode.
|
inlinestatic |
Enable machine timer IRQ for supervisor mode.
|
inlinestatic |
Install ISR for certain IRQ for ram based vector table.
| [in] | irq | Target interrupt number |
| [in] | isr | Interrupt service routine |
|
inlinestatic |
Install ISR for certain IRQ for ram based vector table for supervisor mode.
| [in] | irq | Target interrupt number |
| [in] | isr | Interrupt service routine |
|
inlinestatic |
Claim IRQ.
| [in] | target | Target to handle specific interrupt |
|
inlinestatic |
Complete IRQ.
| [in] | target | Target to handle specific interrupt |
| [in] | irq | Specific IRQ to be completed |
|
inlinestatic |
Disable specific interrupt.
| [in] | target | Target to handle specific interrupt |
| [in] | irq | Interrupt number |
|
inlinestatic |
|
inlinestatic |
Get interrupt threshold.
| [in] | target | Target to handle specific interrupt |
|
inlinestatic |
Claim software interrupt.
|
inlinestatic |
Complete software interrupt.
|
inlinestatic |
Disable software interrupt.
|
inlinestatic |
Enable software interrupt.
|
inlinestatic |
Initialize software interrupt.
|
inlinestatic |
Trigger software interrupt.
|
inlinestatic |
Complete software interrupt for supervisor mode.
|
inlinestatic |
Disable software interrupt for supervisor mode.
|
inlinestatic |
Enable software interrupt for supervisor mode.
|
inlinestatic |
Trigger software interrupt for supervisor mode.
|
inlinestatic |
Set interrupt priority.
| [in] | irq | Interrupt number |
| [in] | priority | Priority of interrupt |
|
inlinestatic |
Set interrupt threshold.
| [in] | target | Target to handle specific interrupt |
| [in] | threshold | Threshold of IRQ can be serviced |
|
inlinestatic |
Restore global IRQ with mask.
| [in] | mask | interrupt mask to be restored |
|
inlinestatic |
Restore global IRQ with mask for supervisor mode.
| [in] | mask | interrupt mask to be restored |
|
inlinestatic |
Switch mode to supervisor from machine.
| [in] | entry | - entry point after mode is switched |
|
inlinestatic |
Undelegate IRQ handling.
| [in] | mask | interrupt mask to be undelegated |
|
inlinestatic |
Uninstall ISR for certain IRQ for ram based vector table.
| [in] | irq | Target interrupt number |
|
inlinestatic |
Uninstall ISR for certain IRQ for ram based vector table for supervisor mode.
| [in] | irq | Target interrupt number |