summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2012-12-10 13:34:12 +0000
committerDavid Hendricks <david.hendricks@gmail.com>2017-06-03 20:15:56 +0200
commit1878110848f36c53667c9855f0a413c43e64597f (patch)
tree66bacd63991be932b3d031dfe280576449b3280e
parenta9fc4f4ebf335f3f20a47a48f2b9c2b00a4de696 (diff)
downloadflashrom-1878110848f36c53667c9855f0a413c43e64597f.tar.gz
flashrom-1878110848f36c53667c9855f0a413c43e64597f.tar.bz2
flashrom-1878110848f36c53667c9855f0a413c43e64597f.zip
Adapt CLI to use new libflashrom interface' print callback
This renames CLI's print() to flashrom_print_cb() and registers it through the new libflashrom interface. v2: Add libflashrom.o to LIB_OBJS now that everything can be linked together. Change-Id: Idf19978eb8e340d258199193d2978f37409e9983 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/17948 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: David Hendricks <david.hendricks@gmail.com>
-rw-r--r--Makefile2
-rw-r--r--cli_classic.c3
-rw-r--r--cli_output.c13
-rw-r--r--flash.h2
4 files changed, 12 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 88130c812..01a179dd0 100644
--- a/Makefile
+++ b/Makefile
@@ -519,7 +519,7 @@ CHIP_OBJS = jedec.o stm50.o w39.o w29ee011.o \
###############################################################################
# Library code.
-LIB_OBJS = layout.o flashrom.o udelay.o programmer.o helpers.o
+LIB_OBJS = libflashrom.o layout.o flashrom.o udelay.o programmer.o helpers.o
###############################################################################
# Frontend related stuff.
diff --git a/cli_classic.c b/cli_classic.c
index a2c20141c..984a4dac2 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -30,6 +30,7 @@
#include "flash.h"
#include "flashchips.h"
#include "programmer.h"
+#include "libflashrom.h"
static void cli_classic_usage(const char *name)
{
@@ -135,6 +136,8 @@ int main(int argc, char *argv[])
char *tempstr = NULL;
char *pparam = NULL;
+ flashrom_set_log_callback((flashrom_log_callback *)&flashrom_print_cb);
+
print_version();
print_banner();
diff --git a/cli_output.c b/cli_output.c
index feafbd201..e69798503 100644
--- a/cli_output.c
+++ b/cli_output.c
@@ -71,19 +71,19 @@ void start_logging(void)
#endif /* !STANDALONE */
/* Please note that level is the verbosity, not the importance of the message. */
-int print(enum msglevel level, const char *fmt, ...)
+int flashrom_print_cb(enum msglevel level, const char *fmt, va_list ap)
{
- va_list ap;
int ret = 0;
FILE *output_type = stdout;
+ va_list logfile_args;
+ va_copy(logfile_args, ap);
+
if (level < MSG_INFO)
output_type = stderr;
if (level <= verbose_screen) {
- va_start(ap, fmt);
ret = vfprintf(output_type, fmt, ap);
- va_end(ap);
/* msg_*spew often happens inside chip accessors in possibly
* time-critical operations. Don't slow them down by flushing. */
if (level != MSG_SPEW)
@@ -91,12 +91,11 @@ int print(enum msglevel level, const char *fmt, ...)
}
#ifndef STANDALONE
if ((level <= verbose_logfile) && logfile) {
- va_start(ap, fmt);
- ret = vfprintf(logfile, fmt, ap);
- va_end(ap);
+ ret = vfprintf(logfile, fmt, logfile_args);
if (level != MSG_SPEW)
fflush(logfile);
}
#endif /* !STANDALONE */
+ va_end(logfile_args);
return ret;
}
diff --git a/flash.h b/flash.h
index 1da7e4121..db8430c7f 100644
--- a/flash.h
+++ b/flash.h
@@ -30,6 +30,7 @@
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
+#include <stdarg.h>
#include <stdbool.h>
#if IS_WINDOWS
#include <windows.h>
@@ -321,6 +322,7 @@ enum msglevel {
MSG_DEBUG2 = 4,
MSG_SPEW = 5,
};
+int flashrom_print_cb(enum msglevel level, const char *fmt, va_list ap);
/* Let gcc and clang check for correct printf-style format strings. */
int print(enum msglevel level, const char *fmt, ...)
#ifdef __MINGW32__