summaryrefslogtreecommitdiff
path: root/firmware/stub
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2012-01-19 13:47:33 -0800
committerStefan Reinauer <reinauer@chromium.org>2012-01-19 17:04:14 -0800
commit037dba21243559e93aa98c428c0655ceb418b23f (patch)
treef620bdd198347f79d446815acf0bbcb221206d70 /firmware/stub
parent885a9774ef469666854a0e4bed7c33733d0396c7 (diff)
downloadvboot-037dba21243559e93aa98c428c0655ceb418b23f.tar.gz
Fix audio loop for long-delay keyboard reads.
BUG=chrome-os-partner:7428 TEST=manual Switch to dev-mode, turn it on, see how long it takes. With gbb.flags == 1 (factory mode), it should take 2 seconds. (You'll see a warning on the screen if gbb.flags is nonzero) With gbb.flags == 0 (after factory install), it should take 30 seconds. You should hear two beeps at 20 seconds. Change-Id: I4f14128b87d3482e291b1b40a11a6d27c72c1ad1 Reviewed-on: https://gerrit.chromium.org/gerrit/14534 Tested-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Stefan Reinauer <reinauer@chromium.org> Commit-Ready: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'firmware/stub')
-rw-r--r--firmware/stub/vboot_api_stub.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/firmware/stub/vboot_api_stub.c b/firmware/stub/vboot_api_stub.c
index 732facb9..f3289e2b 100644
--- a/firmware/stub/vboot_api_stub.c
+++ b/firmware/stub/vboot_api_stub.c
@@ -19,11 +19,27 @@
__pragma(warning (disable: 4100))
+/* U-Boot's printf uses '%L' for uint64_t. gcc uses '%l'. */
+#define MAX_FMT 255
+static char fmtbuf[MAX_FMT+1];
+static const char *fixfmt(const char *format) {
+ int i;
+ for(i=0; i<MAX_FMT && format[i]; i++) {
+ fmtbuf[i] = format[i];
+ if(format[i] == '%' && format[i+1] == 'L') {
+ fmtbuf[i+1] = 'l';
+ i++;
+ }
+ }
+ fmtbuf[i] = '\0';
+ return fmtbuf;
+}
+
void VbExError(const char* format, ...) {
va_list ap;
va_start(ap, format);
fprintf(stderr, "ERROR: ");
- vfprintf(stderr, format, ap);
+ vfprintf(stderr, fixfmt(format), ap);
va_end(ap);
exit(1);
}
@@ -31,9 +47,10 @@ void VbExError(const char* format, ...) {
void VbExDebug(const char* format, ...) {
va_list ap;
+ int i;
va_start(ap, format);
fprintf(stderr, "DEBUG: ");
- vfprintf(stderr, format, ap);
+ vfprintf(stderr, fixfmt(format), ap);
va_end(ap);
}