view src/common.h @ 129:fc11b1d1ad34

fix initial from header in mbox format. start moving to PST_LE_GET* rather than LE*_CPU macros so we can eventually remove the pragma packing.
author Carl Byington <carl@five-ten-sg.com>
date Thu, 05 Feb 2009 12:09:04 -0800
parents c2482d0cd84e
children e35fd42bac05
line wrap: on
line source


#ifndef __COMMON_H
#define __COMMON_H


#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>


// switch to maximal packing for all structures in the libpst interface
// this is reverted in the vbuf.h include
#ifdef _MSC_VER
    #pragma pack(push, 1)
#endif
#if defined(__GNUC__) || defined (__SUNPRO_C) || defined(__SUNPRO_CC)
    #pragma pack(1)
#endif


#ifndef  _MSC_VER
    #include <stdint.h>
    #include <inttypes.h>
#else
    typedef signed char        int8_t;
    typedef unsigned char      uint8_t;
	typedef unsigned short     uint16_t;
	typedef short              int16_t;
    typedef unsigned int       uint32_t;
	typedef int                int32_t;
	typedef unsigned long long uint64_t;
	typedef long long          int64_t;
#endif


#ifndef _WIN32
    typedef uint32_t  DWORD;
    typedef uint16_t   WORD;
    typedef uint8_t    BYTE;
    typedef uint32_t UINT32;
    typedef struct {    // copied from wine
        DWORD  dwLowDateTime;
        DWORD  dwHighDateTime;
    } FILETIME;
    // According to Jan Wolter, sys/param.h is the most portable source of endian
    // information on UNIX systems. see http://www.unixpapa.com/incnote/byteorder.html
    #include <sys/param.h>
#else
    #define BYTE_ORDER LITTLE_ENDIAN
#endif


#endif