gmio/src/gmio_core/endian.h

64 lines
1.9 KiB
C
Raw Normal View History

2015-03-03 00:38:33 +08:00
/****************************************************************************
2015-05-28 15:40:24 +08:00
** gmio
2015-05-01 00:19:45 +08:00
** Copyright Fougue (2 Mar. 2015)
2015-07-13 17:42:03 +08:00
** contact@fougue.pro
2015-03-03 00:38:33 +08:00
**
** 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
2015-03-30 15:05:25 +08:00
** "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html".
2015-03-03 00:38:33 +08:00
****************************************************************************/
2015-03-05 01:25:51 +08:00
/*! \file endian.h
* Architecture endianness
2015-09-09 17:44:34 +08:00
*
* \addtogroup gmio_core
* @{
2015-03-05 01:25:51 +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 */
enum gmio_endianness
{
/*! Other (unknown) byte-order */
GMIO_ENDIANNESS_UNKNOWN = 0,
/*! The least significant byte is stored at the lowest address. The other
* bytes follow in increasing order of significance */
GMIO_ENDIANNESS_LITTLE,
/*! The most significant byte is stored at the lowest address. The other
* bytes follow in decreasing order of significance */
GMIO_ENDIANNESS_BIG,
#ifdef GMIO_HOST_IS_BIG_ENDIAN
GMIO_ENDIANNESS_HOST = GMIO_ENDIANNESS_BIG
#else
/*! Defines the endianness(byte order) used by the host computer for
* storing data in memory.
*
* It is set at configure-time to either GMIO_ENDIANNESS_LITTLE or
* GMIO_ENDIANNESS_BIG
*/
GMIO_ENDIANNESS_HOST = GMIO_ENDIANNESS_LITTLE
#endif
};
GMIO_C_LINKAGE_BEGIN
/*! Returns endianness (byte order) of the host's CPU architecture */
GMIO_LIB_EXPORT enum gmio_endianness gmio_host_endianness();
GMIO_C_LINKAGE_END
#endif /* GMIO_ENDIAN_H */
2015-09-09 17:44:34 +08:00
/*! @} */