L4Re - L4 Runtime Environment
icu.h File Reference

Interrupt controller. More...

#include <l4/sys/kernel_object.h>
#include <l4/sys/ipc.h>
+ Include dependency graph for icu.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  l4_icu_info_t
 Info structure for an ICU. More...
 
struct  l4_icu_msi_info_t
 Info to use for a specific MSI. More...
 

Typedefs

typedef struct l4_icu_info_t l4_icu_info_t
 Info structure for an ICU. More...
 
typedef struct l4_icu_msi_info_t l4_icu_msi_info_t
 Info to use for a specific MSI.
 

Enumerations

enum  L4_icu_flags { L4_ICU_FLAG_MSI }
 Flags for IRQ numbers used for the ICU. More...
 
enum  L4_irq_mode {
  L4_IRQ_F_NONE = 0, L4_IRQ_F_LEVEL = 0x2, L4_IRQ_F_EDGE = 0x0, L4_IRQ_F_POS = 0x0,
  L4_IRQ_F_NEG = 0x4, L4_IRQ_F_BOTH = 0x8, L4_IRQ_F_LEVEL_HIGH = 0x3, L4_IRQ_F_LEVEL_LOW = 0x7,
  L4_IRQ_F_POS_EDGE = 0x1, L4_IRQ_F_NEG_EDGE = 0x5, L4_IRQ_F_BOTH_EDGE = 0x9, L4_IRQ_F_MASK = 0xf,
  L4_IRQ_F_SET_WAKEUP = 0x10, L4_IRQ_F_CLEAR_WAKEUP = 0x20
}
 Interrupt attributes. More...
 
enum  L4_icu_opcode {
  L4_ICU_OP_BIND, L4_ICU_OP_UNBIND, L4_ICU_OP_INFO, L4_ICU_OP_MSI_INFO,
  L4_ICU_OP_UNMASK, L4_ICU_OP_MASK, L4_ICU_OP_SET_MODE
}
 Opcodes to the ICU interface. More...
 

Functions

l4_msgtag_t l4_icu_bind (l4_cap_idx_t icu, unsigned irqnum, l4_cap_idx_t irq) L4_NOTHROW
 Bind an interrupt line of an interrupt controller to an interrupt object. More...
 
l4_msgtag_t l4_icu_bind_u (l4_cap_idx_t icu, unsigned irqnum, l4_cap_idx_t irq, l4_utcb_t *utcb) L4_NOTHROW
 Bind an interrupt line of an interrupt controller to an interrupt object. More...
 
l4_msgtag_t l4_icu_unbind (l4_cap_idx_t icu, unsigned irqnum, l4_cap_idx_t irq) L4_NOTHROW
 Remove binding of an interrupt line from the interrupt controller object. More...
 
l4_msgtag_t l4_icu_unbind_u (l4_cap_idx_t icu, unsigned irqnum, l4_cap_idx_t irq, l4_utcb_t *utcb) L4_NOTHROW
 Remove binding of an interrupt line from the interrupt controller object. More...
 
l4_msgtag_t l4_icu_set_mode (l4_cap_idx_t icu, unsigned irqnum, l4_umword_t mode) L4_NOTHROW
 Set interrupt mode. More...
 
l4_msgtag_t l4_icu_set_mode_u (l4_cap_idx_t icu, unsigned irqnum, l4_umword_t mode, l4_utcb_t *utcb) L4_NOTHROW
 Set interrupt mode. More...
 
l4_msgtag_t l4_icu_info (l4_cap_idx_t icu, l4_icu_info_t *info) L4_NOTHROW
 Get information about the capabilites of the ICU. More...
 
l4_msgtag_t l4_icu_info_u (l4_cap_idx_t icu, l4_icu_info_t *info, l4_utcb_t *utcb) L4_NOTHROW
 Get information about the capabilities of the ICU. More...
 
l4_msgtag_t l4_icu_msi_info (l4_cap_idx_t icu, unsigned irqnum, l4_uint64_t source, l4_icu_msi_info_t *msi_info) L4_NOTHROW
 Get MSI info about IRQ. More...
 
l4_msgtag_t l4_icu_msi_info_u (l4_cap_idx_t icu, unsigned irqnum, l4_uint64_t source, l4_icu_msi_info_t *msi_info, l4_utcb_t *utcb) L4_NOTHROW
 Get MSI info about IRQ. More...
 
l4_msgtag_t l4_icu_unmask (l4_cap_idx_t icu, unsigned irqnum, l4_umword_t *label, l4_timeout_t to) L4_NOTHROW
 Unmask an IRQ line. More...
 
l4_msgtag_t l4_icu_unmask_u (l4_cap_idx_t icu, unsigned irqnum, l4_umword_t *label, l4_timeout_t to, l4_utcb_t *utcb) L4_NOTHROW
 Acknowledge the given interrupt line. More...
 
l4_msgtag_t l4_icu_mask (l4_cap_idx_t icu, unsigned irqnum, l4_umword_t *label, l4_timeout_t to) L4_NOTHROW
 Mask an IRQ line. More...
 
l4_msgtag_t l4_icu_mask_u (l4_cap_idx_t icu, unsigned irqnum, l4_umword_t *label, l4_timeout_t to, l4_utcb_t *utcb) L4_NOTHROW
 Mask an IRQ line. More...
 

Detailed Description

Interrupt controller.

Definition in file icu.h.