| |
| |
| |
| |
| |
| |
| #include <psxtypes/psxtypes.h> |
| |
| static void __fastcall __ntapi_tt_uint_to_hex_utf16( |
| __in const uint64_t key, |
| __out wchar16_t * buffer, |
| __in unsigned bits) |
| { |
| unsigned i; |
| uint32_t hex_buf[4]; |
| unsigned char * hex_chars; |
| unsigned char * uch; |
| unsigned offset; |
| unsigned bytes; |
| |
| hex_buf[0] = ('3' << 24) | ('2' << 16) | ('1' << 8) | '0'; |
| hex_buf[1] = ('7' << 24) | ('6' << 16) | ('5' << 8) | '4'; |
| hex_buf[2] = ('b' << 24) | ('a' << 16) | ('9' << 8) | '8'; |
| hex_buf[3] = ('f' << 24) | ('e' << 16) | ('d' << 8) | 'c'; |
| |
| uch = (unsigned char *)&key; |
| hex_chars = (unsigned char *)&hex_buf; |
| |
| bytes = bits / 8; |
| offset = bits / 4; |
| |
| for (i = 0; i < bytes; i++) { |
| buffer[offset - 1 - (i*2)] = hex_chars[uch[i] % 16]; |
| buffer[offset - 2 - (i*2)] = hex_chars[uch[i] / 16]; |
| } |
| } |
| |
| |
| __attr_protected__ |
| void __fastcall __ntapi_tt_uint16_to_hex_utf16( |
| __in const uint32_t key, |
| __out wchar16_t * formatted_key) |
| { |
| __ntapi_tt_uint_to_hex_utf16( |
| key, |
| formatted_key, |
| 16); |
| } |
| |
| |
| __attr_protected__ |
| void __fastcall __ntapi_tt_uint32_to_hex_utf16( |
| __in const uint32_t key, |
| __out wchar16_t * formatted_key) |
| { |
| __ntapi_tt_uint_to_hex_utf16( |
| key, |
| formatted_key, |
| 32); |
| } |
| |
| |
| __attr_protected__ |
| void __fastcall __ntapi_tt_uint64_to_hex_utf16( |
| __in const uint64_t key, |
| __out wchar16_t * formatted_key) |
| { |
| __ntapi_tt_uint_to_hex_utf16( |
| key, |
| formatted_key, |
| 64); |
| } |
| |
| |
| __attr_protected__ |
| void __fastcall __ntapi_tt_uintptr_to_hex_utf16( |
| __in const uintptr_t key, |
| __out wchar16_t * formatted_key) |
| { |
| #if (__SIZEOF_POINTER__ == 4) |
| __ntapi_tt_uint_to_hex_utf16( |
| key, |
| formatted_key, |
| 32); |
| #elif (__SIZEOF_POINTER__ == 8) |
| __ntapi_tt_uint_to_hex_utf16( |
| key, |
| formatted_key, |
| 64); |
| #endif |
| } |