Rewrote "u8ToHexString" & "u32ToHexString"

This commit is contained in:
Alex 2023-01-07 17:56:13 +02:00
parent e1aa6fff1c
commit 9a59137064
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -14,42 +14,34 @@ namespace PCI
{ {
namespace Descriptors namespace Descriptors
{ {
char HexToStringOutput8[128];
const char *u8ToHexString(uint8_t Value) const char *u8ToHexString(uint8_t Value)
{ {
uint8_t *ValuePtr = &Value; static char Buffer[3];
uint8_t *Ptr; memset(Buffer, 0, 3);
uint8_t Temp; for (size_t i = 0; i < 2; i++)
uint8_t Size = 1 * 2 - 1;
for (uint8_t i = 0; i < Size; i++)
{ {
Ptr = ((uint8_t *)ValuePtr + i); uint8_t Digit = (Value >> (4 - (i * 4))) & 0xF;
Temp = ((*Ptr & 0xF0) >> 4); if (Digit < 10)
HexToStringOutput8[Size - (i * 2 + 1)] = Temp + (Temp > 9 ? 55 : '0'); Buffer[i] = '0' + Digit;
Temp = ((*Ptr & 0x0F)); else
HexToStringOutput8[Size - (i * 2)] = Temp + (Temp > 9 ? 55 : '0'); Buffer[i] = 'A' + (Digit - 10);
} }
HexToStringOutput8[Size + 1] = 0; return Buffer;
return HexToStringOutput8;
} }
char HexToStringOutput32[128];
const char *u32ToHexString(uint32_t Value) const char *u32ToHexString(uint32_t Value)
{ {
uint32_t *ValuePtr = &Value; static char Buffer[9];
uint8_t *Ptr; memset(Buffer, 0, 9);
uint8_t Temp; for (size_t i = 0; i < 8; i++)
uint8_t Size = 4 * 2 - 1;
for (uint8_t i = 0; i < Size; i++)
{ {
Ptr = ((uint8_t *)ValuePtr + i); uint8_t Digit = (Value >> (28 - (i * 4))) & 0xF;
Temp = ((*Ptr & 0xF0) >> 4); if (Digit < 10)
HexToStringOutput32[Size - (i * 2 + 1)] = Temp + (Temp > 9 ? 55 : '0'); Buffer[i] = '0' + Digit;
Temp = ((*Ptr & 0x0F)); else
HexToStringOutput32[Size - (i * 2)] = Temp + (Temp > 9 ? 55 : '0'); Buffer[i] = 'A' + (Digit - 10);
} }
HexToStringOutput32[Size + 1] = 0; return Buffer;
return HexToStringOutput32;
} }
const char *MassStorageControllerSubclassName(uint8_t SubclassCode) const char *MassStorageControllerSubclassName(uint8_t SubclassCode)