DSMCC  15.3.1
source/dscore/src/dataCarousel.h
Go to the documentation of this file.
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_ */
 All Data Structures Files Functions Typedefs