/* --------------------------------------------------------------------------
// Copyright (c) 2000 Quest Technical Solutions
//
// Header File Name: QtTypDef.h
// ----------------------------
//
// Quest Technical Solutions common type defintions
//
// --------------------------------------------------------------------------*/

#ifndef QTS_TYPES
/* data type definitions */
typedef unsigned char   uchr;       //  8 bits
typedef unsigned short  ushrt;      // 16 bits
typedef unsigned int    uint;       // 16(pc)/32(i960) bits
typedef unsigned long   ulng;       // 32 bits

typedef unsigned char   BYTE;       //  8 bits
typedef unsigned short  WORD;       // 16 bits
typedef unsigned int    DWORD;      // 32 bits

typedef unsigned long long QWORD;   // 64 bits

typedef enum {false,true} bool;

#ifndef CHAR
typedef char CHAR;
#endif

#define SWAP16(v)(((*(ushrt *)&(v))>>8)|((*(ushrt *)&(v))<<8))

#define BYTESWAP16(d,s)((((BYTE *)&(d))[1])=(((BYTE *)&(s))[0]));((((BYTE *)&(d))[0])=(((BYTE *)&(s))[1]))
#define BYTESWAP32(d,s)((((BYTE *)&(d))[3])=(((BYTE *)&(s))[0]));((((BYTE *)&(d))[2])=(((BYTE *)&(s))[1]));((((BYTE *)&(d))[1])=(((BYTE *)&(s))[2]));((((BYTE *)&(d))[0])=(((BYTE *)&(s))[3]))

#ifndef LOBYTE
  #define LOBYTE(v)(((uchr *)(&(v)))[0])
#endif

#ifndef HIBYTE
  #define HIBYTE(v)(((uchr *)(&(v)))[1])
#endif

#define StrctMemberOfs(structure, member) ((unsigned int) &(((structure *) 0) -> member))
#define StrctMember(structure, member) (((structure *) 0) -> member)

#define END_OF_LIST 0xffff
#define OUT_OF_LIST 0xfffe

#define QTS_TYPES
#endif