L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
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.
 
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.
 
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.
 
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.
 
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.
 
l4_msgtag_t l4_icu_set_mode (l4_cap_idx_t icu, unsigned irqnum, l4_umword_t mode) L4_NOTHROW
 Set interrupt mode.
 
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.
 
l4_msgtag_t l4_icu_info (l4_cap_idx_t icu, l4_icu_info_t *info) L4_NOTHROW
 Get information about the ICU features.
 
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 ICU features.
 
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.
 
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.
 
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.
 
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
 Unmask the given interrupt line.
 
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.
 
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.
 

Detailed Description

Interrupt controller.

Definition in file icu.h.