source: mainline/boot/arch/ia64/loader/gefi/inc/efiser.h@ 86018c1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 86018c1 was 7208b6c, checked in by Jakub Vana <jakub.vana@…>, 17 years ago

Basic IA64 boot and kernel suport for real machines

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