Mercurial > hg > th-libs
view th_endian2.h @ 0:bd61a80a6c54
Initial import into Mercurial repository. Discarding old cvs/svn history
here, because it's cluttered and commit messages are mostly crap.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 26 Mar 2008 04:41:58 +0200 |
parents | |
children |
line wrap: on
line source
/* * Endianess handling * Programmed and designed by Matti 'ccr' Hamalainen * (C) Copyright 2002-2007 Tecnic Software productions (TNSP) * * Please read file 'COPYING' for information on license and distribution. */ #if (!defined(TH_RNAME) || !defined(TH_FILE) || !defined(TH_FREAD) || !defined(TH_FGETC)) #error Some required preprocessor macros NOT defined, but th_endian2.h included! #endif #ifdef TH_CODE_ENDIAN2 BOOL TH_RNAME(STR) (TH_FILE *f, uint8_t *s, size_t l) { return (TH_FREAD(s, sizeof(uint8_t), l, f) == l); } uint16_t TH_RNAME(BE16) (TH_FILE *f) { return (((uint16_t) TH_FGETC(f)) << 8) | ((uint16_t) TH_FGETC(f)); } uint32_t TH_RNAME(BE32) (TH_FILE *f) { return (((uint32_t) TH_FGETC(f)) << 24) | (((uint32_t) TH_FGETC(f)) << 16) | (((uint32_t) TH_FGETC(f)) << 8) | ((uint32_t) TH_FGETC(f)); } uint16_t TH_RNAME(LE16) (TH_FILE *f) { return ((uint16_t) TH_FGETC(f)) | (((uint16_t) TH_FGETC(f)) << 8); } uint32_t TH_RNAME(LE32) (TH_FILE *f) { return ((uint32_t) TH_FGETC(f)) | (((uint32_t) TH_FGETC(f)) << 8) | (((uint32_t) TH_FGETC(f)) << 16) | (((uint32_t) TH_FGETC(f)) << 24); } #endif