X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fio%2Flowlevel.hxx;h=0f650d5b0f27d0372b0395895c484cb9e3da05e2;hb=f19e83dcf10d5fced3d799c884a4654d7ada6548;hp=b866df2e9d54cfdee58960aaedba75442a06c21d;hpb=2d21e59b54dcaafe1ee480438b63460fae4afdd6;p=simgear.git diff --git a/simgear/io/lowlevel.hxx b/simgear/io/lowlevel.hxx index b866df2e..0f650d5b 100644 --- a/simgear/io/lowlevel.hxx +++ b/simgear/io/lowlevel.hxx @@ -4,7 +4,7 @@ // Shamelessly adapted from plib January 2001 // // Original version Copyright (C) 2000 the plib team -// Local changes Copyright (C) 2000 Curtis L. Olson - curt@flightgear.org +// Local changes Copyright (C) 2000 Curtis L. Olson - http://www.flightgear.org/~curt // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -18,7 +18,7 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // $Id$ // @@ -27,24 +27,13 @@ #ifndef _SG_LOWLEVEL_HXX #define _SG_LOWLEVEL_HXX - #include - -#ifdef HAVE_ZLIB -# include -#else -# include -#endif +#include #include -#ifdef _MSC_VER -typedef __int64 int64; -typedef __int64 uint64; -#else -typedef long long int64; -typedef unsigned long long uint64; -#endif +#include +#include // Note that output is written in little endian form (and converted as // necessary for big endian machines) @@ -59,10 +48,10 @@ void sgReadUInt ( gzFile fd, unsigned int *var ) ; void sgWriteUInt ( gzFile fd, const unsigned int var ) ; void sgReadInt ( gzFile fd, int *var ) ; void sgWriteInt ( gzFile fd, const int var ) ; -void sgReadLong ( gzFile fd, long int *var ) ; -void sgWriteLong ( gzFile fd, const long int var ) ; -void sgReadLongLong ( gzFile fd, int64 *var ) ; -void sgWriteLongLong ( gzFile fd, const int64 var ) ; +void sgReadLong ( gzFile fd, int32_t *var ) ; +void sgWriteLong ( gzFile fd, const int32_t var ) ; +void sgReadLongLong ( gzFile fd, int64_t *var ) ; +void sgWriteLongLong ( gzFile fd, const int64_t var ) ; void sgReadUShort ( gzFile fd, unsigned short *var ) ; void sgWriteUShort ( gzFile fd, const unsigned short var ) ; void sgReadShort ( gzFile fd, short *var ) ; @@ -126,52 +115,4 @@ void sgClearWriteError(); int sgReadError(); int sgWriteError(); -inline bool sgIsLittleEndian() { - static const int sgEndianTest = 1; - return (*((char *) &sgEndianTest ) != 0); -} - -inline bool sgIsBigEndian() { - static const int sgEndianTest = 1; - return (*((char *) &sgEndianTest ) == 0); -} - -inline void sgEndianSwap(unsigned short *x) { - *x = - (( *x >> 8 ) & 0x00FF ) | - (( *x << 8 ) & 0xFF00 ) ; -} - -inline void sgEndianSwap(unsigned int *x) { - *x = - (( *x >> 24 ) & 0x000000FF ) | - (( *x >> 8 ) & 0x0000FF00 ) | - (( *x << 8 ) & 0x00FF0000 ) | - (( *x << 24 ) & 0xFF000000 ) ; -} - -inline void sgEndianSwap(uint64 *x) { -#ifndef _MSC_VER - *x = - (( *x >> 56 ) & 0x00000000000000FFULL ) | - (( *x >> 40 ) & 0x000000000000FF00ULL ) | - (( *x >> 24 ) & 0x0000000000FF0000ULL ) | - (( *x >> 8 ) & 0x00000000FF000000ULL ) | - (( *x << 8 ) & 0x000000FF00000000ULL ) | - (( *x << 24 ) & 0x0000FF0000000000ULL ) | - (( *x << 40 ) & 0x00FF000000000000ULL ) | - (( *x << 56 ) & 0xFF00000000000000ULL ) ; -#else - *x = - (( *x >> 56 ) & 0x00000000000000FF ) | - (( *x >> 40 ) & 0x000000000000FF00 ) | - (( *x >> 24 ) & 0x0000000000FF0000 ) | - (( *x >> 8 ) & 0x00000000FF000000 ) | - (( *x << 8 ) & 0x000000FF00000000 ) | - (( *x << 24 ) & 0x0000FF0000000000 ) | - (( *x << 40 ) & 0x00FF000000000000 ) | - (( *x << 56 ) & 0xFF00000000000000 ) ; -#endif -} - #endif // _SG_LOWLEVEL_HXX