TianoCore EDK2 master
Loading...
Searching...
No Matches
IoApic.h
Go to the documentation of this file.
1
10#ifndef __IO_APIC_H__
11#define __IO_APIC_H__
12
16#define IOAPIC_INDEX_OFFSET 0x00
17#define IOAPIC_DATA_OFFSET 0x10
18
22#define IO_APIC_IDENTIFICATION_REGISTER_INDEX 0x00
23#define IO_APIC_VERSION_REGISTER_INDEX 0x01
24#define IO_APIC_REDIRECTION_TABLE_ENTRY_INDEX 0x10
25
29#define IO_APIC_DELIVERY_MODE_FIXED 0
30#define IO_APIC_DELIVERY_MODE_LOWEST_PRIORITY 1
31#define IO_APIC_DELIVERY_MODE_SMI 2
32#define IO_APIC_DELIVERY_MODE_NMI 4
33#define IO_APIC_DELIVERY_MODE_INIT 5
34#define IO_APIC_DELIVERY_MODE_EXTINT 7
35
36#pragma pack(1)
37
38typedef union {
39 struct {
40 UINT32 Reserved0 : 24;
41 UINT32 Identification : 4;
42 UINT32 Reserved1 : 4;
43 } Bits;
44 UINT32 Uint32;
46
47typedef union {
48 struct {
49 UINT32 Version : 8;
50 UINT32 Reserved0 : 8;
51 UINT32 MaximumRedirectionEntry : 8;
52 UINT32 Reserved1 : 8;
53 } Bits;
54 UINT32 Uint32;
56
57typedef union {
58 struct {
59 UINT32 Vector : 8;
60 UINT32 DeliveryMode : 3;
61 UINT32 DestinationMode : 1;
62 UINT32 DeliveryStatus : 1;
63 UINT32 Polarity : 1;
64 UINT32 RemoteIRR : 1;
65 UINT32 TriggerMode : 1;
66 UINT32 Mask : 1;
67 UINT32 Reserved0 : 15;
68 UINT32 Reserved1 : 24;
69 UINT32 DestinationID : 8;
70 } Bits;
71 struct {
72 UINT32 Low;
73 UINT32 High;
74 } Uint32;
75 UINT64 Uint64;
77
78#pragma pack()
79
80#endif