145 lines
4.1 KiB
C
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 */
|