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

145 lines
4.1 KiB
C

/*
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 <windows.h>
#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 */
/*
* <type> <variable name>
* #if defined(GLOBALS)
* = <initial values>
* #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 <NET\L0Shamem.h>
#endif /* !__L0SHAREDMEMPCWIN95_PROTOS__ */
#endif /* !ONLY_TYPES */
#endif /* PRIVL0SHAMEM_H */