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  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef __ASM_IO_APIC_H
20 #define __ASM_IO_APIC_H
21 #include <asm/types.h>
22 #include <asm/mpspec.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #include <asm/apicdef.h>
25 union IO_APIC_reg_00 {
26  u32 raw;
27  struct {
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29  u32 __reserved_2 : 14,
30  LTS : 1,
31  delivery_type : 1,
32  __reserved_1 : 8,
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34  ID : 8;
35  } __attribute__ ((packed)) bits;
36 };
37 union IO_APIC_reg_01 {
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  u32 raw;
40  struct {
41  u32 version : 8,
42  __reserved_2 : 7,
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  PRQ : 1,
45  entries : 8,
46  __reserved_1 : 8;
47  } __attribute__ ((packed)) bits;
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 };
50 union IO_APIC_reg_02 {
51  u32 raw;
52  struct {
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  u32 __reserved_2 : 24,
55  arbitration : 4,
56  __reserved_1 : 4;
57  } __attribute__ ((packed)) bits;
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 };
60 union IO_APIC_reg_03 {
61  u32 raw;
62  struct {
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  u32 boot_DT : 1,
65  __reserved_1 : 31;
66  } __attribute__ ((packed)) bits;
67 };
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 enum ioapic_irq_destination_types {
70  dest_Fixed = 0,
71  dest_LowestPrio = 1,
72  dest_SMI = 2,
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  dest__reserved_1 = 3,
75  dest_NMI = 4,
76  dest_INIT = 5,
77  dest__reserved_2 = 6,
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  dest_ExtINT = 7
80 };
81 struct IO_APIC_route_entry {
82  __u32 vector : 8,
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  delivery_mode : 3,
85  dest_mode : 1,
86  delivery_status : 1,
87  polarity : 1,
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  irr : 1,
90  trigger : 1,
91  mask : 1,
92  __reserved_2 : 15;
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  union { struct { __u32
95  __reserved_1 : 24,
96  physical_dest : 4,
97  __reserved_2 : 4;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  } physical;
100  struct { __u32
101  __reserved_1 : 24,
102  logical_dest : 8;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  } logical;
105  } dest;
106 } __attribute__ ((packed));
107 #define io_apic_assign_pci_irqs 0
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 #endif
110