• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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