Home | History | Annotate | Line # | Download | only in inc
efiser.h revision 1.1.1.1.34.1
      1  1.1.1.1.34.1  pgoyette /*	$NetBSD: efiser.h,v 1.1.1.1.34.1 2018/09/06 06:56:38 pgoyette Exp $	*/
      2           1.1  jakllsch 
      3           1.1  jakllsch #ifndef _EFI_SER_H
      4           1.1  jakllsch #define _EFI_SER_H
      5           1.1  jakllsch 
      6           1.1  jakllsch /*++
      7           1.1  jakllsch 
      8           1.1  jakllsch Copyright (c) 1998  Intel Corporation
      9           1.1  jakllsch 
     10           1.1  jakllsch Module Name:
     11           1.1  jakllsch 
     12           1.1  jakllsch     efiser.h
     13           1.1  jakllsch 
     14           1.1  jakllsch Abstract:
     15           1.1  jakllsch 
     16           1.1  jakllsch     EFI serial protocol
     17           1.1  jakllsch 
     18           1.1  jakllsch Revision History
     19           1.1  jakllsch 
     20           1.1  jakllsch --*/
     21           1.1  jakllsch 
     22           1.1  jakllsch //
     23           1.1  jakllsch // Serial protocol
     24           1.1  jakllsch //
     25           1.1  jakllsch 
     26  1.1.1.1.34.1  pgoyette #define EFI_SERIAL_IO_PROTOCOL_GUID \
     27           1.1  jakllsch     { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD} }
     28  1.1.1.1.34.1  pgoyette #define SERIAL_IO_PROTOCOL EFI_SERIAL_IO_PROTOCOL_GUID
     29           1.1  jakllsch 
     30  1.1.1.1.34.1  pgoyette INTERFACE_DECL(_EFI_SERIAL_IO_PROTOCOL);
     31           1.1  jakllsch 
     32           1.1  jakllsch typedef enum {
     33  1.1.1.1.34.1  pgoyette     DefaultParity,
     34  1.1.1.1.34.1  pgoyette     NoParity,
     35           1.1  jakllsch     EvenParity,
     36           1.1  jakllsch     OddParity,
     37           1.1  jakllsch     MarkParity,
     38           1.1  jakllsch     SpaceParity
     39           1.1  jakllsch } EFI_PARITY_TYPE;
     40           1.1  jakllsch 
     41           1.1  jakllsch typedef enum {
     42  1.1.1.1.34.1  pgoyette     DefaultStopBits,
     43           1.1  jakllsch     OneStopBit,         // 1 stop bit
     44           1.1  jakllsch     OneFiveStopBits,    // 1.5 stop bits
     45           1.1  jakllsch     TwoStopBits         // 2 stop bits
     46           1.1  jakllsch } EFI_STOP_BITS_TYPE;
     47           1.1  jakllsch 
     48           1.1  jakllsch #define EFI_SERIAL_CLEAR_TO_SEND                   0x0010  // RO
     49           1.1  jakllsch #define EFI_SERIAL_DATA_SET_READY                  0x0020  // RO
     50           1.1  jakllsch #define EFI_SERIAL_RING_INDICATE                   0x0040  // RO
     51           1.1  jakllsch #define EFI_SERIAL_CARRIER_DETECT                  0x0080  // RO
     52           1.1  jakllsch #define EFI_SERIAL_REQUEST_TO_SEND                 0x0002  // WO
     53           1.1  jakllsch #define EFI_SERIAL_DATA_TERMINAL_READY             0x0001  // WO
     54           1.1  jakllsch #define EFI_SERIAL_INPUT_BUFFER_EMPTY              0x0100  // RO
     55           1.1  jakllsch #define EFI_SERIAL_OUTPUT_BUFFER_EMPTY             0x0200  // RO
     56           1.1  jakllsch #define EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE        0x1000  // RW
     57           1.1  jakllsch #define EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE        0x2000  // RW
     58           1.1  jakllsch #define EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE    0x4000  // RW
     59           1.1  jakllsch 
     60           1.1  jakllsch typedef
     61           1.1  jakllsch EFI_STATUS
     62           1.1  jakllsch (EFIAPI *EFI_SERIAL_RESET) (
     63  1.1.1.1.34.1  pgoyette     IN struct _EFI_SERIAL_IO_PROTOCOL  *This
     64           1.1  jakllsch     );
     65           1.1  jakllsch 
     66           1.1  jakllsch typedef
     67           1.1  jakllsch EFI_STATUS
     68           1.1  jakllsch (EFIAPI *EFI_SERIAL_SET_ATTRIBUTES) (
     69  1.1.1.1.34.1  pgoyette     IN struct _EFI_SERIAL_IO_PROTOCOL  *This,
     70  1.1.1.1.34.1  pgoyette     IN UINT64                          BaudRate,
     71  1.1.1.1.34.1  pgoyette     IN UINT32                          ReceiveFifoDepth,
     72  1.1.1.1.34.1  pgoyette     IN UINT32                          Timeout,
     73  1.1.1.1.34.1  pgoyette     IN EFI_PARITY_TYPE                 Parity,
     74  1.1.1.1.34.1  pgoyette     IN UINT8                           DataBits,
     75  1.1.1.1.34.1  pgoyette     IN EFI_STOP_BITS_TYPE              StopBits
     76           1.1  jakllsch     );
     77           1.1  jakllsch 
     78           1.1  jakllsch typedef
     79           1.1  jakllsch EFI_STATUS
     80           1.1  jakllsch (EFIAPI *EFI_SERIAL_SET_CONTROL_BITS) (
     81  1.1.1.1.34.1  pgoyette     IN struct _EFI_SERIAL_IO_PROTOCOL  *This,
     82  1.1.1.1.34.1  pgoyette     IN UINT32                          Control
     83           1.1  jakllsch     );
     84           1.1  jakllsch 
     85           1.1  jakllsch typedef
     86           1.1  jakllsch EFI_STATUS
     87           1.1  jakllsch (EFIAPI *EFI_SERIAL_GET_CONTROL_BITS) (
     88  1.1.1.1.34.1  pgoyette     IN struct _EFI_SERIAL_IO_PROTOCOL  *This,
     89  1.1.1.1.34.1  pgoyette     OUT UINT32                         *Control
     90           1.1  jakllsch     );
     91           1.1  jakllsch 
     92           1.1  jakllsch typedef
     93           1.1  jakllsch EFI_STATUS
     94           1.1  jakllsch (EFIAPI *EFI_SERIAL_WRITE) (
     95  1.1.1.1.34.1  pgoyette     IN struct _EFI_SERIAL_IO_PROTOCOL  *This,
     96  1.1.1.1.34.1  pgoyette     IN OUT UINTN                       *BufferSize,
     97  1.1.1.1.34.1  pgoyette     IN VOID                            *Buffer
     98           1.1  jakllsch     );
     99           1.1  jakllsch 
    100           1.1  jakllsch typedef
    101           1.1  jakllsch EFI_STATUS
    102           1.1  jakllsch (EFIAPI *EFI_SERIAL_READ) (
    103  1.1.1.1.34.1  pgoyette     IN struct _EFI_SERIAL_IO_PROTOCOL  *This,
    104  1.1.1.1.34.1  pgoyette     IN OUT UINTN                       *BufferSize,
    105  1.1.1.1.34.1  pgoyette     OUT VOID                           *Buffer
    106           1.1  jakllsch     );
    107           1.1  jakllsch 
    108           1.1  jakllsch typedef struct {
    109           1.1  jakllsch     UINT32                  ControlMask;
    110           1.1  jakllsch 
    111           1.1  jakllsch     // current Attributes
    112           1.1  jakllsch     UINT32                  Timeout;
    113           1.1  jakllsch     UINT64                  BaudRate;
    114           1.1  jakllsch     UINT32                  ReceiveFifoDepth;
    115           1.1  jakllsch     UINT32                  DataBits;
    116           1.1  jakllsch     UINT32                  Parity;
    117           1.1  jakllsch     UINT32                  StopBits;
    118           1.1  jakllsch } SERIAL_IO_MODE;
    119           1.1  jakllsch 
    120           1.1  jakllsch #define SERIAL_IO_INTERFACE_REVISION    0x00010000
    121           1.1  jakllsch 
    122  1.1.1.1.34.1  pgoyette typedef struct _EFI_SERIAL_IO_PROTOCOL {
    123           1.1  jakllsch     UINT32                       Revision;
    124           1.1  jakllsch     EFI_SERIAL_RESET             Reset;
    125           1.1  jakllsch     EFI_SERIAL_SET_ATTRIBUTES    SetAttributes;
    126           1.1  jakllsch     EFI_SERIAL_SET_CONTROL_BITS  SetControl;
    127           1.1  jakllsch     EFI_SERIAL_GET_CONTROL_BITS  GetControl;
    128           1.1  jakllsch     EFI_SERIAL_WRITE             Write;
    129           1.1  jakllsch     EFI_SERIAL_READ              Read;
    130           1.1  jakllsch 
    131           1.1  jakllsch     SERIAL_IO_MODE               *Mode;
    132  1.1.1.1.34.1  pgoyette } EFI_SERIAL_IO_PROTOCOL;
    133  1.1.1.1.34.1  pgoyette 
    134  1.1.1.1.34.1  pgoyette typedef struct _EFI_SERIAL_IO_PROTOCOL _SERIAL_IO_INTERFACE;
    135  1.1.1.1.34.1  pgoyette typedef EFI_SERIAL_IO_PROTOCOL SERIAL_IO_INTERFACE;
    136           1.1  jakllsch 
    137           1.1  jakllsch #endif
    138           1.1  jakllsch 
    139