reman3/Rayman_X/cpa/tempgrp/NET/NetEnd.h

110 lines
2.6 KiB
C

/*
NetEnd.h : byte swap management
*/
#if !defined(__NETENDIAN_TYPES__)
#define __NETENDIAN_TYPES__
#if !defined(ONLY_TYPES)
#define NETENDIAN_UNDEF
#define ONLY_TYPES
#endif /* !ONLY_TYPES */
/*
* include here any other include files you need
*/
#include "PrivNetDef.h"
#if defined(NETENDIAN_UNDEF)
#undef ONLY_TYPES
#undef NETENDIAN_UNDEF
#endif /* !NETENDIAN_UNDEF */
#endif /* !__NETENDIAN_TYPES__ */
#if !defined(ONLY_TYPES)
#if !defined(__NETENDIAN_VARS__)
#define __NETENDIAN_VARS__
#undef EXTERN
#undef extern
#if !defined(GLOBALS)
#define EXTERN extern
#else /* !GLOBALS */
#define EXTERN
#endif /* !GLOBALS */
#define NetLib_M_uc_BigEndian ((NetLib_tducBigLittleEndian)0x00)
#define NetLib_M_uc_LittleEndian ((NetLib_tducBigLittleEndian)0xff)
#define NetLib_M_uc_IsLittleEndianRoute ((NetLib_tducBigLittleEndian)0x0f)
#define NetLib_M_uc_IsLittleEndianSender ((NetLib_tducBigLittleEndian)0xf0)
#undef extern
#endif /* !__NETENDIAN_VARS__ */
#if !defined (__NETENDIAN_PROTOS__)
#define __NETENDIAN_PROTOS__
#define M_NET_uwLOWORD(l) ((unsigned short)(l))
#define M_NET_uwHIWORD(l) ((unsigned short)(((unsigned long)(l) >> 16) & 0xFFFF))
#define M_NET_ucLOBYTE(w) ((unsigned char)(w))
#define M_NET_ucHIBYTE(w) ((unsigned char)(((unsigned short)(w) >> 8) & 0xFF))
#define M_NET_wMAKEWORD(a, b)\
((unsigned short)(((unsigned char)(a)) | ((unsigned short)((unsigned char)(b))) << 8))
#define M_NET_lMAKELONG(a, b) \
((unsigned long)(((unsigned short)(a)) | ((unsigned long)((unsigned short)(b))) << 16))
#define M_NET_ulSwapLittleBigEndian(ulParam)\
(\
(unsigned long)\
(\
M_NET_lMAKELONG\
(\
/*LOWORD*/\
M_NET_wMAKEWORD\
(\
M_NET_ucHIBYTE(M_NET_uwHIWORD(ulParam)),/*LOBYTE*/\
M_NET_ucLOBYTE(M_NET_uwHIWORD(ulParam))/* HIBYTE*/\
),\
/*HIWORD*/\
M_NET_wMAKEWORD\
(\
M_NET_ucHIBYTE(M_NET_uwLOWORD(ulParam)),/*LOBYTE*/\
M_NET_ucLOBYTE(M_NET_uwLOWORD(ulParam))/* HIBYTE*/\
)\
)\
)\
)
#define M_NET_uwSwapLittleBigEndian(uwParam) \
(\
(unsigned short)\
(\
M_NET_wMAKEWORD\
(\
M_NET_ucHIBYTE(uwParam),/*LOBYTE*/\
M_NET_ucLOBYTE(uwParam)/*HIBYTE*/\
)\
)\
)
/*Litte/big endian :*/
_NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSetLittleBigEndian(NetLib_tducBigLittleEndian);
_NET_EXPORT_ NetLib_tducBigLittleEndian _NET_CALLING_CONV_ NetLib_ucGetLittleBigEndian(void);
NetLib_tdeErrorStatus NetLib_eProcessLittleBigEndian(void);
NetLib_tdeErrorStatus NetLib_eSwapLittleBigEndianMsgHeader(tdstNetMessage*);
#endif /* !__NETENDIAN_PROTOS__ */
#endif /* !ONLY_TYPES */