/* 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. */ /* * Helper functions/wrappers for memory allocations, manipulation and * comparison. */ #ifndef VBOOT_REFERENCE_UTILITY_H_ #define VBOOT_REFERENCE_UTILITY_H_ #include "2common.h" #include "sysincludes.h" #include "vboot_api.h" #ifdef VBOOT_DEBUG #define VbAssert(expr) do { if (!(expr)) { \ VB2_DEBUG("assert fail: %s at %s:%d\n", \ #expr, __FILE__, __LINE__); \ exit(1); }} while(0) #else #define VbAssert(expr) #endif /* * Buffer size required to hold the longest possible output of Uint64ToString() * - that is, Uint64ToString(~0, 2). */ #define UINT64_TO_STRING_MAX 65 /** * Convert a value to a string in the specified radix (2=binary, 10=decimal, * 16=hex) and store it in , which is chars long. If * , left-pads the string to at least that width with '0'. * Returns the length of the stored string, not counting the terminating null. */ uint32_t Uint64ToString(char *buf, uint32_t bufsize, uint64_t value, uint32_t radix, uint32_t zero_pad_width); /** * Concatenate onto , which has space for characters * including the terminating null. Note that will always be * null-terminated if > 0. Returns the number of characters used in * , not counting the terminating null. */ uint32_t StrnAppend(char *dest, const char *src, uint32_t destlen); #endif /* VBOOT_REFERENCE_UTILITY_H_ */