Remove overengineering, part 1/many
authorPatrick Georgi <patrick.georgi@secunet.com>
Tue, 18 Jan 2011 12:14:08 +0000 (12:14 +0000)
committerPatrick Georgi <patrick.georgi@coresystems.de>
Tue, 18 Jan 2011 12:14:08 +0000 (12:14 +0000)
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
Acked-by: Patrick Georgi <patrick.georgi@secunet.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6267 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

util/nvramtool/hexdump.c
util/nvramtool/hexdump.h
util/nvramtool/lbtable.c
util/nvramtool/nvramtool.c

index 405703fe732285ebf3d06f193035c6a7fd64710d..320b4d9f4557f2e67832979cd855e3e79977943f 100644 (file)
@@ -46,8 +46,7 @@
 static void addrprint(FILE * outfile, uint64_t address, int width);
 static void hexprint(FILE * outfile, unsigned char byte);
 static void charprint(FILE * outfile, unsigned char byte,
-                     unsigned char nonprintable,
-                     is_printable_fn_t is_printable_fn);
+                     unsigned char nonprintable);
 
 /*--------------------------------------------------------------------------
  * hexdump
@@ -70,17 +69,11 @@ void hexdump(const void *mem, int bytes, uint64_t addrprint_start,
 {
        int bytes_left, index, i;
        const unsigned char *p;
-       is_printable_fn_t is_printable_fn;
 
        /* Quietly return if the caller asks us to do something unreasonable. */
        if ((format->bytes_per_line <= 0) || (bytes < 0))
                return;
 
-       is_printable_fn = format->is_printable_fn;
-
-       if (is_printable_fn == NULL)
-               is_printable_fn = default_is_printable_fn;
-
        p = (const unsigned char *)mem;
        index = 0;
 
@@ -112,8 +105,7 @@ void hexdump(const void *mem, int bytes, uint64_t addrprint_start,
 
                /* display the bytes as characters */
                for (i = 0; i < format->bytes_per_line; i++)
-                       charprint(outfile, p[index++], format->nonprintable,
-                                 is_printable_fn);
+                       charprint(outfile, p[index++], format->nonprintable);
 
                fprintf(outfile, "\n");
        }
@@ -148,8 +140,7 @@ void hexdump(const void *mem, int bytes, uint64_t addrprint_start,
 
        /* display bytes for last line as characters */
        for (i = 0; i < bytes_left; i++)
-               charprint(outfile, p[index++], format->nonprintable,
-                         is_printable_fn);
+               charprint(outfile, p[index++], format->nonprintable);
 
        /* pad the rest of the character area with spaces */
        for (; i < format->bytes_per_line; i++)
@@ -158,25 +149,6 @@ void hexdump(const void *mem, int bytes, uint64_t addrprint_start,
        fprintf(outfile, "\n");
 }
 
-/*--------------------------------------------------------------------------
- * default_is_printable_fn
- *
- * Determine whether the input character is printable.  The proper behavior
- * for this type of function may be system-dependent.  This function takes a
- * conservative approach.  If it is not adequate for your purposes, you can
- * write your own.
- *
- * parameters:
- *     c: the input character
- *
- * return value:
- *     Return 1 if the input character is printable.  Otherwise return 0.
- *--------------------------------------------------------------------------*/
-int default_is_printable_fn(unsigned char c)
-{
-       return (c >= 0x20) && (c <= 0x7e);
-}
-
 /*--------------------------------------------------------------------------
  * addrprint
  *
@@ -245,12 +217,9 @@ static void hexprint(FILE * outfile, unsigned char byte)
  *     byte:            the byte to display
  *     nonprintable:    a substitute character to display if the byte
  *                      represents a nonprintable character
- *     is_printable_fn: a function that returns a boolean value indicating
- *                      whether a given character is printable
  *--------------------------------------------------------------------------*/
 static void charprint(FILE * outfile, unsigned char byte,
-                     unsigned char nonprintable,
-                     is_printable_fn_t is_printable_fn)
+                     unsigned char nonprintable)
 {
-       fprintf(outfile, "%c", is_printable_fn(byte) ? byte : nonprintable);
+       fprintf(outfile, "%c", ((byte >= 0x20) && (byte <= 0x7e)) ? byte : nonprintable);
 }
index a63ec02f98f576e86fd9b076028719d8f76f26ef..14c4bbfd4ae23d2a187e6af2c4a9793aedcea5ec 100644 (file)
@@ -48,8 +48,6 @@
 #include <sys/types.h>
 #include <stdio.h>
 
-typedef int (*is_printable_fn_t) (unsigned char c);
-
 /*--------------------------------------------------------------------------
  * hexdump_format_t
  *
@@ -75,11 +73,6 @@ typedef int (*is_printable_fn_t) (unsigned char c);
  *                      characters.  It serves as a separator.
  *     nonprintable:    This is a substitute character to display in place
  *                      of nonprintable characters.
- *     is_printable_fn: This is a user-supplied function that takes a byte
- *                      value as input and returns a boolean value
- *                      indicating whether the corresponding character is
- *                      printable.  A value of NULL will cause
- *                      default_is_printable_fn to be used.
  *--------------------------------------------------------------------------*/
 typedef struct {
        int bytes_per_line;
@@ -89,7 +82,6 @@ typedef struct {
        const char *sep2;
        const char *sep3;
        unsigned char nonprintable;
-       is_printable_fn_t is_printable_fn;
 } hexdump_format_t;
 
 /*--------------------------------------------------------------------------
@@ -111,20 +103,4 @@ typedef struct {
 void hexdump(const void *mem, int bytes, uint64_t addrprint_start,
             FILE * outfile, const hexdump_format_t * format);
 
-/*--------------------------------------------------------------------------
- * default_is_printable_fn
- *
- * Determine whether the input character is printable.  The proper behavior
- * for this type of function may be system-dependent.  This function appears
- * to work well on a Linux system.  However, if it is not adequate for your
- * purposes, you can write your own.
- *
- * parameters:
- *     c: the input character
- *
- * return value:
- *     Return 1 if the input character is printable.  Otherwise return 0.
- *--------------------------------------------------------------------------*/
-int default_is_printable_fn(unsigned char c);
-
 #endif                         /* _HEXDUMP_H */
index 0a502a4722a21988b73bb174b1c8414b79ce994e..3753737b7e9ca5a2dcc4f5aaedc4ccfecafeae34 100644 (file)
@@ -234,7 +234,7 @@ static const struct lb_header *lbtable = NULL;
 static const struct cmos_option_table *cmos_table = NULL;
 
 static const hexdump_format_t format =
-    { 12, 4, "            ", " | ", " ", " | ", '.', NULL };
+    { 12, 4, "            ", " | ", " ", " | ", '.' };
 
 /****************************************************************************
  * vtophys
index 89ddf31d71a45fc3685b26565ddc132ce5fd7994..e82d0ac9d8cd0ed7b91b3e9d8a47cde2e3ab1983 100644 (file)
@@ -85,7 +85,7 @@ static const op_fn_t op_fns[] = { op_show_version,
 };
 
 static const hexdump_format_t cmos_dump_format =
-    { 16, 2, "", " | ", " ", " | ", '.', NULL };
+    { 16, 2, "", " | ", " ", " | ", '.' };
 
 /****************************************************************************
  * main