/* PrivL0Shamem.h */ #ifndef PRIVL0SHAMEM_H #define PRIVL0SHAMEM_H #if !defined(__L0SHAREDMEMPCWIN95_TYPES__) #define __L0SHAREDMEMPCWIN95_TYPES__ #if !defined(ONLY_TYPES) #define L0SHAREDMEMPCWIN95_UNDEF #define ONLY_TYPES #endif /* !ONLY_TYPES */ /* * include files */ /*#include "macros.h"*/ #include #include "L0GlDef.h" #if defined(L0SHAREDMEMPCWIN95_UNDEF) #undef ONLY_TYPES #undef L0SHAREDMEMPCWIN95_UNDEF #endif /* !L0SHAREDMEMPCWIN95_UNDEF */ /* Definition of a channel */ /* If the channel is a broadcast channel, the shared memory is a definition table If the channel is not a broadcast channel, the shared memory is a message table */ typedef struct tdstL0PCWin95SharedMemChannel_ { unsigned long m_ulRemoteSharedMemLength; HANDLE m_hRemoteSharedMem; void *m_pvRemoteSharedMem; char *m_pcRemoteSharedMemName; char *m_pcRemoteSharedMemNameMutex; tdeNetTransferStatus m_eChannelStatus; unsigned char m_ucRemoteSharedMemNameSize; unsigned char m_ubf1IsSlotInUse : 1; unsigned char m_ubf1IsSlotBroadcast :1; }tdstL0PCWin95SharedMemChannel; #endif /* !__L0SHAREDMEMPCWIN95_TYPES__ */ #if !defined(ONLY_TYPES) #if !defined(__L0SHAREDMEMPCWIN95_VARS__) #define __L0SHAREDMEMPCWIN95_VARS__ #undef EXTERN #undef extern #if !defined(GLOBALS) #define EXTERN extern #else /* !GLOBALS */ #define EXTERN #endif /* !GLOBALS */ /* * * #if defined(GLOBALS) * = * #endif * ; */ #endif /* !__L0SHAREDMEMPCWIN95_VARS__ */ #if !defined (__L0SHAREDMEMPCWIN95_PROTOS__) #define __L0SHAREDMEMPCWIN95_PROTOS__ /* 'Function' Defines */ #define C_ucDefTableSharedMemHeaderSize\ ((unsigned char)(sizeof(char)*3)) #define C_ucDefTableSharedMemSlotHeaderSize \ ((unsigned char)(sizeof(unsigned char)*2)) #define M_p_ucDefTableSharedMemGetSlotArrayOffset(pOrigin) \ ((unsigned char*)((unsigned char*)pOrigin + 3)) #define M_p_ucDefTableSharedMemGetFreeSlotOffset(pOrigin)\ ((unsigned char*)((unsigned char*)pOrigin + 2)) #define M_p_ucDefTableSharedMemGetSizeOfOneSlotOffset(pOrigin) \ ((unsigned char*)((unsigned char*)pOrigin + 1)) #define M_p_ucDefTableSharedMemGetNumberOfSlotOffset(pOrigin)\ ((unsigned char*)pOrigin) #define C_ucDefTableSharedMemUnusedSlot 0xff #define C_ucDefTableSharedMemUsedSlot 0x00 #define M_p_ucDefTableShareMemGetIsFreeSlotOffset(pOrigin) \ ((unsigned char*)pOrigin) #define M_p_ucDefTableSharedMemGetNextFreeSlotOffset(pOrigin) \ ((unsigned char*)((unsigned char*)pOrigin+1)) #define M_p_ucDefTableSharedMemGetNameLengthOffset(pOrigin) \ ((unsigned char*)((unsigned char*)pOrigin+1)) #define M_p_cDefTableSharedMemGetNameOffset(pOrigin) \ ((char*)((char *)pOrigin + 2)) #define M_p_ucMsgSharedMemGetMemSizeInBytesOffset(pOrigin) \ ((unsigned char*)pOrigin) #define M_p_ucMsgSharedMemGetFirstL0MsgOffset(pOrigin) \ ((unsigned char*)((unsigned long*)pOrigin + 1)) #define C_ucSharedMemMsgHeaderSize (sizeof(unsigned long)) #define M_ucSharedMemSlotMsgHeaderSize(pOrigin) \ ((unsigned char)(2+(*M_p_ucMsgSharedMemGetSenderNameLengthOffset(pOrigin)))) #define M_ucSharedMemSlotMsgHeaderSizeWithNameLength(ucNameLength) \ ((unsigned char)2+ucNameLength) #define M_p_ucSharedMemMsgGetMemSizeInBytesOffset(pOrigin) \ ((unsigned char*)pOrigin) #define M_p_ucSharedMemMsgGetFirstMsgPosition(pOrigin) \ ((unsigned char*)((unsigned char*)pOrigin+C_ucSharedMemMsgHeaderSize)) #define M_p_ucMsgSharedMemGetIsMessageOffset(pOrigin) \ ((unsigned char*)pOrigin) #define M_p_ucMsgSharedMemGetSenderNameLengthOffset(pOrigin) \ ((unsigned char*)((unsigned char*)pOrigin + 1)) #define M_p_ucMsgSharedMemGetSenderNameOffset(pOrigin) \ ((unsigned char*)((unsigned char*)pOrigin + 2)) #define M_stMsgSharedMemGetMessageOffsetWithLength(pOrigin,NameLengthInByes) \ ((tdstNetMessage *)((unsigned char*)pOrigin+2+NameLengthInBytes)) #define M_p_stMsgSharedMemGetMessageOffset(pOrigin) \ ((tdstNetMessage *) \ ( \ (unsigned char*)pOrigin + \ 2 + \ (*M_p_ucMsgSharedMemGetSenderNameLengthOffset(pOrigin)) \ ) \ ) #include #endif /* !__L0SHAREDMEMPCWIN95_PROTOS__ */ #endif /* !ONLY_TYPES */ #endif /* PRIVL0SHAMEM_H */