PatchworkOS
Loading...
Searching...
No Matches
irq.h File Reference
#include <kernel/cpu/interrupt.h>
#include <stdbool.h>

Go to the source code of this file.

Data Structures

struct  irq_callback_t
 Structure to hold an IRQ callback and its data. More...
 
struct  irq_handler_t
 Structure to hold all callbacks for an IRQ. More...
 

Macros

#define IRQ_MAX_CALLBACK   16
 Maximum amount of callbacks per IRQ.
 

Typedefs

typedef void(* irq_callback_func_t) (irq_t irq, void *data)
 Callback function type for IRQs.
 

Enumerations

enum  irq_t {
  IRQ_PIT = 0x0 ,
  IRQ_PS2_FIRST_DEVICE = 0x1 ,
  IRQ_CASCADE = 0x2 ,
  IRQ_COM2 = 0x3 ,
  IRQ_COM1 = 0x4 ,
  IRQ_LPT2 = 0x5 ,
  IRQ_FLOPPY = 0x6 ,
  IRQ_LPT1 = 0x7 ,
  IRQ_CMOS = 0x8 ,
  IRQ_FREE1 = 0x9 ,
  IRQ_FREE2 = 0xA ,
  IRQ_FREE3 = 0xB ,
  IRQ_PS2_SECOND_DEVICE = 0xC ,
  IRQ_FPU = 0xD ,
  IRQ_PRIMARY_ATA_HARD_DRIVE = 0xE ,
  IRQ_SECONDARY_ATA_HARD_DRIVE = 0xF ,
  IRQ_AMOUNT = 0x10
}
 IRQ numbers. More...
 

Functions

void irq_dispatch (interrupt_frame_t *frame)
 Dispatch an IRQ.
 
void irq_install (irq_t irq, irq_callback_func_t func, void *data)
 Install an IRQ handler.
 
void irq_uninstall (irq_t irq, irq_callback_func_t func)
 Uninstall an IRQ handler.