25 #ifndef _CLDSMSYSTEM_H_
26 #define _CLDSMSYSTEM_H_
44 #if (!defined(NDEBUG) && defined(DSM_PROFILING_BUILD))
49 #ifndef DSM_NO_MEM_CONTEXT
50 #define MEM_CONTEXT idp->memContext
65 #define BIT8_MSK 0x0100
66 #define BIT9_MSK 0x0200
67 #define BIT10_MSK 0x0400
68 #define BIT11_MSK 0x0800
69 #define BIT12_MSK 0x1000
70 #define BIT13_MSK 0x2000
71 #define BIT14_MSK 0x4000
72 #define BIT15_MSK 0x8000
83 #define LSB9_MSK 0x01FF
84 #define LSB10_MSK 0x03FF
85 #define LSB11_MSK 0x07FF
86 #define LSB12_MSK 0x0FFF
87 #define LSB13_MSK 0x1FFF
88 #define LSB14_MSK 0x3FFF
89 #define LSB15_MSK 0x7FFF
90 #define LSB16_MSK 0xFFFF
92 #define MOD2_MSK LSB1_MSK
93 #define MOD4_MSK LSB2_MSK
94 #define MOD8_MSK LSB3_MSK
95 #define MOD16_MSK LSB4_MSK
96 #define MOD32_MSK LSB5_MSK
97 #define MOD64_MSK LSB6_MSK
98 #define MOD128_MSK LSB7_MSK
107 #define DSIDII_ID 0x3B
109 #define STREAM_DESCR_ID 0x3D
111 #define SECTION_HDR_LEN 8
112 #define MIN_SECTION_LEN 9
113 #define MAX_SECTION_LEN 4093
115 #define MAX_DDB_BLOCKSIZE 4066
118 #define DSMCC_MSG_HDR_LEN 12
121 #define DSI_HDR_LEN 24
122 #define MIN_SRG_INFO_LEN (IOR_HDR_LEN + \
123 PROFILE_TAG_BIOP_HDR_LEN + \
124 MIN_PROFILE_TAG_BIOP_DATA_LEN)
125 #define MIN_DSI_MSG_BODY_LEN (DSI_HDR_LEN + \
127 #define MIN_DSI_MSG_LEN (DSMCC_MSG_HDR_LEN + DSI_HDR_LEN)
131 #define MIN_DII_MSG_BODY_LEN 20
132 #define MIN_DII_MSG_LEN (DSMCC_MSG_HDR_LEN + \
133 MIN_DII_MSG_BODY_LEN)
136 #define DSMCC_DOWNLOAD_HDR_LEN 12
137 #define DDB_MSG_PAYLOAD_HDR_LEN 6
138 #define MIN_DDB_PAYLOAD_DATA_LEN 0
139 #define MIN_DDB_MSG_BODY_LEN (DDB_MSG_PAYLOAD_HDR_LEN + \
140 MIN_DDB_PAYLOAD_DATA_LEN)
141 #define MIN_DDB_MSG_LEN (DSMCC_DOWNLOAD_HDR_LEN + \
142 MIN_DDB_MSG_BODY_LEN)
143 #define MAX_DDB_BLOCKSIZE 4066
146 #define TRANSACTION_ID_UPDATED_MASK 0x00000001
147 #define TRANSACTION_ID_IDENT_MASK 0x0000fffe
148 #define TRANSACTION_ID_VERSION_MASK 0x3fff0000
149 #define TRANSACTION_ID_ORIG_MASK 0xc0000000
152 #define OBJECT_NUMBYTES_TO_MESSAGE_START 12
153 #define BIOP_MAGIC 0x42494F50
156 #define TAG_LITE_OPTIONS 0x49534f05
157 #define TAG_BIOP 0x49534f06
158 #define TAG_CONN_BINDER 0x49534f40
159 #define TAG_SERVICE_LOCATION 0x49534f46
160 #define TAG_OBJECT_LOCATION 0x49534f50
163 #define IOR_HDR_LEN 12
166 #define PROFILE_TAG_BIOP_HDR_LEN 10
167 #define MIN_PROFILE_TAG_BIOP_DATA_LEN (MIN_OBJ_LOCATION_LEN + \
171 #define MIN_OBJ_LOCATION_LEN 15
172 #define MIN_OBJLOC_COMPONENT_DATA_LEN (MIN_OBJ_LOCATION_LEN - 5)
173 #define MIN_CONN_BINDER_LEN 23
174 #define MIN_CONBIND_COMPONENT_DATA_LEN (MIN_CONN_BINDER_LEN - 5)
178 #define UNKNOWN_USE ((U16BIT) 0)
179 #define MPEG_TS_UP_USE ((U16BIT) 1)
180 #define MPEG_TS_DOWN_USE ((U16BIT) 2)
181 #define MPEG_ES_UP_USE ((U16BIT) 3)
182 #define MPEG_ES_DOWN_USE ((U16BIT) 4)
183 #define DOWNLOAD_CTRL_USE ((U16BIT) 5)
184 #define DOWNLOAD_CTRL_UP_USE ((U16BIT) 6)
185 #define DOWNLOAD_CTRL_DOWN_USE ((U16BIT) 7)
186 #define DOWNLOAD_DATA_USE ((U16BIT) 8)
187 #define DOWNLOAD_DATA_UP_USE ((U16BIT) 9)
188 #define DOWNLOAD_DATA_DOWN_USE ((U16BIT) 10)
189 #define STR_NPT_USE ((U16BIT) 11)
190 #define STR_STATUS_AND_EVENT_USE ((U16BIT) 12)
191 #define STR_EVENT_USE ((U16BIT) 13)
192 #define STR_STATUS_USE ((U16BIT) 14)
193 #define RPC_USE ((U16BIT) 15)
194 #define IP_USE ((U16BIT) 16)
195 #define SDB_CTRL_USE ((U16BIT) 17)
196 #define T120_TAP1 ((U16BIT) 18)
197 #define T120_TAP2 ((U16BIT) 19)
198 #define T120_TAP3 ((U16BIT) 20)
199 #define T120_TAP4 ((U16BIT) 21)
200 #define BIOP_DELIVERY_PARA_USE ((U16BIT) 22)
201 #define BIOP_OBJECT_USE ((U16BIT) 23)
202 #define BIOP_ES_USE ((U16BIT) 24)
203 #define BIOP_PROGRAM_USE ((U16BIT) 25)
204 #define BIOP_DNL_CTRL_USE ((U16BIT) 26)
207 #define SRG_STR 0x73726700
208 #define DIR_STR 0x64697200
209 #define FIL_STR 0x66696c00
210 #define STR_STR 0x73747200
211 #define STE_STR 0x73746500
214 #define DESCRIPTOR_TYPE_TAG ((U8BIT) 1)
215 #define DESCRIPTOR_NAME_TAG ((U8BIT) 2)
216 #define DESCRIPTOR_INFO_TAG ((U8BIT) 3)
217 #define DESCRIPTOR_MODULE_LINK_TAG ((U8BIT) 4)
218 #define DESCRIPTOR_CRC32_TAG ((U8BIT) 5)
219 #define DESCRIPTOR_LOCATION_TAG ((U8BIT) 6)
220 #define DESCRIPTOR_EST_DOWNLOAD_TIME_TAG ((U8BIT) 7)
221 #define DESCRIPTOR_GROUP_LINK_TAG ((U8BIT) 8)
222 #define DESCRIPTOR_COMP_MODULE_TAG ((U8BIT) 9)
223 #define DESCRIPTOR_SSU_MODULE_TYPE_TAG ((U8BIT) 0x0A)
224 #define DESCRIPTOR_SSU_SUBGROUP_ASS_TAG ((U8BIT) 0x0B)
225 #define DESCRIPTOR_MHP_LABEL ((U8BIT) 0x70)
226 #define DESCRIPTOR_MHP_CACHING_PRIORITY ((U8BIT) 0x71)
233 #define MAX_PATH_NAME_SIZE 255
239 #define MAX_DIRECTORY_DEPTH (((MAX_PATH_NAME_SIZE - 1) + 1) / 2)
245 #define PATH_SEPERATOR_CHAR '/'
248 #define MIN_MEM_BLK_SIZE 256
252 #define MAX_BLOCKS_IN_MODULE 1600
255 #define NUM_INTERNAL_MEM_SEQ_MAX 128
259 #define MAX_MODULE_DECOMPRESS_FAILURES 3
270 #define SECTION_FILTER_HEAP_SLACK 16
271 #define SECTION_FILTER_HEAP_SIZE (NUM_SECTION_FILTERS_MAX_DEFAULT + \
272 SECTION_FILTER_HEAP_SLACK)
276 #define ROOT_CAROUSEL_LIST 0
277 #define NUM_LISTS_ROOT_CAROUSEL 1
280 #define OC_DATA_CAROUSEL_LIST 0
281 #define OC_DII_ACQUIRE_LIST 1
282 #define NUM_LISTS_DATA_CAROUSEL 2
285 #define OC_LITE_OBJECT_LOAD_LIST 0
286 #define NUM_LITE_OBJECT_LOAD_LIST 1
289 #define DC_MODULE_LIST 0
290 #define MODULE_ACQUIRE_LIST 1
291 #define MODULE_PRIORITY_LIST 2
292 #define MODULE_LOADED_LIST 2
293 #define MODULE_DELETE_LIST 2
294 #define NUM_LISTS_MODULE 3
297 #define CURR_OBJECT_LIST 0
298 #define MODULE_OBJECT_LIST 1
299 #define NUM_LISTS_OBJECT 2
302 #define CURR_LOAD_REQUEST_LIST 0
303 #define MODULE_LOAD_REQUEST_LIST 1
304 #define NUM_LISTS_LOAD_REQUEST 2
307 #define CURR_SI_QUERY_LIST 0
308 #define DUPLICATE_SI_QUERY_LIST 1
309 #define NUM_LISTS_SI_QUERY 2
319 #define DEBUG_CHK( condn, dbgActn )
321 #define DEBUG_CHK( condn, dbgActn ) if (!(condn)) { dbgActn; }
339 #ifdef DSM_NO_API_PARAM_CHECK
345 #define API_PARAM_CHK( condn, dbgErrActn, relErrActn )
349 #define API_PARAM_CHK( condn, dbgErrActn, relErrActn ) \
350 if (!(condn)) { dbgErrActn; } \
358 #define API_PARAM_CHK( condn, dbgErrActn, relErrActn ) \
359 if (!(condn)) { dbgErrActn; relErrActn; } \
392 #if !defined(DSM_DATA_CHECK_LEVEL)
393 #define DSM_DATA_CHECK_LEVEL 1
399 #define L0_DATA_CHK( condn, dbgErrActn, relErrActn ) \
400 if (!(condn)) { dbgErrActn; relErrActn; } \
403 #if DSM_DATA_CHECK_LEVEL >= 1
407 #define L1_DATA_CHK( condn, dbgErrActn, relErrActn ) \
408 if (!(condn)) { dbgErrActn; relErrActn; } \
414 #if (defined(NDEBUG) || defined(DSM_PROFILING_BUILD))
416 #define L1_DATA_CHK( condn, dbgErrActn, relErrActn )
420 #define L1_DATA_CHK( condn, dbgErrActn, relErrActn ) \
421 if (!(condn)) { dbgErrActn; } \
428 #if DSM_DATA_CHECK_LEVEL >= 2
432 #define L2_DATA_CHK( condn, dbgErrActn, relErrActn ) \
433 if (!(condn)) { dbgErrActn; relErrActn; } \
439 #if (defined(NDEBUG) || defined(DSM_PROFILING_BUILD))
441 #define L2_DATA_CHK( condn, dbgErrActn, relErrActn )
445 #define L2_DATA_CHK( condn, dbgErrActn, relErrActn ) \
446 if (!(condn)) { dbgErrActn; } \
457 #define CHECK_MEM_ERR( func ) \
459 E_DsmMemErr memErr; \
462 if (memErr != MEM_NO_ERR) { \
463 dsmDP1(("Memory error : %i \n", memErr)); \
464 dsmAssert((memErr == MEM_NO_ERR)); \
469 #define CHECK_MEM_ERR( x ) x
500 U8BIT dvbCarouselNSAPaddress[20];
501 #ifdef READ_COSNAMING
512 U16BIT associationTag;
513 U32BIT transactionId;
519 typedef struct s_se_info *ps_se_info;
525 typedef struct s_dsmevent *P_Event;
528 typedef struct s_ModuleData *P_ModuleData;
529 typedef struct s_ZlibHeap *P_ZlibHeap;
541 U32BIT pfrdoCallDepth;
542 U32BIT pfdlfCallDepth;
543 U32BIT pfsdndCallDepth;
550 BOOLEAN currentServiceSet;
554 BOOLEAN lastPIDResultStored;
555 U16BIT lastServiceId;
556 U16BIT lastAssociationTag;
567 U32BIT cacheMemoryUsage;
568 U32BIT cacheMaximumUsage;
572 U32BIT dsmObjectsOpen;
575 void *sectionFilterHeap;
578 P_ZlibHeap pZlibHeap;
580 P_RootCarousel pCurrentCarousel;
581 P_RootCarousel pBootingCarousel;
583 P_LLControl llcRootCarousels;
584 P_LLControl llcModulePriority;
585 P_LLControl llcLoadedModules;
586 P_LLControl llcExpiredModules;
587 P_LLControl llcCurrLoadRequests;
588 P_LLControl llcCurrSiQueries;
590 ps_se_info hSubscribedEventList;
598 E_DscError CDSM_UnloadAllObjects( P_DsmCoreInst instance, E_DsmRstMode mode );
DSM-CC dynamic memory manager API.
Main API to DSM-CC core layer (provided functions and required callbacks).
Internal Platform dependent definitions, for debug.