]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/WinNtSerialIoDxe/WinNtSerialIo.h
BaseTools/Common: add support in FDF Parser to parse MM Modules.
[mirror_edk2.git] / Nt32Pkg / WinNtSerialIoDxe / WinNtSerialIo.h
index c53d2e3fec83096f6f6c033821c31cf56546cb98..f96984eaa0710c3f5743e11e0d7d121c84f447db 100644 (file)
@@ -1,7 +1,7 @@
-/*++\r
+/**@file\r
 \r
-Copyright (c) 2006, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
@@ -16,11 +16,37 @@ Module Name:
 Abstract:\r
 \r
 \r
---*/\r
+**/\r
 \r
 #ifndef _WIN_NT_SERIAL_IO_\r
 #define _WIN_NT_SERIAL_IO_\r
 \r
+//\r
+// The package level header files this module uses\r
+//\r
+#include <Uefi.h>\r
+#include <WinNtDxe.h>\r
+//\r
+// The protocols, PPI and GUID defintions for this module\r
+//\r
+#include <Protocol/WinNtIo.h>\r
+#include <Protocol/ComponentName.h>\r
+#include <Protocol/SerialIo.h>\r
+#include <Protocol/DriverBinding.h>\r
+#include <Protocol/DevicePath.h>\r
+//\r
+// The Library classes this module consumes\r
+//\r
+#include <Library/DebugLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/DevicePathLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/PcdLib.h>\r
+\r
 \r
 #define SERIAL_MAX_BUFFER_SIZE  256\r
 #define TIMEOUT_STALL_INTERVAL  10\r
@@ -32,7 +58,7 @@ typedef struct {
   UINT8   Data[SERIAL_MAX_BUFFER_SIZE];\r
 } SERIAL_DEV_FIFO;\r
 \r
-#define WIN_NT_SERIAL_IO_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('N', 'T', 's', 'i')\r
+#define WIN_NT_SERIAL_IO_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('N', 'T', 's', 'i')\r
 typedef struct {\r
   UINT64                    Signature;\r
 \r
@@ -76,8 +102,9 @@ typedef struct {
 //\r
 // Global Protocol Variables\r
 //\r
-extern EFI_DRIVER_BINDING_PROTOCOL  gWinNtSerialIoDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL  gWinNtSerialIoComponentName;\r
+extern EFI_DRIVER_BINDING_PROTOCOL   gWinNtSerialIoDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL   gWinNtSerialIoComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL  gWinNtSerialIoComponentName2;\r
 \r
 //\r
 // Macros to convert EFI serial types to NT serial types.\r
@@ -93,12 +120,15 @@ extern EFI_COMPONENT_NAME_PROTOCOL  gWinNtSerialIoComponentName;
 #define SERIAL_PARITY_DEFAULT   DefaultParity\r
 #define SERIAL_STOPBITS_DEFAULT DefaultStopBits\r
 \r
-#define SERIAL_CONTROL_MASK     (EFI_SERIAL_CLEAR_TO_SEND       | \\r
-                                 EFI_SERIAL_DATA_SET_READY      | \\r
-                                 EFI_SERIAL_RING_INDICATE       | \\r
-                                 EFI_SERIAL_CARRIER_DETECT      | \\r
-                                 EFI_SERIAL_REQUEST_TO_SEND     | \\r
-                                 EFI_SERIAL_DATA_TERMINAL_READY | \\r
+#define SERIAL_CONTROL_MASK     (EFI_SERIAL_CLEAR_TO_SEND                | \\r
+                                 EFI_SERIAL_DATA_SET_READY               | \\r
+                                 EFI_SERIAL_RING_INDICATE                | \\r
+                                 EFI_SERIAL_CARRIER_DETECT               | \\r
+                                 EFI_SERIAL_REQUEST_TO_SEND              | \\r
+                                 EFI_SERIAL_DATA_TERMINAL_READY          | \\r
+                                 EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE     | \\r
+                                 EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE     | \\r
+                                 EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE | \\r
                                  EFI_SERIAL_INPUT_BUFFER_EMPTY)\r
 \r
 #define ConvertBaud2Nt(x)       (DWORD) x\r
@@ -128,6 +158,12 @@ extern EFI_COMPONENT_NAME_PROTOCOL  gWinNtSerialIoComponentName;
 //\r
 #define SERIAL_PORT_MAX_BAUD_RATE 115400  \r
 \r
+#define SERIAL_PORT_MIN_BAUD_RATE           50\r
+#define SERIAL_PORT_MAX_RECEIVE_FIFO_DEPTH  16\r
+\r
+#define SERIAL_PORT_MIN_TIMEOUT             1         // 1 uS\r
+#define SERIAL_PORT_MAX_TIMEOUT             100000000 // 100 seconds\r
+\r
 //\r
 // Function Prototypes\r
 //\r
@@ -155,7 +191,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoDriverBindingSupported (\r
@@ -182,7 +217,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoDriverBindingStart (\r
@@ -209,7 +243,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoDriverBindingStop (\r
@@ -238,7 +271,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoReset (\r
@@ -261,7 +293,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoSetAttributes (\r
@@ -296,7 +327,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoSetControl (\r
@@ -321,7 +351,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoGetControl (\r
@@ -346,7 +375,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoWrite (\r
@@ -373,7 +401,6 @@ Returns:
 --*/\r
 ;\r
 \r
-STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 WinNtSerialIoRead (\r