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
19union 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
30union 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
41union 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
50union IO_APIC_reg_03 {
51 u32 raw;
52 struct {
53 u32 boot_DT : 1,
54 __reserved_1 : 31;
55 } __attribute__ ((packed)) bits;
56};
57
58enum 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
69struct 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