Here is an observation with PrintLib :

UINT16 myuint16 = 0xFFFF;
Print(L"%d", myuint16)                  -->        displays     65535.


So far, so good.

UINT32 myuint32 = 0xFFFFFFFF;
Print(L"%d", myuint32)                 -->         displays    -1
Print(L"%ld", myuint32)                -->         displays    4294967295.


That is good.  %ld handles a 32bit value where all  bits are 1.

But the same does not work for a 64bit value:

UINT64 myuint64 = 0xFFFFFFFFFFFFFFFF;
Print(L"%ld", myuint64)                --> displays    -1

According to the library header file at MdePkg\Include\Library\PrintLib.h, 
using "%Ld" should indicate UINT64. However, the code seems to use INT64.


Thanks,
--Samer
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to