summaryrefslogtreecommitdiff
path: root/util/nvramtool/nvramtool.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/nvramtool/nvramtool.c')
-rw-r--r--util/nvramtool/nvramtool.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/util/nvramtool/nvramtool.c b/util/nvramtool/nvramtool.c
index 98de6dc929..1832477139 100644
--- a/util/nvramtool/nvramtool.c
+++ b/util/nvramtool/nvramtool.c
@@ -1,6 +1,5 @@
/*****************************************************************************\
* nvramtool.c
- * $Id$
*****************************************************************************
* Copyright (C) 2002-2005 The Regents of the University of California.
* Produced at the Lawrence Livermore National Laboratory.
@@ -477,6 +476,11 @@ static void list_param_enums (const char name[])
e->length);
break;
+ case CMOS_ENTRY_STRING:
+ printf("Parameter %s requires a %u-byte string.\n", name,
+ e->length / 8);
+ break;
+
case CMOS_ENTRY_RESERVED:
printf("Parameter %s is reserved.\n", name);
break;
@@ -570,7 +574,7 @@ static void set_one_param (const char name[], const char value[])
/* write the value to nonvolatile RAM */
set_iopl(3);
- cmos_write(e->bit, e->length, n);
+ cmos_write(e, n);
cmos_checksum_write(cmos_checksum_compute());
set_iopl(0);
return;
@@ -674,7 +678,7 @@ static int list_cmos_entry (const cmos_entry_t *e, int show_name)
/* read the value from CMOS */
set_iopl(3);
- value = cmos_read(e->bit, e->length);
+ value = cmos_read(e);
set_iopl(0);
/* display the value */
@@ -703,6 +707,16 @@ static int list_cmos_entry (const cmos_entry_t *e, int show_name)
break;
+ case CMOS_ENTRY_STRING:
+ if (show_name)
+ printf("%s = %s\n", e->name, (char *)(unsigned long)value);
+ else
+ printf("%s\n", (char *)(unsigned long)value);
+
+ free((void *)(unsigned long)value);
+
+ break;
+
case CMOS_ENTRY_RESERVED:
default:
BUG();