gmio/src/gmio_core/endian.h

52 lines
1.4 KiB
C
Raw Normal View History

2015-03-03 00:38:33 +08:00
/****************************************************************************
** GeomIO Library
** Copyright FougSys (2 Mar. 2015)
** contact@fougsys.fr
**
** This software is a reusable library whose purpose is to provide complete
** I/O support for various CAD file formats (eg. STL)
**
** This software is governed by the CeCILL-B license under French law and
** abiding by the rules of distribution of free software. You can use,
** modify and/ or redistribute the software under the terms of the CeCILL-B
** license as circulated by CEA, CNRS and INRIA at the following URL
** "http://www.cecill.info".
****************************************************************************/
2015-03-05 01:25:51 +08:00
/*! \file endian.h
* Architecture endianness
*/
#ifndef GMIO_ENDIAN_H
#define GMIO_ENDIAN_H
#include "global.h"
2015-03-02 23:49:52 +08:00
/*! This enum identifies common endianness (byte order) of computer memory */
enum gmio_endianness
{
2015-03-03 17:35:36 +08:00
GMIO_LITTLE_ENDIAN,
GMIO_BIG_ENDIAN,
GMIO_MIDDLE_ENDIAN,
GMIO_OTHER_ENDIAN
};
typedef enum gmio_endianness gmio_endianness_t;
enum {
#ifdef GMIO_HOST_IS_BIG_ENDIAN
GMIO_HOST_ENDIANNESS = GMIO_BIG_ENDIAN
#else
GMIO_HOST_ENDIANNESS = GMIO_LITTLE_ENDIAN
#endif
};
GMIO_C_LINKAGE_BEGIN
/*! Returns endianness (byte order) of the host's CPU architecture */
GMIO_LIB_EXPORT gmio_endianness_t gmio_host_endianness();
GMIO_C_LINKAGE_END
#endif /* GMIO_ENDIAN_H */