Home | History | Annotate | Download | only in asm
      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