aboutsummaryrefslogtreecommitdiffstats
path: root/octvc1/octvc1_handle.h
blob: ea70f6e8153fe17bea547a850e40feeebfd592f1 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\

File: OCTVC1_HANDLE.h

Copyright (c) 2018 Octasic Inc. All rights reserved.

Description: 

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.


Release: OCTSDR Software Development Kit OCTSDR_GSM-02.10.00-B1837 (2018/02/21)

$Revision: $

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

#ifndef __OCTVC1_HANDLE_H__
#define __OCTVC1_HANDLE_H__


/*****************************  INCLUDE FILES  *******************************/
#include "../octdev_types.h"


/************************  COMMON DEFINITIONS  *******************************/

/*-------------------------------------------------------------------------------------
 	Handle Type Definitions
-------------------------------------------------------------------------------------*/

#define cOCTVC1_HANDLE_TYPE_OBJECT							0x00000000	
#define cOCTVC1_HANDLE_TYPE_SPECIAL							0xC0000000	

/*-------------------------------------------------------------------------------------
 	Special Object Handle.
 	These handle are used by setting
 	tOCTVC1_HANDLE.aulHandle[0] to the selected value.
-------------------------------------------------------------------------------------*/

#define cOCTVC1_HANDLE_INVALID								0xFFFFFFFF	
#define cOCTVC1_HANDLE_TX_ETHERNET							0xFFFFFFFE	
#define cOCTVC1_HANDLE_RX_ETHERNET							0xFFFFFFFD	

/*-------------------------------------------------------------------------------------
 	Generic Definitions
-------------------------------------------------------------------------------------*/

#define cOCTVC1_DO_NOT_MODIFY								0xEEEEEEEE	
#define cOCTVC1_INDEX_INVALID								0xFFFFFFFF	
#define cOCTVC1_HANDLE_OBJECT_LIST_MAX_ENTRY				100		
#define cOCTVC1_HANDLE_OBJECT32_NAME_LIST_MAX_ENTRY			25		
#define cOCTVC1_HANDLE_OBJECT32_NAME_MAX_LENGTH				31		
#define cOCTVC1_HANDLE_OBJECT32_NAME128_LIST_MAX_ENTRY		10		
#define cOCTVC1_HANDLE_OBJECT32_NAME128_MAX_LENGTH			127		

/*-------------------------------------------------------------------------------------
 	Base Object Type, for MAIN API
-------------------------------------------------------------------------------------*/

#define cOCTVC1_HANDLE_BASE_OBJ_TYPE_MAIN_MASK				0xFF00	
#define cOCTVC1_HANDLE_BASE_OBJ_TYPE_INVALID				0x0000	
#define cOCTVC1_HANDLE_BASE_OBJ_TYPE_MAIN					(cOCTVC1_MAIN_UID<<8)	

/*-------------------------------------------------------------------------------------
 	Generic Vocallo Object Handle
-------------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------------
	tOCTVC1_HANDLE_OBJECT : 	Handle Object Definitions
 	bits[31:20] = Object Type
 	bits[19:0] = Object Instance bits
-------------------------------------------------------------------------------------*/
#define tOCTVC1_HANDLE_OBJECT								tOCT_UINT32


/*-------------------------------------------------------------------------------------
	tOCTVC1_OBJECT32_NAME

 Members:
	ulObject32
 		32 bits object identifier
 		May be tOCTVC1_HANDLE_OBJECT, tOCTVC1_SUB_OBJECT_ID, tOCTVC1_INDEX or any 32bits
	szDisplayName
 		Name given to the object. Normally use for display name threw populate
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	ulObject32;
	tOCT_INT8	szDisplayName[(cOCTVC1_HANDLE_OBJECT32_NAME_MAX_LENGTH+1)];

} tOCTVC1_OBJECT32_NAME;

/*-------------------------------------------------------------------------------------
	tOCTVC1_SUB_OBJECT_ID : 	Identifier specific to a child.
 	Implementation is specific for every parent.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_SUB_OBJECT_ID								tOCT_UINT32


/*-------------------------------------------------------------------------------------
	tOCTVC1_INDEX : 	Index specific to an object.
 	Implementation is specific for every object.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_INDEX										tOCT_UINT32


/*-------------------------------------------------------------------------------------
	tOCTVC1_OBJECT32_NAME128

 Members:
	ulObject32
 		32 bits file identifier
	szDisplayName
 		Filename. Normally use for display name threw populate
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	ulObject32;
	tOCT_INT8	szDisplayName[(cOCTVC1_HANDLE_OBJECT32_NAME128_MAX_LENGTH+1)];

} tOCTVC1_OBJECT32_NAME128;


#endif /* __OCTVC1_HANDLE_H__ */