]>
git.proxmox.com Git - efi-boot-shim.git/blob - hexdump.h
1 #ifndef STATIC_HEXDUMP_H
2 #define STATIC_HEXDUMP_H
5 __attribute__((__unused__
))
16 __attribute__((__unused__
))
17 format_hex(UINT8
*data
, UINTN size
, CHAR16
*buf
)
19 UINTN sz
= (UINTN
)data
% 16;
20 CHAR16 hexchars
[] = L
"0123456789abcdef";
25 for (i
= 0; i
< sz
; i
++) {
32 for (j
= sz
; j
< 16 && j
< size
; j
++) {
34 buf
[offset
++] = hexchars
[(d
& 0xf0) >> 4];
35 buf
[offset
++] = hexchars
[(d
& 0x0f)];
41 for (i
= j
; i
< 16; i
++) {
54 __attribute__((__unused__
))
55 format_text(UINT8
*data
, UINTN size
, CHAR16
*buf
)
57 UINTN sz
= (UINTN
)data
% 16;
62 for (i
= 0; i
< sz
; i
++)
65 for (j
= sz
; j
< 16 && j
< size
; j
++) {
66 if (isprint(data
[j
-sz
]))
67 buf
[offset
++] = data
[j
-sz
];
72 for (i
= j
; i
< 16; i
++)
78 __attribute__((__unused__
))
79 hexdump(UINT8
*data
, UINTN size
)
81 UINTN display_offset
= (UINTN
)data
& 0xffffffff;
83 //Print(L"hexdump: data=0x%016x size=0x%x\n", data, size);
85 while (offset
< size
) {
90 sz
= format_hex(data
+offset
, size
-offset
, hexbuf
);
93 uefi_call_wrapper(BS
->Stall
, 1, 200000);
95 format_text(data
+offset
, size
-offset
, txtbuf
);
96 Print(L
"%08x %s %s\n", display_offset
, hexbuf
, txtbuf
);
97 uefi_call_wrapper(BS
->Stall
, 1, 200000);