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".
|
|
|
|
****************************************************************************/
|
|
|
|
|
2013-01-15 02:30:42 +08:00
|
|
|
#include "endian.h"
|
|
|
|
|
2014-01-27 22:30:46 +08:00
|
|
|
#include "internal/convert.h"
|
2014-01-23 01:28:58 +08:00
|
|
|
|
2013-01-15 20:10:44 +08:00
|
|
|
#include <string.h>
|
|
|
|
|
2013-02-05 19:19:24 +08:00
|
|
|
typedef union
|
|
|
|
{
|
2015-03-03 17:35:36 +08:00
|
|
|
uint32_t integer;
|
|
|
|
uint8_t bytes[4];
|
2014-03-28 23:33:35 +08:00
|
|
|
} _internal_gmio_int_bytes_32_convert_t;
|
2013-02-05 19:19:24 +08:00
|
|
|
|
2014-03-28 23:33:35 +08:00
|
|
|
gmio_endianness_t gmio_host_endianness()
|
2013-01-15 02:30:42 +08:00
|
|
|
{
|
2015-03-03 17:35:36 +08:00
|
|
|
_internal_gmio_int_bytes_32_convert_t conv;
|
2013-01-15 02:30:42 +08:00
|
|
|
|
2015-03-03 17:35:36 +08:00
|
|
|
conv.integer = 0x01020408;
|
|
|
|
if (conv.bytes[0] == 0x08 && conv.bytes[3] == 0x01)
|
|
|
|
return GMIO_LITTLE_ENDIAN;
|
|
|
|
else if (conv.bytes[0] == 0x01 && conv.bytes[3] == 0x08)
|
|
|
|
return GMIO_BIG_ENDIAN;
|
|
|
|
else if (conv.bytes[1] == 0x08 && conv.bytes[2] == 0x01)
|
|
|
|
return GMIO_MIDDLE_ENDIAN;
|
|
|
|
else
|
|
|
|
return GMIO_OTHER_ENDIAN;
|
2013-01-15 02:30:42 +08:00
|
|
|
}
|
|
|
|
|