IRQs
| Member Type | Member Name |
|---|---|
irq_handler_t | handler |
void | *data |
struct list_head | list |
| Member Type | Member Name |
|---|---|
uint8_t | vector |
enum irq_flags | flags |
char | *name |
struct irq_chip | *chip |
void | *chip_data |
struct list_head | actions |
struct cpu_mask | affinity |
struct cpu_mask | masked_cpus |
bool | present |
bool | allocated |
bool | enabled |
| Member Type | Member Name |
|---|---|
uint64_t | rax |
uint64_t | rbx |
uint64_t | rcx |
uint64_t | rdx |
uint64_t | rbp |
uint64_t | rdi |
uint64_t | rsi |
uint64_t | r8 |
uint64_t | r9 |
uint64_t | r10 |
uint64_t | r11 |
uint64_t | r12 |
uint64_t | r13 |
uint64_t | r14 |
uint64_t | r15 |
uint64_t | rip |
uint64_t | cs |
uint64_t | rflags |
uint64_t | rsp |
uint64_t | ss |
| Name | Value |
|---|---|
IRQ_NONE | 0 |
IRQ_HANDLED | 1 |
| Name | Value |
|---|---|
IRQ_FLAG_SHARED | 1 |
IRQ_FLAG_LEVEL_TRIGGERED | 1 << 1 |
IRQ_FLAG_EDGE_TRIGGERED | 1 << 2 |
IRQ_FLAG_NONE | 0 |
type alias
Section titled “type alias”(*irq_handler_t) : enum irq_result (void *ctx, uint8_t vector, struct irq_context *ictx)
voidirq_register(char *name,uint8_t vector,irq_handler_t handler,void *ctx,enum irq_flagsflags)voidirq_register_full(struct irq_desc*d)voidirq_set_chip(uint8_t vector,struct irq_chip*chip,void *data)static inline voidirq_mark_self_in_interrupt(bool new)static inline boolirq_in_interrupt(void)static inline boolirq_in_thread_context(void)voidipi_send(uint32_t apic_id,uint8_t vector)voidnmi_send(uint32_t apic_id)voidirq_set_alloc(int32_t entry,bool used)int32_tirq_alloc_entry(void)voidirq_free_entry(int32_t entry)boolirq_is_installed(int32_t entry)voidirq_free_entry(int32_t entry)voidirq_disable(uint8_t irq)voidirq_enable(uint8_t irq)
Defines
Section titled “Defines”IRQ_DIV_BY_Z:0x0IRQ_DEBUG:0x1IRQ_NMI:0x2IRQ_BREAKPOINT:0x3IRQ_DBF:0x8IRQ_SSF:0xCIRQ_GPF:0xDIRQ_PAGE_FAULT:0xEIRQ_TIMER:0x20IRQ_SCHEDULER:IRQ_TIMERIRQ_TLB_SHOOTDOWN:0x22IRQ_NOP:0x24