diff options
author | Nico Huber <nico.huber@secunet.com> | 2012-12-10 13:34:12 +0000 |
---|---|---|
committer | David Hendricks <david.hendricks@gmail.com> | 2017-06-03 20:15:56 +0200 |
commit | 1878110848f36c53667c9855f0a413c43e64597f (patch) | |
tree | 66bacd63991be932b3d031dfe280576449b3280e | |
parent | a9fc4f4ebf335f3f20a47a48f2b9c2b00a4de696 (diff) | |
download | flashrom-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-- | Makefile | 2 | ||||
-rw-r--r-- | cli_classic.c | 3 | ||||
-rw-r--r-- | cli_output.c | 13 | ||||
-rw-r--r-- | flash.h | 2 |
4 files changed, 12 insertions, 8 deletions
@@ -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; } @@ -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__ |