view th_endian.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 8552edc844a7
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.
 */
#ifndef _TH_ENDIAN_H
#define _TH_ENDIAN_H

#ifdef __cplusplus
extern "C" {
#endif

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h>
#include "th_types.h"

/*
 * Data endianess conversion routines
 */
#ifdef TH_BIGENDIAN
void		TH_NE16(uint16_t *);
void		TH_NE32(uint32_t *);
uint16_t	TH_LE16(uint16_t);
uint32_t	TH_LE32(uint32_t);
#else
#define		TH_NE16(X)
#define		TH_NE32(X)
#define		TH_LE16(X) X
#define		TH_LE32(X) X
#endif


/*
 * Endian-handling file read/write routines
 */
BOOL		TH_READ_STR(FILE *f, uint8_t *s, size_t l);
uint16_t	TH_READ_BE16(FILE *f);
uint32_t	TH_READ_BE32(FILE *f);
uint16_t	TH_READ_LE16(FILE *f);
uint32_t	TH_READ_LE32(FILE *f);

BOOL		TH_WRITE_STR(FILE *f, uint8_t *s, size_t l);
void		TH_WRITE_BE16(FILE *f, uint16_t v);
void		TH_WRITE_BE32(FILE *f, uint32_t v);
void		TH_WRITE_LE16(FILE *f, uint16_t v);
void		TH_WRITE_LE32(FILE *f, uint32_t v);

#ifdef __cplusplus
}
#endif
#endif /* _TH_ENDIAN_H */