summaryrefslogtreecommitdiff
path: root/MdePkg/Library/BaseLib/String.c
diff options
context:
space:
mode:
authorbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-10 09:37:12 +0000
committerbxing <bxing@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-10 09:37:12 +0000
commitdee4740abe5925ff25e452c1a705a36f8fb3b4b9 (patch)
tree805251d518c526abd4ab740292bcb208a6d7ff8b /MdePkg/Library/BaseLib/String.c
parent4cbd21753299e5c119af283aa49443a47d7a72fb (diff)
downloadedk2-platforms-dee4740abe5925ff25e452c1a705a36f8fb3b4b9.tar.xz
1. Added AsmCpuidEx() to BaseLib
2. Added DecimalToBcd8() and BcdToDecimal8() to String.c git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@465 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseLib/String.c')
-rw-r--r--MdePkg/Library/BaseLib/String.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/MdePkg/Library/BaseLib/String.c b/MdePkg/Library/BaseLib/String.c
index 6ef2c3b2d3..0483fc712e 100644
--- a/MdePkg/Library/BaseLib/String.c
+++ b/MdePkg/Library/BaseLib/String.c
@@ -796,3 +796,51 @@ AsciiStrnCat (
ASSERT (AsciiStrSize (Destination) != 0);
return Destination;
}
+
+/**
+ Converts an 8-bit value to an 8-bit BCD value.
+
+ Converts the 8-bit value specified by Value to BCD. The BCD value is
+ returned.
+
+ If Value >= 100, then ASSERT().
+
+ @param Value The 8-bit value to convert to BCD. Range 0..99.
+
+ @return The BCD value
+
+**/
+UINT8
+EFIAPI
+DecimalToBcd8 (
+ IN UINT8 Value
+ )
+{
+ ASSERT (Value < 100);
+ return ((Value / 10) << 4) | (Value % 10);
+}
+
+/**
+ Converts an 8-bit BCD value to an 8-bit value.
+
+ Converts the 8-bit BCD value specified by Value to an 8-bit value. The 8-bit
+ value is returned.
+
+ If Value >= 0xA0, then ASSERT().
+ If (Value & 0x0F) >= 0x0A, then ASSERT().
+
+ @param Value The 8-bit BCD value to convert to an 8-bit value.
+
+ @return The 8-bit value is returned.
+
+**/
+UINT8
+EFIAPI
+BcdToDecimal8 (
+ IN UINT8 Value
+ )
+{
+ ASSERT (Value < 0xa0);
+ ASSERT ((Value & 0xf) < 0xa);
+ return (Value >> 4) * 10 + (Value & 0xf);
+}