mirror of
				https://gitlab.com/qemu-project/edk2.git
				synced 2025-11-03 07:59:00 +08:00 
			
		
		
		
	REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the PcAtChipsetPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 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
 |