lib/hexdump: Take const void * and size_t as arguments

Representing a memory location as an unsigned long is specific to
32-bit architectures. It also doesn't make sense to represent a length
assumed to be positive as a signed integer. With this change, it is no
longer necessary to cast a pointer to unsigned long when passing it to
hexdump.

Change-Id: I641777d940ceac6f37c363051f1e9c1b3ec3ed95
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Reviewed-on: http://review.coreboot.org/4575
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Alexandru Gagniuc 2013-12-26 22:53:52 -05:00
parent 8e053afa86
commit 3dd0e72d3b
2 changed files with 4 additions and 3 deletions

View File

@ -22,6 +22,7 @@
#ifndef __LIB_H__ #ifndef __LIB_H__
#define __LIB_H__ #define __LIB_H__
#include <stdint.h> #include <stdint.h>
#include <types.h>
#if !defined(__ROMCC__) /* Conflicts with inline function in arch/io.h */ #if !defined(__ROMCC__) /* Conflicts with inline function in arch/io.h */
/* Defined in src/lib/clog2.c */ /* Defined in src/lib/clog2.c */
@ -57,6 +58,6 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx);
void post_cache_as_ram(void); void post_cache_as_ram(void);
/* Defined in src/lib/hexdump.c */ /* Defined in src/lib/hexdump.c */
void hexdump(unsigned long memory, int length); void hexdump(const void *memory, size_t length);
#endif /* __LIB_H__ */ #endif /* __LIB_H__ */

View File

@ -28,7 +28,7 @@ static int isprint(int c)
return (c >= 32 && c <= 126); return (c >= 32 && c <= 126);
} }
void hexdump(unsigned long memory, int length) void hexdump(const void* memory, size_t length)
{ {
int i; int i;
uint8_t *m; uint8_t *m;
@ -48,7 +48,7 @@ void hexdump(unsigned long memory, int length)
} }
if (all_zero < 2) { if (all_zero < 2) {
printk(BIOS_DEBUG, "%08lx:", memory + i); printk(BIOS_DEBUG, "%p:", memory + i);
for (j = 0; j < 16; j++) for (j = 0; j < 16; j++)
printk(BIOS_DEBUG, " %02x", m[i+j]); printk(BIOS_DEBUG, " %02x", m[i+j]);
printk(BIOS_DEBUG, " "); printk(BIOS_DEBUG, " ");