]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add CONSTRUCTOR to BaseDebugLibSerialPort to call SerialPortInitialize() in the Seria...
authormdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 18 Dec 2010 00:24:34 +0000 (00:24 +0000)
committermdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>
Sat, 18 Dec 2010 00:24:34 +0000 (00:24 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11183 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c

index dd2a014db417132a50390cd8de46d31e096fb6cd..be636c89a2c3d40ad966fd84b126519c887e5aea 100644 (file)
@@ -21,6 +21,7 @@
   MODULE_TYPE                    = BASE\r
   VERSION_STRING                 = 1.0\r
   LIBRARY_CLASS                  = DebugLib \r
+  CONSTRUCTOR                    = BaseDebugLibSerialPortConstructor\r
 \r
 #\r
 #  VALID_ARCHITECTURES           = IA32 X64 IPF EBC\r
index 2e1eb5be1aae003fd59059ca6983b3f9c4afe911..b54fa15d98b62e86f43e0fc321397b0baa657651 100644 (file)
@@ -1,8 +1,13 @@
 /** @file\r
   Base Debug library instance base on Serial Port library.\r
   It uses PrintLib to send debug messages to serial port device.\r
+  \r
+  NOTE: If the Serial Port library enables hardware flow control, then a call \r
+  to DebugPrint() or DebugAssert() may hang if writes to the serial port are \r
+  being blocked.  This may occur if a key(s) are pressed in a terminal emulator\r
+  used to monitor the DEBUG() and ASSERT() messages. \r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2010, 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
 //\r
 #define MAX_DEBUG_MESSAGE_LENGTH  0x100\r
 \r
+/**\r
+  The constructor function initialize the Serial Port Library\r
+\r
+  @retval EFI_SUCCESS   The constructor always returns RETURN_SUCCESS.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+BaseDebugLibSerialPortConstructor (\r
+  VOID\r
+  )\r
+{\r
+  return SerialPortInitialize ();\r
+}\r
+\r
 /**\r
   Prints a debug message to the debug output device if the specified error level is enabled.\r
 \r
@@ -60,7 +80,7 @@ DebugPrint (
   //\r
   // Check driver debug mask value and global mask\r
   //\r
-  if ((ErrorLevel & PcdGet32(PcdDebugPrintErrorLevel)) == 0) {\r
+  if ((ErrorLevel & PcdGet32 (PcdDebugPrintErrorLevel)) == 0) {\r
     return;\r
   }\r
 \r
@@ -74,7 +94,7 @@ DebugPrint (
   //\r
   // Send the print string to a Serial Port \r
   //\r
-  SerialPortWrite ((UINT8 *) Buffer, AsciiStrLen(Buffer));\r
+  SerialPortWrite ((UINT8 *)Buffer, AsciiStrLen (Buffer));\r
 }\r
 \r
 \r
@@ -117,7 +137,7 @@ DebugAssert (
   //\r
   // Send the print string to the Console Output device\r
   //\r
-  SerialPortWrite ((UINT8 *) Buffer, AsciiStrLen(Buffer));\r
+  SerialPortWrite ((UINT8 *)Buffer, AsciiStrLen (Buffer));\r
 \r
   //\r
   // Generate a Breakpoint, DeadLoop, or NOP based on PCD settings\r