ioapic.h
来自「类unix x86平台的简单操作系统」· C头文件 代码 · 共 89 行
H
89 行
#define IO_APIC_BASE 0xFEC00000 // Default phys addr of IO APIC#define IOAPIC_WINDOW 0x10 // Window register offset// Constants relating to APIC ID registers#define APIC_ID_MASK 0xff000000#define APIC_ID_SHIFT 24#define APIC_ID_CLUSTER 0xf0#define APIC_ID_CLUSTER_ID 0x0f#define APIC_MAX_CLUSTER 0xe#define APIC_MAX_INTRACLUSTER_ID 3#define APIC_ID_CLUSTER_SHIFT 4// Fields in VER#define APIC_VER_VERSION 0x000000ff#define APIC_VER_MAXLVT 0x00ff0000#define MAXLVTSHIFT 16// Indexes into IO APIC#define IOAPIC_ID 0x00#define IOAPIC_VER 0x01#define IOAPIC_ARB 0x02#define IOAPIC_REDTBL 0x10#define IOAPIC_REDTBL0 IOAPIC_REDTBL#define IOAPIC_REDTBL1 (IOAPIC_REDTBL+0x02)#define IOAPIC_REDTBL2 (IOAPIC_REDTBL+0x04)#define IOAPIC_REDTBL3 (IOAPIC_REDTBL+0x06)#define IOAPIC_REDTBL4 (IOAPIC_REDTBL+0x08)#define IOAPIC_REDTBL5 (IOAPIC_REDTBL+0x0a)#define IOAPIC_REDTBL6 (IOAPIC_REDTBL+0x0c)#define IOAPIC_REDTBL7 (IOAPIC_REDTBL+0x0e)#define IOAPIC_REDTBL8 (IOAPIC_REDTBL+0x10)#define IOAPIC_REDTBL9 (IOAPIC_REDTBL+0x12)#define IOAPIC_REDTBL10 (IOAPIC_REDTBL+0x14)#define IOAPIC_REDTBL11 (IOAPIC_REDTBL+0x16)#define IOAPIC_REDTBL12 (IOAPIC_REDTBL+0x18)#define IOAPIC_REDTBL13 (IOAPIC_REDTBL+0x1a)#define IOAPIC_REDTBL14 (IOAPIC_REDTBL+0x1c)#define IOAPIC_REDTBL15 (IOAPIC_REDTBL+0x1e)#define IOAPIC_REDTBL16 (IOAPIC_REDTBL+0x20)#define IOAPIC_REDTBL17 (IOAPIC_REDTBL+0x22)#define IOAPIC_REDTBL18 (IOAPIC_REDTBL+0x24)#define IOAPIC_REDTBL19 (IOAPIC_REDTBL+0x26)#define IOAPIC_REDTBL20 (IOAPIC_REDTBL+0x28)#define IOAPIC_REDTBL21 (IOAPIC_REDTBL+0x2a)#define IOAPIC_REDTBL22 (IOAPIC_REDTBL+0x2c)#define IOAPIC_REDTBL23 (IOAPIC_REDTBL+0x2e)// Fields in the IO APIC's redirection table entries#define IOART_DEST APIC_ID_MASK // broadcast addr: all APICs#define IOART_RESV 0x00fe0000 // reserved#define IOART_INTMASK 0x00010000 // R/W: INTerrupt mask#define IOART_INTMCLR 0x00000000 // clear, allow INTs#define IOART_INTMSET 0x00010000 // set, inhibit INTs#define IOART_TRGRMOD 0x00008000 // R/W: trigger mode#define IOART_TRGREDG 0x00000000 // edge#define IOART_TRGRLVL 0x00008000 // level#define IOART_REM_IRR 0x00004000 // RO: remote IRR#define IOART_INTPOL 0x00002000 // R/W: INT input pin polarity#define IOART_INTAHI 0x00000000 // active high#define IOART_INTALO 0x00002000 // active low#define IOART_DELIVS 0x00001000 // RO: delivery status#define IOART_DESTMOD 0x00000800 // R/W: destination mode#define IOART_DESTPHY 0x00000000 // physical#define IOART_DESTLOG 0x00000800 // logical#define IOART_DELMOD 0x00000700 // R/W: delivery mode#define IOART_DELFIXED 0x00000000 // fixed#define IOART_DELLOPRI 0x00000100 // lowest priority#define IOART_DELSMI 0x00000200 // System Management INT#define IOART_DELRSV1 0x00000300 // reserved#define IOART_DELNMI 0x00000400 // NMI signal#define IOART_DELINIT 0x00000500 // INIT signal#define IOART_DELRSV2 0x00000600 // reserved#define IOART_DELEXINT 0x00000700 // External INTerrupt#define IOART_INTVEC 0x000000ff // R/W: INTerrupt vector field// Fields in VER#define IOART_VER_VERSION 0x000000ff#define IOART_VER_MAXREDIR 0x00ff0000#define MAXREDIRSHIFT 16
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?