summaryrefslogtreecommitdiff
path: root/include/octrpc/rpc_protocol.h
blob: 4cbefd03ac228d0e86f16a07ed6b65b82e7fcd29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\

File:	rpc_protocol.h

Copyright (c) 2001 Octasic Inc. All rights reserved.
    
Description: 

This section defines the intent of the file.

This source code is Octasic Confidential. Use of and access to this code
is covered by the Octasic Device Enabling Software License Agreement. 
Acknowledgement of the Octasic Device Enabling Software License was 
required for access to this code. A copy was also provided with the release.


$Octasic_Release: OCT610xAPI-01.00-PR37 $

$Octasic_Revision: 22 $

\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

#ifndef __RPC_PROTOCOL_H__
#define __RPC_PROTOCOL_H__

/*****************************  INCLUDE FILES  *******************************/


/*****************************  DEFINES  *************************************/
#define cOCTRPC_ENDIAN_DETECT				0x27182819
#define cOCTRPC_ENDIAN_DETECT_BYTE_W		0x19
#define cOCTRPC_ENDIAN_DETECT_BYTE_X		0x28
#define cOCTRPC_ENDIAN_DETECT_BYTE_Y		0x18
#define cOCTRPC_ENDIAN_DETECT_BYTE_Z		0x27
#define cOCTRPC_ECHO_PROTOCOL				0x00000000

#define cOCTRPC_MIN_PACKET_BYTE_LENGTH		(sizeof( tOCTRPC_OGRDTP_HEADER ))
#define cOCTRPC_FIRST_COMMAND_BYTE_OFFSET	(sizeof( tOCTRPC_OGRDTP_HEADER ) + sizeof( tOCTRPC_INTERFACE_HEADER ))
#define cOCTRPC_GENERIC_HEADERS_BYTE_SIZE	(sizeof( tOCTRPC_OGRDTP_HEADER ) + sizeof( tOCTRPC_INTERFACE_HEADER ) + sizeof( tOCTRPC_COMMAND_HEADER ))
#define cOCTRPC_MAX_PACKET_BYTE_LENGTH		32768

/* Protocol versions */
#define cOCTRPC_PROTOCOL_V1_0				0x00010000
#define cOCTRPC_PROTOCOL_V1_1				0x00010001
#define cOCTRPC_PROTOCOL_V1_2				0x00010002
#define cOCTRPC_PROTOCOL_V1_3				0x00010003
#define cOCTRPC_OCTASIC_PROTOCOL_V1_0		0xFF010000
#define cOCTRPC_OCTASIC_PROTOCOL_V1_1		0xFF010001
#define cOCTRPC_OCTASIC_PROTOCOL_V1_2		0xFF010002
#define cOCTRPC_OCTASIC_PROTOCOL_V1_3		0xFF010003

/* Chips */
#define cOCTRPC_OCT8304_INTERFACE			0x00000000
#define cOCTRPC_OCT6100_INTERFACE			0x00000001

/* Timeout values. */
#define cOCTRPC_SESSION_TIMEOUT				30

/* Generic errors */
#define cOCTRPC_RDBGERR_OK							0x00000000
#define cOCTRPC_RDBGERR_NO_ANSWER					0xFFFF0000
#define cOCTRPC_RDBGERR_ALL_SESSIONS_OPEN			0xFFFF0001
#define cOCTRPC_RDBGERR_PROTOCOL_NUMBER				0xFFFF0002
#define cOCTRPC_RDBGERR_NO_COMMAND_HEADER			0xFFFF0003
#define cOCTRPC_RDBGERR_INTERFACE_TYPE				0xFFFF0004
#define cOCTRPC_RDBGERR_INTERFACE_VERSION			0xFFFF0005
#define cOCTRPC_RDBGERR_INVALID_PACKET_LENGTH		0xFFFF0006
#define cOCTRPC_RDBGERR_INVALID_COMMAND_LENGTH		0xFFFF0007
#define cOCTRPC_RDBGERR_INVALID_COMMAND_NUMBER		0xFFFF0008
#define cOCTRPC_RDBGERR_PACKET_TOO_LARGE			0xFFFF0009
#define cOCTRPC_RDBGERR_LIST_EMPTY					0xFFFF000A

#define cOCTRPC_RDBGERR_FATAL						0xFFFFFFFF


/*****************************  TYPES  ***************************************/
typedef struct _OCTRPC_OGRDTP_HEADER_
{
	UINT32	IN		ulEndianDetect;
	UINT32	IN		ulDebugSessionNum;
	UINT32	IN		ulTransactionNum;
	UINT32	IN		ulPktRetryNum;
	UINT32	IN		ulPktByteSize;
	UINT32	IN		ulChecksum;
	UINT32	OUT		ulParsingError;
	UINT32	IN		ulRpcProtocolNum;

} tOCTRPC_OGRDTP_HEADER, *tPOCTRPC_OGRDTP_HEADER;

typedef struct _OCTRPC_INTERFACE_HEADER_
{
	UINT32	IN		ulInterfaceType;
	UINT32	IN		ulInterfaceVersion;

} tOCTRPC_INTERFACE_HEADER, *tPOCTRPC_INTERFACE_HEADER;

typedef struct _OCTRPC_COMMAND_HEADER_
{
	UINT32	IN		ulCommandByteSize;
	UINT32	IN OUT	ulRpcCommandNum;
	UINT32	OUT		ulFunctionResult;

} tOCTRPC_COMMAND_HEADER, *tPOCTRPC_COMMAND_HEADER;



#endif /* __RPC_PROTOCOL_H__ */