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
|
|
|
|
*/
|
|
|
|
|
2014-03-28 23:33:35 +08:00
|
|
|
#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 */
|
2014-03-28 23:33:35 +08:00
|
|
|
enum gmio_endianness
|
|
|
|
{
|
2015-03-03 17:35:36 +08:00
|
|
|
GMIO_LITTLE_ENDIAN,
|
|
|
|
GMIO_BIG_ENDIAN,
|
|
|
|
GMIO_OTHER_ENDIAN
|
2014-03-28 23:33:35 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef enum gmio_endianness gmio_endianness_t;
|
|
|
|
|
2015-03-20 16:07:02 +08:00
|
|
|
/*! Constants for host endianness */
|
2015-03-20 15:53:20 +08:00
|
|
|
enum {
|
|
|
|
#ifdef GMIO_HOST_IS_BIG_ENDIAN
|
|
|
|
GMIO_HOST_ENDIANNESS = GMIO_BIG_ENDIAN
|
|
|
|
#else
|
2015-03-20 16:07:02 +08:00
|
|
|
/*! Defines the endianness(byte order) used by the host computer for storing
|
|
|
|
* data in memory.
|
|
|
|
*
|
|
|
|
* It is set at configure-time to one of the value of gmio_endianness
|
|
|
|
*/
|
2015-03-20 15:53:20 +08:00
|
|
|
GMIO_HOST_ENDIANNESS = GMIO_LITTLE_ENDIAN
|
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
2015-03-13 18:07:07 +08:00
|
|
|
GMIO_C_LINKAGE_BEGIN
|
|
|
|
|
2014-03-28 23:33:35 +08:00
|
|
|
/*! 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 */
|