versadac  1
versadac - Scalable Recorder Firmware
rpc_pdu.h
1 /*---------------------------------------------------------------------------*/
2 /* Copyright (C) 2006 Woodhead Software & Electonics. All rights reserved. */
3 /*---------------------------------------------------------------------------*/
4 /* This program is protected by international copyright. */
5 /* */
6 /* The use of this software including but not limited to its Source Code */
7 /* is subject to restrictions as agreed in the license agreement between */
8 /* you and Woodhead. */
9 /* Copying or distribution is not allowed unless expressly permitted */
10 /* according to your license agreement with Woodhead. */
11 /*---------------------------------------------------------------------------*/
12 /* */
13 /* Project : STACK PROFINET Controller */
14 /* Component : RPC PDU */
15 /* $Workfile:: rpc_pdu.h $*/
16 /* $Revision:: 3 $*/
17 /* $Date:: 9/25/09 10:42a $*/
18 /* */
19 /*---------------------------------------------------------------------------*/
20 /* */
21 /* D e s c r i p t i o n : */
22 /* */
23 /*---------------------------------------------------------------------------*/
24 
25 
26 #ifndef _RPC_PDU_H
27 #define _RPC_PDU_H
28 
29 
30 #define READ_RSP_NEG_HEADER_SIZE 20
31 
32 /* RPCVersion 5.2.6.1*/
33 #define PNIO_RPC_VERSION 4
34 
35 
36 /* RPCPacketType 5.2.6.2*/
37 #define RPC_PKT_TYPE_REQUEST 0
38 #define RPC_PKT_TYPE_PING 1
39 #define RPC_PKT_TYPE_RESPONSE 2
40 #define RPC_PKT_TYPE_FAULT 3
41 #define RPC_PKT_TYPE_WORKING 4
42 #define RPC_PKT_TYPE_NOCALL 5
43 #define RPC_PKT_TYPE_REJECT 6
44 #define RPC_PKT_TYPE_ACKNO 7
45 #define RPC_PKT_TYPE_CNXLESS 8
46 #define RPC_PKT_TYPE_FRGACK 9
47 #define RPC_PKT_TYPE_CANCELACK 0x0A
48 
49 /* RPCFlag 5.2.6.3*/
50 #define RPCFLAG_SPECIFIC 0x01
51 #define RPCFLAG_LASTFRAGMENT 0x02
52 #define RPCFLAG_FRAGMENT 0x04
53 #define RPCFLAG_NOFRAGMENT 0x08
54 #define RPCFLAG_MAYBE 0x10
55 #define RPCFLAG_IDEMPOTEN 0x20
56 #define RPCFLAG_BROADCAST 0x40
57 #define RPCFLAG_SPECIFIC2 0x80
58 
59 
60 /* RPCFlag2 5.2.6.4*/
61 #define RPCFLAG2_SPECIFIC 0x01
62 #define RPCFLAG2_CANCELPENDING 0x02
63 
64 /* rPCDRep 5.2.6.5*/
65 /* Byte 1*/
66 #define RPCDREP1_CHARCODING_MASK 0x01 /* 0 ascii 1 EBCDIC*/
67 #define RPCDREP1_INTCODING_MASK 0x10 /* 0 big endian 1 little endian*/
68 
69 #define RPCDREP1_CHARENCODINGASCII 0x0 /* Ascii*/
70 #define RPCDREP1_CHARENCODINGEBCDIC 0x1 /* EBCDIC*/
71 
72 #define RPCDREP1_INTBIGENDIAN 0x0
73 #define RPCDREP1_INTLITTLEENDIAN 0x1
74 
75 /* Byte 2*/
76 #define RPCDREP2_IEEE 0x00
77 #define RPCDREP2_VAX 0x01
78 #define RPCDREP2_CRAY 0x02
79 #define RPCDREP2_IBM 0x03
80 
81 /* RPCInterfaceVersion*/
82 #define RPCINTERFACEVERSIONMAJOR 1
83 #define RPCINTERFACEVERSIONMINOR 0
84 
85 /* RPCOperationNmb 5.2.6.14*/
86 #define RPCOPERATIONNMB_CONNECT 0
87 #define RPCOPERATIONNMB_RELEASE 1
88 #define RPCOPERATIONNMB_READ 2
89 #define RPCOPERATIONNMB_WRITE 3
90 #define RPCOPERATIONNMB_CONTROL 4
91 #define RPCOPERATIONNMB_READIMPL 5
92 
93 #define RPCOPEARATIONNMB_EM_INSERT 0
94 #define RPCOPERATIONNMB_EM_DELETE 1
95 #define RPCOPERATIONNMB_EM_LOOKUP 2
96 #define RPCOPERATIONNMB_EM_MAP 3
97 #define RPCOPERATIONNMB_EM_LKUPHAFREE 4
98 #define RPCOPERATIONNMB_EM_INQOBJ 5
99 #define RPCOPERATIONNMB_EM_MGMTDELETE 6
100 
101 #define EPM_PROTOCOLE_DOD_UDP 0x08
102 #define EPM_PROTOCOLE_DOD_IP 0x09
103 #define EPM_PROTOCOLE_DOD_RPC 0x0a
104 #define EPM_PROTOCOLE_DOD_UUID 0x0d
105 
106 #define RPC_EPM_DEVICE_TYPE_MAX_LEN 25
107 #define RPC_EPM_ORDER_ID_MAX_LEN 20
108 #define RPC_EPM_HWREV_MAX_LEN 5
109 #define RPC_EPM_SWREV_MAX_LEN 10
110 
111 /* RPCInterfaceIint 5.2.6.15*/
112 #define RPCINTERFACEINT_NOHINT 0xffff
113 
114 /* RPCActivityInt 5.2.6.16*/
115 #define RPCACTIVITYINT_NOHINT 0xffff
116 
117 #include "os_pck.h"
118 
120 { /* 5.2.6*/
121  APP_BYTE RPCVersion ;
122  APP_BYTE RPCPacketType;
123  APP_BYTE RPCFlag;
124  APP_BYTE RPCFlag2;
125  APP_BYTE RPCDRep[3];
126  APP_BYTE RPCSerialHigh;
127  ST_CLR_RPC_UUID RPCObjectUUID;
128  ST_CLR_RPC_UUID RPCInterfaceUUID;
129  ST_CLR_RPC_UUID RPCActivityUUID;
130  ALIGNED_DWORD_DECL(RPCServerBootTime);
131  ALIGNED_DWORD_DECL(RPCInterfaceVersion);
132  ALIGNED_DWORD_DECL(RPCSequenceNmb);
133  APP_WORD RPCOperationNmb;
134  APP_WORD RPCInterfaceInt;
135  APP_WORD RPCActivityInt;
136  APP_WORD RPCLengthOfBody;
137  APP_WORD RPCFragmentNmb;
138  APP_BYTE RPCAuthentificationProtocol;
139  APP_BYTE RPCSerialLow;
140 }STRUCT_ALIGNEMENT;
141 typedef struct _ST_RPC_HDR_ PACK_ALIGNEMENT(ST_RPC_HDR), APP_FAR *LPST_RPC_HDR;
142 #define RPC_HDR_SIZEOF 80
143 
145  ALIGNED_DWORD_DECL(dwMaxCount);
146  ALIGNED_DWORD_DECL(dwOffset);
147  ALIGNED_DWORD_DECL(dwActualCount);
148 }STRUCT_ALIGNEMENT;
149 typedef struct _ST_LEN_ARRAY PACK_ALIGNEMENT(ST_LEN_ARRAY), APP_FAR * LPST_LEN_ARRAY;
150 #define ST_LEN_ARRAY_SIZEOF 12
151 
152 
154 {
155  APP_BYTE byFackPduVers; /*=0*/
156  APP_BYTE byFackPduPad1;
157  APP_WORD wFackPduWindowsSize;
158  ALIGNED_DWORD_DECL(dwFackPduMaxTSDU);
159  ALIGNED_DWORD_DECL(dwFackPduFragSize);
160  APP_WORD wFackPduSerialNum;
161  APP_WORD wFackPduSerialAckArrayLen;
162  ALIGNED_DWORD_DECL(dwFackPduSerialAckArray);
163 }STRUCT_ALIGNEMENT;
164 typedef struct _ST_RPC_FACK_PDU PACK_ALIGNEMENT(ST_RPC_FACK_PDU), APP_FAR *LPST_RPC_FACK_PDU;
165 #define ST_LEN_RPC_FACK_PDU 20
166 
168 {
169  ALIGNED_DWORD_DECL(dwCancelPduVers); /*=0*/
170  ALIGNED_DWORD_DECL(dwCancelPduCancelID);
171 }STRUCT_ALIGNEMENT;
172 typedef struct _ST_RPC_CANCEL_PDU PACK_ALIGNEMENT(ST_RPC_CANCEL_PDU), APP_FAR *LPST_RPC_CANCEL_PDU;
173 #define ST_LEN_RPC_CANCEL_PDU 8
174 
175 #include "os_unpck.h"
176 
177 
178 #endif
Definition: rpc_pdu.h:119
Definition: rpc_pdu.h:144
Definition: rpc_pdu.h:167
Definition: rpc_pdu.h:153