1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12 #ifndef __ASM_IO_APIC_H 13 #define __ASM_IO_APIC_H 14 15 #include <asm/types.h> 16 #include <asm/mpspec.h> 17 #include <asm/apicdef.h> 18 19 union IO_APIC_reg_00 { 20 u32 raw; 21 struct { 22 u32 __reserved_2 : 14, 23 LTS : 1, 24 delivery_type : 1, 25 __reserved_1 : 8, 26 ID : 8; 27 } __attribute__ ((packed)) bits; 28 }; 29 30 union IO_APIC_reg_01 { 31 u32 raw; 32 struct { 33 u32 version : 8, 34 __reserved_2 : 7, 35 PRQ : 1, 36 entries : 8, 37 __reserved_1 : 8; 38 } __attribute__ ((packed)) bits; 39 }; 40 41 union IO_APIC_reg_02 { 42 u32 raw; 43 struct { 44 u32 __reserved_2 : 24, 45 arbitration : 4, 46 __reserved_1 : 4; 47 } __attribute__ ((packed)) bits; 48 }; 49 50 union IO_APIC_reg_03 { 51 u32 raw; 52 struct { 53 u32 boot_DT : 1, 54 __reserved_1 : 31; 55 } __attribute__ ((packed)) bits; 56 }; 57 58 enum ioapic_irq_destination_types { 59 dest_Fixed = 0, 60 dest_LowestPrio = 1, 61 dest_SMI = 2, 62 dest__reserved_1 = 3, 63 dest_NMI = 4, 64 dest_INIT = 5, 65 dest__reserved_2 = 6, 66 dest_ExtINT = 7 67 }; 68 69 struct IO_APIC_route_entry { 70 __u32 vector : 8, 71 delivery_mode : 3, 72 dest_mode : 1, 73 delivery_status : 1, 74 polarity : 1, 75 irr : 1, 76 trigger : 1, 77 mask : 1, 78 __reserved_2 : 15; 79 80 union { struct { __u32 81 __reserved_1 : 24, 82 physical_dest : 4, 83 __reserved_2 : 4; 84 } physical; 85 86 struct { __u32 87 __reserved_1 : 24, 88 logical_dest : 8; 89 } logical; 90 } dest; 91 92 } __attribute__ ((packed)); 93 94 #define io_apic_assign_pci_irqs 0 95 96 #endif 97