summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2009-08-18 21:00:02 +0000
committermdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2009-08-18 21:00:02 +0000
commitb5a6c9d9e0d288b0eb4438e4558f8e1d4f2731a7 (patch)
tree02e117ee8b91031a182d71c03784f91c82f6c380
parent2fa3661a3457971fa4e418e04d350192fe9bfddc (diff)
downloadedk2-b5a6c9d9e0d288b0eb4438e4558f8e1d4f2731a7.zip
edk2-b5a6c9d9e0d288b0eb4438e4558f8e1d4f2731a7.tar.gz
edk2-b5a6c9d9e0d288b0eb4438e4558f8e1d4f2731a7.tar.bz2
Update BasePrintLib to work correctly on compilers where VA_LIST is a structure
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9109 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--MdePkg/Library/BasePrintLib/PrintLib.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/MdePkg/Library/BasePrintLib/PrintLib.c b/MdePkg/Library/BasePrintLib/PrintLib.c
index 2066c7a..3bf4d0c 100644
--- a/MdePkg/Library/BasePrintLib/PrintLib.c
+++ b/MdePkg/Library/BasePrintLib/PrintLib.c
@@ -2,6 +2,7 @@
Base Print Library instance implementation.
Copyright (c) 2006 - 2008, Intel Corporation<BR>
+ Portions Copyright (c) 2008-2009 Apple Inc.<BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -14,6 +15,14 @@
#include "PrintLibInternal.h"
+//
+// Declare a VA_LIST global variable that is used in calls to BasePrintLibSPrintMarker()
+// when the BASE_LIST parameter is valid and the VA_LIST parameter is ignored.
+// A NULL VA_LIST can not be passed into BasePrintLibSPrintMarker() because some
+// compilers define VA_LIST to be a structure.
+//
+VA_LIST gNullVaList;
+
#define ASSERT_UNICODE_BUFFER(Buffer) ASSERT ((((UINTN) (Buffer)) & 0x01) == 0)
/**
@@ -109,7 +118,7 @@ UnicodeBSPrint (
{
ASSERT_UNICODE_BUFFER (StartOfBuffer);
ASSERT_UNICODE_BUFFER (FormatString);
- return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, FORMAT_UNICODE | OUTPUT_UNICODE, (CHAR8 *)FormatString, NULL, Marker);
+ return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, FORMAT_UNICODE | OUTPUT_UNICODE, (CHAR8 *)FormatString, gNullVaList, Marker);
}
/**
@@ -250,7 +259,7 @@ UnicodeBSPrintAsciiFormat (
)
{
ASSERT_UNICODE_BUFFER (StartOfBuffer);
- return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, OUTPUT_UNICODE, FormatString, NULL, Marker);
+ return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, OUTPUT_UNICODE, FormatString, gNullVaList, Marker);
}
/**
@@ -441,7 +450,7 @@ AsciiBSPrint (
IN BASE_LIST Marker
)
{
- return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, 0, FormatString, NULL, Marker);
+ return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, 0, FormatString, gNullVaList, Marker);
}
/**
@@ -581,7 +590,7 @@ AsciiBSPrintUnicodeFormat (
)
{
ASSERT_UNICODE_BUFFER (FormatString);
- return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, FORMAT_UNICODE, (CHAR8 *)FormatString, NULL, Marker);
+ return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, FORMAT_UNICODE, (CHAR8 *)FormatString, gNullVaList, Marker);
}
/**