54 lines
895 B
C
54 lines
895 B
C
#ifndef GS_UTIL_ENDIAN_H
|
|
#define GS_UTIL_ENDIAN_H
|
|
/* Copyright (c) 2013-2017 GomSpace A/S. All rights reserved. */
|
|
/**
|
|
@file
|
|
|
|
Detecting endian type.
|
|
*/
|
|
|
|
// generated by waf configure, defines either UTIL_BIG_ENDIAN or UTIL_LITTLE_ENDIAN
|
|
#include "../../conf_util.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if !UTIL_BIG_ENDIAN && !UTIL_LITTLE_ENDIAN
|
|
#error No endian defined
|
|
#endif
|
|
#if UTIL_BIG_ENDIAN && UTIL_LITTLE_ENDIAN
|
|
#error Both big and little endian defined
|
|
#endif
|
|
|
|
#include <gs/util/byteorder.h>
|
|
|
|
/**
|
|
Returns \a true if platform is big endian.
|
|
*/
|
|
static inline bool gs_endian_big(void)
|
|
{
|
|
#if (UTIL_BIG_ENDIAN)
|
|
return true;
|
|
#else
|
|
return false;
|
|
#endif
|
|
}
|
|
|
|
/**
|
|
Returns \a true if platform is little endian.
|
|
*/
|
|
static inline bool gs_endian_little(void)
|
|
{
|
|
#if (UTIL_LITTLE_ENDIAN)
|
|
return true;
|
|
#else
|
|
return false;
|
|
#endif
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|