| /* Copyright (c) 2010 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. |
| */ |
| |
| /* System includes for vboot reference library. This is the ONLY |
| * place in firmware/ where system headers may be included via |
| * #include <...>, so that there's only one place that needs to be |
| * fixed up for platforms which don't have all the system includes. |
| * |
| * Files in firmware/stub may still include system headers, because |
| * they're local implementations and will be ported to each system |
| * anyway. */ |
| |
| #ifndef VBOOT_REFERENCE_SYSINCLUDES_H_ |
| #define VBOOT_REFERENCE_SYSINCLUDES_H_ |
| |
| #ifdef CHROMEOS_ENVIRONMENT |
| |
| #include <inttypes.h> /* For PRIu64 */ |
| #include <stdint.h> |
| #include <stdlib.h> |
| |
| #if defined(HAVE_ENDIAN_H) && defined(HAVE_LITTLE_ENDIAN) |
| #include <byteswap.h> |
| #include <memory.h> |
| #endif |
| |
| #define POSSIBLY_UNUSED __attribute__((unused)) |
| |
| #ifdef __STRICT_ANSI__ |
| #define INLINE |
| #else |
| #define INLINE inline |
| #endif |
| |
| #else |
| #include "biosincludes.h" |
| #endif |
| |
| #ifndef _MSC_VER |
| #define __pragma(...) |
| #endif |
| |
| #if defined (CHROMEOS_ENVIRONMENT) || defined (TARGET_TEST_MODE) |
| |
| /* 64-bit operations, for platforms where they need to be function calls */ |
| #define UINT64_RSHIFT(v, shiftby) (((uint64_t)(v)) >> (shiftby)) |
| #define UINT64_MULT32(v, multby) (((uint64_t)(v)) * ((uint32_t)(multby))) |
| |
| #endif |
| |
| #endif /* VBOOT_REFERENCE_SYSINCLUDES_H_ */ |