# common.h

Go to the documentation of this file.

    00001
    00002 #ifndef __PST_COMMON_H
    00003 #define __PST_COMMON_H
    00004
    00005
    00006 #include <stdlib.h>
    00007 #include <stdio.h>
    00008 #include <stdarg.h>
    00009 #include <time.h>
    00010
    00011
    00012 #if !defined(_MSC_VER) || (_MSC_VER >= 1800)
    00013     #include <stdint.h>
    00014     #include <inttypes.h>
    00015 #else
    00016     typedef signed char        int8_t;
    00017     typedef unsigned char      uint8_t;
    00018     typedef unsigned short     uint16_t;
    00019     typedef short              int16_t;
    00020     typedef unsigned int       uint32_t;
    00021     typedef int                int32_t;
    00022     typedef unsigned long long uint64_t;
    00023     typedef long long          int64_t;
    00024 #endif
    00025
    00026 #ifndef _WIN32
    00027     typedef struct {
    00028         uint32_t  dwLowDateTime;
    00029         uint32_t  dwHighDateTime;
    00030     } FILETIME;
    00031     // According to Jan Wolter, sys/param.h is the most portable source of endian
    00032     // information on UNIX systems. see http://www.unixpapa.com/incnote/byteorder.html
    00033     #include <sys/param.h>
    00034 #else
    00035     #include <windows.h>
    00036 #endif
    00037
    00038 #if defined(_WIN32) || defined(__DJGPP__)
    00039     #ifndef LITTLE_ENDIAN
    00040         #define LITTLE_ENDIAN 1234
    00041     #endif
    00042     #ifndef BIG_ENDIAN
    00043         #define BIG_ENDIAN 4321
    00044     #endif
    00045     #define BYTE_ORDER LITTLE_ENDIAN
    00046 #endif
    00047
    00048
    00049 #endif
    00050
    00051 #if defined (__SVR4) && defined (__sun)
    00052     #define LITTLE_ENDIAN 1234
    00053     #define BYTE_ORDER LITTLE_ENDIAN
    00054 #endif