Home | History | Annotate | Line # | Download | only in inc
efipciio.h revision 1.1.1.1.4.2
      1  1.1.1.1.4.2  rmind /*	$NetBSD: efipciio.h,v 1.1.1.1.4.2 2014/05/18 17:46:02 rmind Exp $	*/
      2  1.1.1.1.4.2  rmind 
      3  1.1.1.1.4.2  rmind #ifndef _EFI_PCI_IO_H
      4  1.1.1.1.4.2  rmind #define _EFI_PCI_IO_H
      5  1.1.1.1.4.2  rmind 
      6  1.1.1.1.4.2  rmind #define EFI_PCI_IO_PROTOCOL \
      7  1.1.1.1.4.2  rmind     { 0x4cf5b200, 0x68b8, 0x4ca5, {0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a} }
      8  1.1.1.1.4.2  rmind 
      9  1.1.1.1.4.2  rmind INTERFACE_DECL(_EFI_PCI_IO);
     10  1.1.1.1.4.2  rmind 
     11  1.1.1.1.4.2  rmind typedef enum {
     12  1.1.1.1.4.2  rmind     EfiPciIoWidthUint8,
     13  1.1.1.1.4.2  rmind     EfiPciIoWidthUint16,
     14  1.1.1.1.4.2  rmind     EfiPciIoWidthUint32,
     15  1.1.1.1.4.2  rmind     EfiPciIoWidthUint64,
     16  1.1.1.1.4.2  rmind     EfiPciIoWidthFifoUint8,
     17  1.1.1.1.4.2  rmind     EfiPciIoWidthFifoUint16,
     18  1.1.1.1.4.2  rmind     EfiPciIoWidthFifoUint32,
     19  1.1.1.1.4.2  rmind     EfiPciIoWidthFifoUint64,
     20  1.1.1.1.4.2  rmind     EfiPciIoWidthFillUint8,
     21  1.1.1.1.4.2  rmind     EfiPciIoWidthFillUint16,
     22  1.1.1.1.4.2  rmind     EfiPciIoWidthFillUint32,
     23  1.1.1.1.4.2  rmind     EfiPciIoWidthFillUint64,
     24  1.1.1.1.4.2  rmind     EfiPciIoWidthMaximum
     25  1.1.1.1.4.2  rmind } EFI_PCI_IO_PROTOCOL_WIDTH;
     26  1.1.1.1.4.2  rmind 
     27  1.1.1.1.4.2  rmind #define EFI_PCI_IO_PASS_THROUGH_BAR 0xff
     28  1.1.1.1.4.2  rmind 
     29  1.1.1.1.4.2  rmind typedef
     30  1.1.1.1.4.2  rmind EFI_STATUS
     31  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_POLL_IO_MEM) (
     32  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
     33  1.1.1.1.4.2  rmind   IN EFI_PCI_IO_PROTOCOL_WIDTH  Width,
     34  1.1.1.1.4.2  rmind   IN UINT8                      BarIndex,
     35  1.1.1.1.4.2  rmind   IN UINT64                     Offset,
     36  1.1.1.1.4.2  rmind   IN UINT64                     Mask,
     37  1.1.1.1.4.2  rmind   IN UINT64                     Value,
     38  1.1.1.1.4.2  rmind   IN UINT64                     Delay,
     39  1.1.1.1.4.2  rmind   OUT UINT64                    *Result
     40  1.1.1.1.4.2  rmind   );
     41  1.1.1.1.4.2  rmind 
     42  1.1.1.1.4.2  rmind typedef
     43  1.1.1.1.4.2  rmind EFI_STATUS
     44  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_IO_MEM) (
     45  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
     46  1.1.1.1.4.2  rmind   IN EFI_PCI_IO_PROTOCOL_WIDTH  Width,
     47  1.1.1.1.4.2  rmind   IN UINT8                      BarIndex,
     48  1.1.1.1.4.2  rmind   IN UINT64                     Offset,
     49  1.1.1.1.4.2  rmind   IN UINTN                      Count,
     50  1.1.1.1.4.2  rmind   IN OUT VOID                   *Buffer
     51  1.1.1.1.4.2  rmind );
     52  1.1.1.1.4.2  rmind 
     53  1.1.1.1.4.2  rmind typedef struct {
     54  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_IO_MEM    Read;
     55  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_IO_MEM    Write;
     56  1.1.1.1.4.2  rmind } EFI_PCI_IO_PROTOCOL_ACCESS;
     57  1.1.1.1.4.2  rmind 
     58  1.1.1.1.4.2  rmind typedef
     59  1.1.1.1.4.2  rmind EFI_STATUS
     60  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_CONFIG) (
     61  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
     62  1.1.1.1.4.2  rmind   IN EFI_PCI_IO_PROTOCOL_WIDTH  Width,
     63  1.1.1.1.4.2  rmind   IN UINT32                     Offset,
     64  1.1.1.1.4.2  rmind   IN UINTN                      Count,
     65  1.1.1.1.4.2  rmind   IN OUT VOID                   *Buffer
     66  1.1.1.1.4.2  rmind );
     67  1.1.1.1.4.2  rmind 
     68  1.1.1.1.4.2  rmind typedef struct {
     69  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_CONFIG Read;
     70  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_CONFIG Write;
     71  1.1.1.1.4.2  rmind } EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS;
     72  1.1.1.1.4.2  rmind 
     73  1.1.1.1.4.2  rmind typedef
     74  1.1.1.1.4.2  rmind EFI_STATUS
     75  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_COPY_MEM) (
     76  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
     77  1.1.1.1.4.2  rmind   IN EFI_PCI_IO_PROTOCOL_WIDTH  Width,
     78  1.1.1.1.4.2  rmind   IN UINT8                      DestBarIndex,
     79  1.1.1.1.4.2  rmind   IN UINT64                     DestOffset,
     80  1.1.1.1.4.2  rmind   IN UINT8                      SrcBarIndex,
     81  1.1.1.1.4.2  rmind   IN UINT64                     SrcOffset,
     82  1.1.1.1.4.2  rmind   IN UINTN                      Count
     83  1.1.1.1.4.2  rmind   );
     84  1.1.1.1.4.2  rmind 
     85  1.1.1.1.4.2  rmind typedef enum {
     86  1.1.1.1.4.2  rmind     EfiPciIoOperationBusMasterRead,
     87  1.1.1.1.4.2  rmind     EfiPciIoOperationBusMasterWrite,
     88  1.1.1.1.4.2  rmind     EfiPciIoOperationBusMasterCommonBuffer,
     89  1.1.1.1.4.2  rmind     EfiPciIoOperationMaximum
     90  1.1.1.1.4.2  rmind } EFI_PCI_IO_PROTOCOL_OPERATION;
     91  1.1.1.1.4.2  rmind 
     92  1.1.1.1.4.2  rmind typedef
     93  1.1.1.1.4.2  rmind EFI_STATUS
     94  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_MAP) (
     95  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO    *This,
     96  1.1.1.1.4.2  rmind   IN EFI_PCI_IO_PROTOCOL_OPERATION Operation,
     97  1.1.1.1.4.2  rmind   IN VOID                          *HostAddress,
     98  1.1.1.1.4.2  rmind   IN OUT UINTN                     *NumberOfBytes,
     99  1.1.1.1.4.2  rmind   OUT EFI_PHYSICAL_ADDRESS         *DeviceAddress,
    100  1.1.1.1.4.2  rmind   OUT VOID                         **Mapping
    101  1.1.1.1.4.2  rmind   );
    102  1.1.1.1.4.2  rmind 
    103  1.1.1.1.4.2  rmind typedef
    104  1.1.1.1.4.2  rmind EFI_STATUS
    105  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_UNMAP) (
    106  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
    107  1.1.1.1.4.2  rmind   IN VOID                       *Mapping
    108  1.1.1.1.4.2  rmind );
    109  1.1.1.1.4.2  rmind 
    110  1.1.1.1.4.2  rmind typedef
    111  1.1.1.1.4.2  rmind EFI_STATUS
    112  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_ALLOCATE_BUFFER) (
    113  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
    114  1.1.1.1.4.2  rmind   IN EFI_ALLOCATE_TYPE          Type,
    115  1.1.1.1.4.2  rmind   IN EFI_MEMORY_TYPE            MemoryType,
    116  1.1.1.1.4.2  rmind   IN UINTN                      Pages,
    117  1.1.1.1.4.2  rmind   OUT VOID                      **HostAddress,
    118  1.1.1.1.4.2  rmind   IN UINT64                     Attributes
    119  1.1.1.1.4.2  rmind   );
    120  1.1.1.1.4.2  rmind 
    121  1.1.1.1.4.2  rmind typedef
    122  1.1.1.1.4.2  rmind EFI_STATUS
    123  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_FREE_BUFFER) (
    124  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
    125  1.1.1.1.4.2  rmind   IN UINTN                      Pages,
    126  1.1.1.1.4.2  rmind   IN VOID                       *HostAddress
    127  1.1.1.1.4.2  rmind   );
    128  1.1.1.1.4.2  rmind 
    129  1.1.1.1.4.2  rmind typedef
    130  1.1.1.1.4.2  rmind EFI_STATUS
    131  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_FLUSH) (
    132  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This
    133  1.1.1.1.4.2  rmind   );
    134  1.1.1.1.4.2  rmind 
    135  1.1.1.1.4.2  rmind typedef
    136  1.1.1.1.4.2  rmind EFI_STATUS
    137  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_GET_LOCATION) (
    138  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
    139  1.1.1.1.4.2  rmind   OUT UINTN                     *SegmentNumber,
    140  1.1.1.1.4.2  rmind   OUT UINTN                     *BusNumber,
    141  1.1.1.1.4.2  rmind   OUT UINTN                     *DeviceNumber,
    142  1.1.1.1.4.2  rmind   OUT UINTN                     *FunctionNumber
    143  1.1.1.1.4.2  rmind   );
    144  1.1.1.1.4.2  rmind 
    145  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_ISA_IO               0x0002
    146  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO       0x0004
    147  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY           0x0008
    148  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_VGA_IO               0x0010
    149  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_IDE_PRIMARY_IO       0x0020
    150  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_IDE_SECONDARY_IO     0x0040
    151  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x0080
    152  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_IO                   0x0100
    153  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_MEMORY               0x0200
    154  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_BUS_MASTER           0x0400
    155  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_MEMORY_CACHED        0x0800
    156  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_MEMORY_DISABLE       0x1000
    157  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE      0x2000
    158  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM         0x4000
    159  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE   0x8000
    160  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_ISA_IO_16            0x10000
    161  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO_16    0x20000
    162  1.1.1.1.4.2  rmind #define EFI_PCI_IO_ATTRIBUTE_VGA_IO_16            0x40000
    163  1.1.1.1.4.2  rmind 
    164  1.1.1.1.4.2  rmind typedef enum {
    165  1.1.1.1.4.2  rmind     EfiPciIoAttributeOperationGet,
    166  1.1.1.1.4.2  rmind     EfiPciIoAttributeOperationSet,
    167  1.1.1.1.4.2  rmind     EfiPciIoAttributeOperationEnable,
    168  1.1.1.1.4.2  rmind     EfiPciIoAttributeOperationDisable,
    169  1.1.1.1.4.2  rmind     EfiPciIoAttributeOperationSupported,
    170  1.1.1.1.4.2  rmind     EfiPciIoAttributeOperationMaximum
    171  1.1.1.1.4.2  rmind } EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION;
    172  1.1.1.1.4.2  rmind 
    173  1.1.1.1.4.2  rmind typedef
    174  1.1.1.1.4.2  rmind EFI_STATUS
    175  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_ATTRIBUTES) (
    176  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO             *This,
    177  1.1.1.1.4.2  rmind   IN EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION Operation,
    178  1.1.1.1.4.2  rmind   IN UINT64                                  Attributes,
    179  1.1.1.1.4.2  rmind   OUT UINT64                                 *Result OPTIONAL
    180  1.1.1.1.4.2  rmind   );
    181  1.1.1.1.4.2  rmind 
    182  1.1.1.1.4.2  rmind typedef
    183  1.1.1.1.4.2  rmind EFI_STATUS
    184  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_GET_BAR_ATTRIBUTES) (
    185  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
    186  1.1.1.1.4.2  rmind   IN UINT8                      BarIndex,
    187  1.1.1.1.4.2  rmind   OUT UINT64                    *Supports OPTIONAL,
    188  1.1.1.1.4.2  rmind   OUT VOID                      **Resources OPTIONAL
    189  1.1.1.1.4.2  rmind   );
    190  1.1.1.1.4.2  rmind 
    191  1.1.1.1.4.2  rmind typedef
    192  1.1.1.1.4.2  rmind EFI_STATUS
    193  1.1.1.1.4.2  rmind (EFIAPI *EFI_PCI_IO_PROTOCOL_SET_BAR_ATTRIBUTES) (
    194  1.1.1.1.4.2  rmind   IN struct _EFI_PCI_IO *This,
    195  1.1.1.1.4.2  rmind   IN UINT64                     Attributes,
    196  1.1.1.1.4.2  rmind   IN UINT8                      BarIndex,
    197  1.1.1.1.4.2  rmind   IN OUT UINT64                 *Offset,
    198  1.1.1.1.4.2  rmind   IN OUT UINT64                 *Length
    199  1.1.1.1.4.2  rmind   );
    200  1.1.1.1.4.2  rmind 
    201  1.1.1.1.4.2  rmind typedef struct _EFI_PCI_IO {
    202  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_POLL_IO_MEM        PollMem;
    203  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_POLL_IO_MEM        PollIo;
    204  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_ACCESS             Mem;
    205  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_ACCESS             Io;
    206  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS      Pci;
    207  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_COPY_MEM           CopyMem;
    208  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_MAP                Map;
    209  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_UNMAP              Unmap;
    210  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_ALLOCATE_BUFFER    AllocateBuffer;
    211  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_FREE_BUFFER        FreeBuffer;
    212  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_FLUSH              Flush;
    213  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_GET_LOCATION       GetLocation;
    214  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_ATTRIBUTES         Attributes;
    215  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_GET_BAR_ATTRIBUTES GetBarAttributes;
    216  1.1.1.1.4.2  rmind   EFI_PCI_IO_PROTOCOL_SET_BAR_ATTRIBUTES SetBarAttributes;
    217  1.1.1.1.4.2  rmind   UINT64                                 RomSize;
    218  1.1.1.1.4.2  rmind   VOID                                   *RomImage;
    219  1.1.1.1.4.2  rmind } EFI_PCI_IO;
    220  1.1.1.1.4.2  rmind 
    221  1.1.1.1.4.2  rmind #endif /* _EFI_PCI_IO_H */
    222