diff options
Diffstat (limited to 'firmware/stub/vboot_api_stub_init.c')
-rw-r--r-- | firmware/stub/vboot_api_stub_init.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/firmware/stub/vboot_api_stub_init.c b/firmware/stub/vboot_api_stub_init.c new file mode 100644 index 00000000..76a29175 --- /dev/null +++ b/firmware/stub/vboot_api_stub_init.c @@ -0,0 +1,73 @@ +/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Stub implementations of firmware-provided API functions. + */ + +#define _STUB_IMPLEMENTATION_ + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/time.h> + +#include "vboot_api.h" + +/* disable MSVC warnings on unused arguments */ +__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, fixfmt(format), ap); + va_end(ap); + exit(1); +} + +void VbExDebug(const char *format, ...) +{ + va_list ap; + va_start(ap, format); + fprintf(stderr, "DEBUG: "); + vfprintf(stderr, fixfmt(format), ap); + va_end(ap); +} + +uint64_t VbExGetTimer(void) +{ + struct timeval tv; + gettimeofday(&tv, NULL); + return (uint64_t)tv.tv_sec * 1000000 + (uint64_t)tv.tv_usec; +} + +VbError_t VbExNvStorageRead(uint8_t *buf) +{ + return VBERROR_SUCCESS; +} + +VbError_t VbExNvStorageWrite(const uint8_t *buf) +{ + return VBERROR_SUCCESS; +} |