35 APP_WORD wClientHoldTile;
36 APP_BYTE SrcMac[MAC_ADDRESS_LEN];
37 APP_BYTE UCRSrcMac[MAC_ADDRESS_LEN];
38 }PACK_ALIGNEMENT(ST_DCP_XCR);
41 APP_LPBYTE pbyDcpBuffer;
42 APP_LPBYTE pbyDcpCurrent;
45 APP_WORD wDcpmcrIdentReady;
46 }PACK_ALIGNEMENT(ST_DREP_DCP_FRAME), APP_FAR * LPST_DREP_DCP_FRAME;
58 }PACK_ALIGNEMENT(ST_RMPM), APP_FAR * LPST_RMPM;
63 APP_WORD wDCPMCRState;
64 APP_WORD wDCPUCRState;
65 }PACK_ALIGNEMENT(ST_DCP), APP_FAR * LPST_DCP;
76 APP_BOOL bHelloSupported;
77 APP_BYTE byDeviceInitiative;
79 }PACK_ALIGNEMENT(ST_DCP_HELLO), APP_FAR * LPST_DCP_HELLO;
84 LPST_POOL arrayOfstPool_HahTable;
87 APP_DWORD dwDRContextInd;
91 APP_BYTE byDeviceName[NAMELEN+1];
92 APP_BYTE byDeviceType[NAMELEN+1];
97 LPST_POOL lpstPoolAcyc;
98 LPST_POOL lpstPoolDcp;
100 ST_DREP_DCP_FRAME stDcpFrame;
101 ST_DREP_DCP_FRAME stDcpMulticastFrame;
103 ST_IREP stIrep[MAX_INSTANCE_PER_DEVICE];
106 ST_IPPARAMETER stIpParameters;
107 APP_LPCHAR lpszInterfaceName;
108 APP_LPVOID lpvHandleRead;
109 APP_LPVOID lpvHandleWrite;
111 APP_BYTE lpbyMacAddr[MAC_ADDRESS_LEN];
114 APP_BYTE byDHCPParameter[NAMELEN+1];
115 APP_WORD wDHCPParameterLentgh;
120 APP_WORD wDeviceStarted;
121 APP_BYTE bRmpmHasStart;
123 ST_DCP_HELLO stDcpHello;
125 }PACK_ALIGNEMENT(ST_DREP), APP_FAR * LPST_DREP;
127 #include "os_unpck.h"
129 #define DREP_GET_HASH_TABLE(lpstDrep) ((lpstDrep)->arrayOfstPool_HahTable)
135 #define PN_DEV_VERSION "02.02.02.00"
137 #define SET_DREP_CONTEXT_IND(lpstDrep, dwContextInd) (lpstDrep)->dwDRContextInd = (dwContextInd)
138 #define GET_DREP_CONTEXT_IND(lpstDrep) (lpstDrep)->dwDRContextInd
140 #define SET_DREP_INTERFACE_NAME(a, lpszInterfaceName) (a)->lpszInterfaceName = lpszInterfaceName
141 #define SET_DREP_INTERFACE_PORT(a, wPort) (a)->wPort = wPort
143 #define GET_DREP_INTERFACE_NAME(a) (a)->lpszInterfaceName
144 #define GET_DREP_INTERFACE_PORT(a) (a)->wPort
146 #define GET_DREP_INTERFACE_MAC_ADDRESS(a) (a)->lpbyMacAddr
148 #define DREP_GET_IREP(lpstDrep, lpstIrep, index) lpstIrep = &(lpstDrep->stIrep[index]);
150 #define GET_DREP_RMPM_STATE(a) (a)->stRmpm.wState
151 #define SET_DREP_RMPM_STATE(a,b) (a)->stRmpm.wState = b
153 #define GET_DREP_RMPM_ACTIVE(a) (a)->stRmpm.wActive
154 #define SET_DREP_RMPM_ACTIVE(a,b) (a)->stRmpm.wActive = b
155 #define INC_DREP_RMPM_ACTIVE(a) (a)->stRmpm.wActive++
156 #define DEC_DREP_RMPM_ACTIVE(a) (a)->stRmpm.wActive--
158 #define GET_DREP_RMPM_CURRENT_ID(a) (a)->stRmpm.wCurrentId
159 #define SET_DREP_RMPM_CURRENT_ID(a,b) (a)->stRmpm.wCurrentId = b
160 #define UPDATE_DREP_RMPM_CURRENT_ID(a) ((a)->stRmpm.wCurrentId++)
162 #define GET_DREP_RMPM_NB_SET_BLOCK(a) ((a)->stRmpm.wNbSetBlock )
163 #define INC_DREP_RMPM_NB_SET_BLOCK(a) ((a)->stRmpm.wNbSetBlock++)
164 #define DEC_DREP_RMPM_NB_SET_BLOCK(a) ((a)->stRmpm.wNbSetBlock--)
166 #define SET_DREP_RMPM_OLD_IP(a, b) (((a)->stRmpm.dwOldIP) = b)
167 #define GET_DREP_RMPM_OLD_IP(a) (((a)->stRmpm.dwOldIP))
169 #define GET_DREP_RMPM_IP_CHANGE(a) ((a)->stRmpm.wIpChange)
170 #define SET_DREP_RMPM_IP_CHANGE(a) ((a)->stRmpm.wIpChange = APP_TRUE)
171 #define RESET_DREP_RMPM_IP_CHANGE(a) ((a)->stRmpm.wIpChange = APP_FALSE)
173 #define GET_DREP_RMPM_NAME_CHANGE(a) ((a)->stRmpm.wNameChange)
174 #define SET_DREP_RMPM_NAME_CHANGE(a) ((a)->stRmpm.wNameChange = APP_TRUE)
175 #define RESET_DREP_RMPM_NAME_CHANGE(a) ((a)->stRmpm.wNameChange = APP_FALSE)
177 #define ST_DREP_SIZEOF sizeof(ST_DREP)
179 #define SET_DREP_DEVICEID(a,b) (a)->wDeviceID = b
180 #define GET_DREP_DEVICEID(a) (a)->wDeviceID
182 #define SET_DREP_VENDORID(a,b) (a)->wVendorID = b
183 #define GET_DREP_VENDORID(a) (a)->wVendorID
185 #define SET_DREP_DEVICENAME(a,b) OS_MEMCOPY((a)->byDeviceName,b,OS_STRLEN((APP_LPCHAR)b))
187 #define GET_DREP_DEVICENAME(a,b) OS_MEMCOPY(b,(a)->byDeviceName,OS_STRLEN( (APP_LPCHAR)(a)->byDeviceName))
189 #define SET_DREP_DEVICETYPE(a,b) OS_MEMCOPY((a)->byDeviceType,b,OS_STRLEN((APP_LPCHAR)b))
190 #define GET_DREP_DEVICETYPE(a,b) OS_MEMCOPY(b,(a)->byDeviceType,OS_STRLEN((APP_LPCHAR)(a)->byDeviceType))
192 #define SET_DREP_DHCP_PARAM_LENGTH(a,b) (a)->wDHCPParameterLentgh = b
193 #define GET_DREP_DHCP_PARAM_LENGTH(a) (a)->wDHCPParameterLentgh
195 #define SET_DREP_DHCP_PARAM(a,b,c) OS_MEMCOPY((a)->byDHCPParameter,b,c)
196 #define GET_DREP_DHCP_PARAM(a,b) OS_MEMCOPY(b,(a)->byDHCPParameter,(a)->wDHCPParameterLentgh)
198 #define GET_DREP_DHCP_TYPE(a) (a)->wDHCPType
199 #define SET_DREP_DHCP_TYPE(a, b) (a)->wDHCPType = b
201 #define SET_DREP_IP(a,b) (a)->stIpParameters.dwIpAddr = b
202 #define GET_DREP_IP(a) (a)->stIpParameters.dwIpAddr
204 #define SET_DREP_SUBNETMASK(a,b) (a)->stIpParameters.dwSubNet = b
205 #define GET_DREP_SUBNETMASK(a) (a)->stIpParameters.dwSubNet
207 #define SET_DREP_GATEWAY(a,b) (a)->stIpParameters.dwGateway = b
208 #define GET_DREP_GATEWAY(a) (a)->stIpParameters.dwGateway
210 #define SET_DREP_IP_MODE(a,b) (a)->stIpParameters.ipMode = b
211 #define GET_DREP_IP_MODE(a) (a)->stIpParameters.ipMode
213 #define SET_DREP_DCPUCR_STATE(a,b) (a)->stDcp.wDCPUCRState = b
214 #define SET_DREP_DCPMCR_STATE(a,b) (a)->stDcp.wDCPMCRState = b
215 #define GET_DREP_DCPUCR_STATE(a) (a)->stDcp.wDCPUCRState
216 #define GET_DREP_DCPMCR_STATE(a) (a)->stDcp.wDCPMCRState
220 #define GET_DREP_DCP_IDENT_READY(a) (a)->stDcpFrame.wDcpmcrIdentReady
221 #define SET_DREP_DCP_IDENT_READY(a,b) (a)->stDcpFrame.wDcpmcrIdentReady = (b)
223 #define GET_DREP_DCP_XCR_MAC(a) (a)->stDcpFrame.XCR_DCP.SrcMac
224 #define GET_DREP_DCP_UCR_MAC(a) (a)->stDcpFrame.XCR_DCP.UCRSrcMac
225 #define GET_DREP_DCP_MCR_XID(a) (a)->stDcpFrame.XCR_DCP.dwMcrXid
226 #define SET_DREP_DCP_MCR_XID(a,b) (a)->stDcpFrame.XCR_DCP.dwMcrXid = b
227 #define GET_DREP_DCP_MCR_CB(a) (a)->stDcpFrame.XCR_DCP.cbMcrDcp
228 #define SET_DREP_DCP_MCR_CB(a,b) (a)->stDcpFrame.XCR_DCP.cbMcrDcp = b
229 #define GET_DREP_DCP_UCR_CB(a) (a)->stDcpFrame.XCR_DCP.cbUcrDcp
230 #define SET_DREP_DCP_UCR_CB(a,b) (a)->stDcpFrame.XCR_DCP.cbUcrDcp = b
232 #define SET_DREP_DCP_UCR_CHF(a,b) (a)->stDcpFrame.XCR_DCP.wClientHoldTile = b
233 #define GET_DREP_DCP_UCR_CHF(a) (a)->stDcpFrame.XCR_DCP.wClientHoldTile
236 #define GET_DREP_DCP_UCR_XID(a) (a)->stDcpFrame.XCR_DCP.dwUcrXid
237 #define SET_DREP_DCP_UCR_XID(a,b) (a)->stDcpFrame.XCR_DCP.dwUcrXid = b
239 #define GET_DREP_IP_PARAM_IP(a) (a)->stIpParameters.dwIpAddr
240 #define GET_DREP_IP_PARAM_MASK(a) (a)->stIpParameters.dwSubNet
241 #define GET_DREP_IP_PARAM_ROUTE(a) (a)->stIpParameters.dwGateway
243 #define SET_DREP_IP_PARAM_IP(a,b) (a)->stIpParameters.dwIpAddr = b;
244 #define SET_DREP_IP_PARAM_MASK(a,b) (a)->stIpParameters.dwSubNet = b;
245 #define SET_DREP_IP_PARAM_ROUTE(a,b) (a)->stIpParameters.dwGateway = b;
247 #define GET_DREP_NAME_PTR(a) (a)->byDeviceName
248 #define GET_DREP_TYPE_PTR(a) (a)->byDeviceType
249 #define GET_DREP_DEV_ID(a) (a)->wDeviceID
250 #define GET_DREP_VENDOR_ID(a) (a)->wVendorID
252 #define DREP_DCP_BUFFER_GET_PTR(lpstDcpBuffer) lpstDcpBuffer->pbyDcpCurrent
253 #define DREP_DCP_BUFFER_GET_LEN(lpstDcpBuffer) lpstDcpBuffer->wDcpDataLen
256 #define GET_DREP_UDPRT_PORT(lpdrep) (PNIO_UDPRT_PORT)
258 #define SET_DREP_DEVICESTARTED(a) (a)->wDeviceStarted = 1
259 #define SET_DREP_DEVICESTOPPED(a) (a)->wDeviceStarted = 0
260 #define GET_DREP_DEVICESTARTED(a) (a)->wDeviceStarted
262 LPST_DREP arepGetDrep(LPST_AREP lpstArep);
263 #define AREP_GET_DREP(lpArep) arepGetDrep(lpArep)
266 #define DREP_GET_HANDLE_WRITE(lpstDrep) (lpstDrep->lpvHandleWrite)
267 #define DREP_GET_HANDLE_READ (lpstDrep) (lpstDrep->lpvHandleRead)
270 APP_WORD Check_Drep_Validity(LPST_DREP lpstDrepToValid, LPST_DREP lpstDrepArrayOfValid);
271 APP_WORD Check_Irep_Validity(LPST_IREP lpstIrepToValid, LPST_DREP lpstDrepArrayOfValid);
272 APP_VOID Init_Drep (LPST_DREP lpstDrep, LPST_POOL lpstAcycPool, LPST_POOL lpstDcpPool);
273 APP_VOID Exit_Drep (LPST_DREP lpstDrep);
276 LPST_IREP Get_Free_Instance(LPST_DREP lpPhysicalDev);
279 APP_BOOL DREP_DCP_BUFFER_USED (LPST_DREP_DCP_FRAME lpstDcpBuffer);
280 APP_BOOL DREP_SET_DCP_BUFFER (LPST_DREP_DCP_FRAME lpstDcpBuffer, APP_LPBYTE pbyData, LPST_POOL lpstPoolDcp);
281 APP_BOOL DREP_RELEASE_DCP_BUFFER(LPST_DREP_DCP_FRAME lpstDcpBuffer);
282 APP_BOOL DREP_DCP_BUFFER_SET_PTR(LPST_DREP_DCP_FRAME lpstDcpBuffer, APP_WORD wDataLen);
286 #define SHIFT_DREP_DCP_BUFFER(lpstDcpBuffer, byTmpDrepBuffer, wSizeNewOfBlock) if( (lpstDcpBuffer->wDcpDataLen + wSizeNewOfBlock) < ETHERNET_MAX_FRAME_LENGTH )\
288 OS_MEMCOPY(&(byTmpDrepBuffer)[0] , (lpstDcpBuffer)->pbyDcpCurrent, (lpstDcpBuffer)->wDcpDataLen);\
289 OS_MEMCOPY(((lpstDcpBuffer)->pbyDcpCurrent - wSizeNewOfBlock), &(byTmpDrepBuffer)[0] , (lpstDcpBuffer)->wDcpDataLen);\
290 (lpstDcpBuffer)->pbyDcpCurrent = lpstDcpBuffer->pbyDcpBuffer + ETHERNET_MAX_FRAME_LENGTH;\
293 #define RESTORE_DREP_CURRENT_DCP_BUFFER(lpstDcpBuffer) (lpstDcpBuffer)->pbyDcpCurrent = (lpstDcpBuffer)->pbyDcpBuffer + ETHERNET_MAX_FRAME_LENGTH - (lpstDcpBuffer)->wDcpDataLen ;
295 #define INSERT_EMPTY_BLOCK(lpstDcpBuffer, wSizeNewOfBlock) (lpstDcpBuffer)->wDcpDataLen = (APP_WORD)((lpstDcpBuffer)->wDcpDataLen + (wSizeNewOfBlock))
297 #define SET_PTR_TO_EMPTY_BLOCK(lpstDcpBuffer, wSizeOfOldBlock, wSizeNewOfBlock) (lpstDcpBuffer)->wDcpDataLen = (APP_WORD)((lpstDcpBuffer)->wDcpDataLen - (wSizeNewOfBlock)); \
298 (lpstDcpBuffer)->pbyDcpCurrent = (lpstDcpBuffer)->pbyDcpCurrent + (wSizeOfOldBlock) + (wSizeNewOfBlock);
301 #define DREP_CLEAR_LIST list_destroy
303 APP_BOOL DREP_INIT_STATE(LPST_DREP pDrep);
304 APP_VOID Init_All_Arep_Cmdev_State(LPST_DREP lpstDrep);
306 APP_VOID find_drep_from_rpc_req (LPST_DREP APP_FAR *lpstDrep, APP_LPBYTE lpData,LPST_RPC_REQ lpstRPCReq);
307 #define FIND_DREP_FROM_RPC_REQ(lpstDrep, lpData, lpstRPCReq) find_drep_from_rpc_req( &(lpstDrep), lpData, lpstRPCReq)
309 #define DREP_IS_VALID(a) Check_Drep_Validity(a, gstDrep)
310 #define IREP_IS_VALID(a) Check_Irep_Validity(a, gstDrep)
312 #define DREP_GET_HELLO_IS_SUPPORTED(lpstDrep) (lpstDrep)->stDcpHello.bHelloSupported
313 #define DREP_GET_HELLO_DEVICE_INITIATIVE(lpstDrep) (lpstDrep)->stDcpHello.byDeviceInitiative
314 #define DREP_GET_HELLO_INTERVAL(lpstDrep) (lpstDrep)->stDcpHello.wInterval
315 #define DREP_GET_HELLO_START_DELAY(lpstDrep) (lpstDrep)->stDcpHello.wStartDelay
316 #define DREP_GET_HELLO_RETRY(lpstDrep) (lpstDrep)->stDcpHello.wRetry
318 #define DREP_SET_HELLO_IS_SUPPORTED(lpstDrep, bSupported) (lpstDrep)->stDcpHello.bHelloSupported = bSupported
319 #define DREP_SET_HELLO_DEVICE_INITIATIVE(lpstDrep, wInit) (lpstDrep)->stDcpHello.byDeviceInitiative = wInit
320 #define DREP_SET_HELLO_INTERVAL(lpstDrep, wInter) (lpstDrep)->stDcpHello.wInterval = wInter
321 #define DREP_SET_HELLO_START_DELAY(lpstDrep, wDelay) (lpstDrep)->stDcpHello.wStartDelay = wDelay
322 #define DREP_SET_HELLO_RETRY(lpstDrep, wRetryCount) (lpstDrep)->stDcpHello.wRetry = wRetryCount
325 #define DREP_SET_HELLO_CB(lpstDrep, lpstCbfToAdd) (lpstDrep)->stDcpHello.lpstCbf = lpstCbfToAdd
326 #define DREP_GET_HELLO_CB(lpstDrep) (lpstDrep)->stDcpHello.lpstCbf
327 #define DREP_GET_REQUEST_XID(lpstDrep) (lpstDrep)->stDcpHello.wXid
328 #define DREP_INCREASE_REQUEST_XID(lpstDrep) (lpstDrep)->stDcpHello.wXid = (lpstDrep)->stDcpHello.wXid + 1;
Definition: schedule.h:40