1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
/*******************************************************************************
*
* HEADER: byteorder.h
*
********************************************************************************
*
* DESCRIPTION: Architecture independent integer conversion.
*
********************************************************************************
*
* $Project: /Convert-Binary-C $
* $Author: mhx $
* $Date: 2009/03/15 04:10:49 +0100 $
* $Revision: 17 $
* $Source: /ctlib/byteorder.h $
*
********************************************************************************
*
* Copyright (c) 2002-2009 Marcus Holland-Moritz. All rights reserved.
* This program is free software; you can redistribute it and/or modify
* it under the same terms as Perl itself.
*
*******************************************************************************/
#ifndef _CTLIB_BYTEORDER_H
#define _CTLIB_BYTEORDER_H
/*===== GLOBAL INCLUDES ======================================================*/
/*===== LOCAL INCLUDES =======================================================*/
#include "arch.h"
/*===== DEFINES ==============================================================*/
/*===== TYPEDEFS =============================================================*/
typedef enum {
CBO_BIG_ENDIAN,
CBO_LITTLE_ENDIAN
} CByteOrder;
typedef struct {
union {
u_64 u;
i_64 s;
} value;
int sign;
char *string;
} IntValue;
/*===== FUNCTION PROTOTYPES ==================================================*/
#define string_is_integer CTlib_string_is_integer
int string_is_integer(const char *pStr);
#define fetch_integer CTlib_fetch_integer
void fetch_integer(unsigned size, unsigned sign, unsigned bits, unsigned shift,
CByteOrder bo, const void *src, IntValue *pIV);
#define store_integer CTlib_store_integer
void store_integer(unsigned size, unsigned bits, unsigned shift,
CByteOrder bo, void *dest, const IntValue *pIV);
#endif
|