From 504dcb0a4e04dd76db230cc55c4f95f7a911d127 Mon Sep 17 00:00:00 2001 From: mdkinney Date: Sat, 30 May 2009 23:49:35 +0000 Subject: This checkin addresses the compatibility issue of passing arguments of type VA_LIST between components. The type VA_LIST is mapped onto the compiler specific implementation of varargs. As a result, modules build with different compilers may not use the same VA_LIST structure. The solution to this issue is to define a new type called BASE_LIST that is a compiler independent method of passing varargs between modules. 1) Update the Print2 Protocol to only use arguments of type BASE_LIST. Since this is a change to the protocol definition, the GUID has also been updated. 2) Update the implementation of DxePrintLibPrint2Protocol for the update definition of the Print2 Protocol. Since the PrintLib does contain APIs that use VA_LIST, this library must convert arguments of type VA_LIST to arguments of type BASE_LIST prior to calling the Print2 Protocol services. 3) Update the implementation of PrintDxe to match the updated Print2 Prootocol git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8405 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/PrintDxe/Print.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'MdeModulePkg/Universal/PrintDxe') diff --git a/MdeModulePkg/Universal/PrintDxe/Print.c b/MdeModulePkg/Universal/PrintDxe/Print.c index 2a617b9..b97b1de 100644 --- a/MdeModulePkg/Universal/PrintDxe/Print.c +++ b/MdeModulePkg/Universal/PrintDxe/Print.c @@ -23,19 +23,18 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. EFI_HANDLE mPrintThunkHandle = NULL; CONST EFI_PRINT2_PROTOCOL mPrint2Protocol = { - UnicodeVSPrint, + UnicodeBSPrint, UnicodeSPrint, - UnicodeVSPrintAsciiFormat, + UnicodeBSPrintAsciiFormat, UnicodeSPrintAsciiFormat, UnicodeValueToString, - AsciiVSPrint, + AsciiBSPrint, AsciiSPrint, - AsciiVSPrintUnicodeFormat, + AsciiBSPrintUnicodeFormat, AsciiSPrintUnicodeFormat, AsciiValueToString }; - /** The user Entry Point for Print module. -- cgit v1.1