mirror of
https://github.com/stefanberger/libtpms
synced 2026-01-15 05:10:04 +00:00
tpm2: Make compileable on OpenBSD
Make TPM 2 code compileable on OpenBSD where we have an older version of gcc with missing builtin swap functions and where endianes #defines area also different. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
This commit is contained in:
parent
d93761932d
commit
659db6b2b8
@ -126,9 +126,25 @@
|
||||
#ifndef _MSC_VER
|
||||
# define WINAPI
|
||||
# define __pragma(x)
|
||||
# define REVERSE_ENDIAN_16(_Number) __builtin_bswap16(_Number)
|
||||
# define REVERSE_ENDIAN_32(_Number) __builtin_bswap32(_Number)
|
||||
# define REVERSE_ENDIAN_64(_Number) __builtin_bswap64(_Number)
|
||||
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR >= 2)
|
||||
# define REVERSE_ENDIAN_16(_Number) __builtin_bswap16(_Number)
|
||||
# define REVERSE_ENDIAN_32(_Number) __builtin_bswap32(_Number)
|
||||
# define REVERSE_ENDIAN_64(_Number) __builtin_bswap64(_Number)
|
||||
# else
|
||||
# if defined __linux__ || defined __CYGWIN__
|
||||
# include <byteswap.h>
|
||||
# define REVERSE_ENDIAN_16(_Number) bswap_16(_Number)
|
||||
# define REVERSE_ENDIAN_32(_Number) bswap_32(_Number)
|
||||
# define REVERSE_ENDIAN_64(_Number) bswap_64(_Number)
|
||||
# elif defined __OpenBSD__
|
||||
# include <endian.h>
|
||||
# define REVERSE_ENDIAN_16(_Number) swap16(_Number)
|
||||
# define REVERSE_ENDIAN_32(_Number) swap32(_Number)
|
||||
# define REVERSE_ENDIAN_64(_Number) swap64(_Number)
|
||||
# else
|
||||
# error Unsupported OS
|
||||
# endif
|
||||
# endif
|
||||
# ifdef INLINE_FUNCTIONS
|
||||
# define INLINE static inline
|
||||
# endif
|
||||
|
||||
@ -82,13 +82,26 @@
|
||||
#define CLEAR 0
|
||||
/* From Vendor-Specific: Table 1 - Defines for Processor Values */
|
||||
#include <endian.h>
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
#define BIG_ENDIAN_TPM NO
|
||||
#define LITTLE_ENDIAN_TPM YES
|
||||
#endif
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
#define BIG_ENDIAN_TPM YES
|
||||
#define LITTLE_ENDIAN_TPM NO
|
||||
#if defined __linux__ || defined __CYGWIN__
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
#define BIG_ENDIAN_TPM NO
|
||||
#define LITTLE_ENDIAN_TPM YES
|
||||
#endif
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
#define BIG_ENDIAN_TPM YES
|
||||
#define LITTLE_ENDIAN_TPM NO
|
||||
#endif
|
||||
#elif defined __OpenBSD__
|
||||
#if _BYTE_ORDER == _LITTLE_ENDIAN
|
||||
#define BIG_ENDIAN_TPM NO
|
||||
#define LITTLE_ENDIAN_TPM YES
|
||||
#endif
|
||||
#if _BYTE_ORDER == _BIG_ENDIAN
|
||||
#define BIG_ENDIAN_TPM YES
|
||||
#define LITTLE_ENDIAN_TPM NO
|
||||
#endif
|
||||
#else
|
||||
#error Unsupported OS
|
||||
#endif
|
||||
#define MOST_SIGNIFICANT_BIT_0 NO
|
||||
#define LEAST_SIGNIFICANT_BIT_0 !MOST_SIGNIFICANT_BIT_0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user