DSMCC
15.3.1
|
00001 /******************************************************************************* 00002 * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org) 00003 * Copyright © 2004 Ocean Blue Software Ltd 00004 * Copyright © 2001 Koninklijke Philips Electronics N.V 00005 * 00006 * This file is part of a DTVKit Software Component 00007 * You are permitted to copy, modify or distribute this file subject to the terms 00008 * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org 00009 * 00010 * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 00011 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES 00012 * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. 00013 * 00014 * If you or your organisation is not a member of DTVKit then you have access 00015 * to this source code outside of the terms of the licence agreement 00016 * and you are expected to delete this and any associated files immediately. 00017 * Further information on DTVKit, membership and terms can be found at www.dtvkit.org 00018 *******************************************************************************/ 00026 #ifndef _DATACAROUSEL_H_ 00027 #define _DATACAROUSEL_H_ 00028 00029 00030 /*-------------------------------- Includes --------------------------------*/ 00031 00032 #include "clDsmSystem.h" 00033 00034 #include "linkList.h" 00035 #include "module.h" 00036 00037 #ifdef __cplusplus 00038 extern "C" { 00039 #endif 00040 00041 00042 /*----------------------------- Exported Macros ----------------------------*/ 00043 00044 00045 /*------------------------------ Exported Types ----------------------------*/ 00046 00047 typedef struct { 00048 U16BIT blockSize; 00049 U16BIT numberOfModules; /* -- NB. Value stored here not currently used */ 00050 } DiiInfo_t, *pDiiInfo_t; 00051 00052 00053 typedef struct { 00054 S_LLObject llData[NUM_LISTS_DATA_CAROUSEL]; 00055 U16BIT dataCarouselId; 00056 U32BIT lastRcvdTransactionId; 00057 U32BIT diiCrc; 00058 00059 /* -- DII filter info */ 00060 DeliveryParaTap_t tap; 00061 pSectionFilterInfo_t pDiiSf; 00062 00063 U16BIT diiRequestCount; 00064 U16BIT diiMonitorCount; 00065 00066 DiiInfo_t diiInfo; 00067 U16BIT diiMsgDataLen; 00068 MemHandle hDiiMsgData; 00069 00070 P_LLControl llcDcModules; 00071 00072 } DataCarousel_t, *pDataCarousel_t; 00073 00074 00075 /*------------------------------ Exported Data -----------------------------*/ 00076 00077 00078 /*--------------------------- Exported Prototypes --------------------------*/ 00079 00080 clDsmErr_t dcCreate( pclDsmInstData_t idp, 00081 pDeliveryParaTap_t pTap, MemHandle *phDataCarousel ); 00082 00083 void dcDestroy( pclDsmInstData_t idp, MemHandle *phDataCarousel ); 00084 00085 MemHandle dcListFindById( P_LLControl pDcList, U32BIT transactionId ); 00086 00087 00088 /* -- CONTIGUOUS MEMORY DATA ACCESS FUNCTIONS */ 00089 00090 #include "defMemUtilsContig.h" /* -- Default mem type for functions */ 00091 00092 BOOLEAN dcGetDiiMsgInfoContig( const U8BIT* pDiiMsg, DiiInfo_t *pDiiInfo ); 00093 00094 BOOLEAN dcFindModuleInDiiMsgContig( 00095 /*I*/ const MemPtr pDiiMsg, U32BIT dataLength, U16BIT moduleId, 00096 /*O*/ MemPtr *pModuleInfoDescStart ); 00097 00098 BOOLEAN dcGetModuleInfoContig( 00099 const MemPtr pModuleInfoDescStart, ModuleInfo_t *pModuleInfo ); 00100 00101 void dcGetFirstModuleDescContig( 00102 /*I*/ const MemPtr mpDiiMsg, 00103 /*O*/ MemPtr *mpModuleInfoDescStart ); 00104 00105 void dcGetNextModuleDescContig( 00106 /*I*/ const MemPtr mpCurrModuleDescStart, 00107 /*O*/ MemPtr *mpNextModuleDescStart ); 00108 00109 00110 /* -- MANAGED MEMORY DATA ACCESS FUNCTIONS */ 00111 00112 #include "defMemUtilsMgd.h" /* -- Default mem type for functions */ 00113 00114 BOOLEAN dcFindModuleInDiiMsgSeq( 00115 /*I*/ const MemPtr mpDiiMsg, U32BIT dataLength, U16BIT moduleId, 00116 /*O*/ MemPtr *mpModuleInfoDescStart ); 00117 00118 BOOLEAN dcGetModuleInfoSeq( 00119 const MemPtr mpModuleInfoDescStart, ModuleInfo_t *pModuleInfo ); 00120 00121 00122 /*----------------------------------------------------------------------------*/ 00123 00124 #ifdef __cplusplus 00125 } 00126 #endif 00127 #endif /* _DATACAROUSEL_H_ */