PatchworkOS
Loading...
Searching...
No Matches
irq.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <stdbool.h>
6
42
46#define IRQ_MAX_CALLBACK 16
47
51typedef void (*irq_callback_func_t)(irq_t irq, void* data);
52
56typedef struct
57{
59 void* data;
61
71
81
94void irq_install(irq_t irq, irq_callback_func_t func, void* data);
95
105
static fd_t data
Definition dwm.c:21
void irq_install(irq_t irq, irq_callback_func_t func, void *data)
Install an IRQ handler.
Definition irq.c:39
#define IRQ_MAX_CALLBACK
Maximum amount of callbacks per IRQ.
Definition irq.h:46
irq_t
IRQ numbers.
Definition irq.h:23
void irq_dispatch(interrupt_frame_t *frame)
Dispatch an IRQ.
Definition irq.c:13
void irq_uninstall(irq_t irq, irq_callback_func_t func)
Uninstall an IRQ handler.
Definition irq.c:63
void(* irq_callback_func_t)(irq_t irq, void *data)
Callback function type for IRQs.
Definition irq.h:51
@ IRQ_FREE3
Definition irq.h:35
@ IRQ_PIT
Definition irq.h:24
@ IRQ_FREE2
Definition irq.h:34
@ IRQ_FREE1
Definition irq.h:33
@ IRQ_PS2_SECOND_DEVICE
Definition irq.h:36
@ IRQ_PRIMARY_ATA_HARD_DRIVE
Definition irq.h:38
@ IRQ_CMOS
Definition irq.h:32
@ IRQ_COM2
Definition irq.h:27
@ IRQ_LPT1
Definition irq.h:31
@ IRQ_AMOUNT
Definition irq.h:40
@ IRQ_PS2_FIRST_DEVICE
Definition irq.h:25
@ IRQ_CASCADE
Definition irq.h:26
@ IRQ_FLOPPY
Definition irq.h:30
@ IRQ_LPT2
Definition irq.h:29
@ IRQ_SECONDARY_ATA_HARD_DRIVE
Definition irq.h:39
@ IRQ_COM1
Definition irq.h:28
@ IRQ_FPU
Definition irq.h:37
__UINT32_TYPE__ uint32_t
Definition stdint.h:15
Trap Frame Structure.
Definition interrupt.h:42
Structure to hold an IRQ callback and its data.
Definition irq.h:57
irq_callback_func_t func
Definition irq.h:58
void * data
Definition irq.h:59
Structure to hold all callbacks for an IRQ.
Definition irq.h:66
uint32_t callbackAmount
Definition irq.h:68
bool redirected
Definition irq.h:69