https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
81 lines
1.9 KiB
C
81 lines
1.9 KiB
C
/** @file
|
|
I/O APIC Register Definitions from 82093AA I/O Advanced Programmable Interrupt
|
|
Controller (IOAPIC), 1996.
|
|
|
|
Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef __IO_APIC_H__
|
|
#define __IO_APIC_H__
|
|
|
|
///
|
|
/// I/O APIC Register Offsets
|
|
///
|
|
#define IOAPIC_INDEX_OFFSET 0x00
|
|
#define IOAPIC_DATA_OFFSET 0x10
|
|
|
|
///
|
|
/// I/O APIC Indirect Register Indexes
|
|
///
|
|
#define IO_APIC_IDENTIFICATION_REGISTER_INDEX 0x00
|
|
#define IO_APIC_VERSION_REGISTER_INDEX 0x01
|
|
#define IO_APIC_REDIRECTION_TABLE_ENTRY_INDEX 0x10
|
|
|
|
///
|
|
/// I/O APIC Interrupt Deliver Modes
|
|
///
|
|
#define IO_APIC_DELIVERY_MODE_FIXED 0
|
|
#define IO_APIC_DELIVERY_MODE_LOWEST_PRIORITY 1
|
|
#define IO_APIC_DELIVERY_MODE_SMI 2
|
|
#define IO_APIC_DELIVERY_MODE_NMI 4
|
|
#define IO_APIC_DELIVERY_MODE_INIT 5
|
|
#define IO_APIC_DELIVERY_MODE_EXTINT 7
|
|
|
|
#pragma pack(1)
|
|
|
|
typedef union {
|
|
struct {
|
|
UINT32 Reserved0:24;
|
|
UINT32 Identification:4;
|
|
UINT32 Reserved1:4;
|
|
} Bits;
|
|
UINT32 Uint32;
|
|
} IO_APIC_IDENTIFICATION_REGISTER;
|
|
|
|
typedef union {
|
|
struct {
|
|
UINT32 Version:8;
|
|
UINT32 Reserved0:8;
|
|
UINT32 MaximumRedirectionEntry:8;
|
|
UINT32 Reserved1:8;
|
|
} Bits;
|
|
UINT32 Uint32;
|
|
} IO_APIC_VERSION_REGISTER;
|
|
|
|
typedef union {
|
|
struct {
|
|
UINT32 Vector: 8;
|
|
UINT32 DeliveryMode: 3;
|
|
UINT32 DestinationMode: 1;
|
|
UINT32 DeliveryStatus: 1;
|
|
UINT32 Polarity: 1;
|
|
UINT32 RemoteIRR: 1;
|
|
UINT32 TriggerMode: 1;
|
|
UINT32 Mask: 1;
|
|
UINT32 Reserved0: 15;
|
|
UINT32 Reserved1: 24;
|
|
UINT32 DestinationID: 8;
|
|
} Bits;
|
|
struct {
|
|
UINT32 Low;
|
|
UINT32 High;
|
|
} Uint32;
|
|
UINT64 Uint64;
|
|
} IO_APIC_REDIRECTION_TABLE_ENTRY;
|
|
|
|
#pragma pack()
|
|
|
|
#endif
|