DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
loadMgr.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  * Copyright © 2004 Ocean Blue Software Ltd
4  * Copyright © 2001 Koninklijke Philips Electronics N.V
5  *
6  * This file is part of a DTVKit Software Component
7  * You are permitted to copy, modify or distribute this file subject to the terms
8  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
9  *
10  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
11  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
12  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  * If you or your organisation is not a member of DTVKit then you have access
15  * to this source code outside of the terms of the licence agreement
16  * and you are expected to delete this and any associated files immediately.
17  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
18  *******************************************************************************/
25 #ifndef _LOADMGR_H_
26 #define _LOADMGR_H_
27 
28 
29 /*-------------------------------- Includes --------------------------------*/
30 #include "loadRqst.h"
31 
32 #include "object.h"
33 #include "dsmObject.h"
34 #include "objectCarousel.h"
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 /*----------------------------- Exported Macros ----------------------------*/
41 
42 #define CRSL_LOAD_TIMEOUT 50000
43 
44 /*------------------------------ Exported Types ----------------------------*/
45 
46 typedef struct s_LoadRequest *P_LoadRequest;
47 
48 typedef struct s_LoadRequest
49 {
50  S_RootLoadRqst rlr;
51 
52  P_ObjectCarousel pObjCarousel; /* -- OC this load is requested on */
53 
54  P_DataCarousel pDataCarousel; /* -- DC that load is currently progressed to */
55  P_Module pModule; /* -- Module that load is currently progressed to */
56 
57  S_DeliveryParaTap tap; /* -- Next tap that load needs */
58  S_ObjectLocation objectLocation; /* -- Next object that load needs */
59 
60  U32BIT targetObjectOffset; /* -- NB. From start of moduleData */
61  ObjectDataInfo_t targetObjectInfo;
62 
63  U32BIT remainingPathOffset;
64  U8BIT *pRemainingPath;
65 
67 
68 
69 /*------------------------------ Exported Data -----------------------------*/
70 
71 
72 /*--------------------------- Exported Prototypes --------------------------*/
73 #ifdef DSM_NO_MEM_CONTEXT
74 #define lmSetModuleCachingRules( x, a, b ) lmSetModuleCachingRules( a, b )
75 #endif
76 
77 E_DscError lmCarouselLoadCreate( P_DsmCoreInst idp, P_ObjectCarousel pOC,
78  U32BIT timeout, MemHandle *phLoadRequest );
79 
80 E_DscError lmUpdateCarouselBoot( P_DsmCoreInst idp, P_ObjectCarousel pOC,
81  P_CarouselInfo pCarouselInfo );
82 
83 
84 E_DscError lmRequestObjectLoad( P_DsmCoreInst idp,
85  P_ObjectCarousel pOC, U8BIT *path, U32BIT timeout,
86  H_ObjUserData pUserData, U32BIT sizeOfUserData,
87  P_DsmObject pDsmObject,
88  P_LoadRequest *ppLoadRequest );
89 
90 E_DscError lmPrefetchObjectLoad( P_DsmCoreInst idp,
91  P_ObjectCarousel pOC, U8BIT *path, U32BIT timeout,
92  P_LoadRequest *ppLoadRequest );
93 
94 void lmLoadDestroy( P_DsmCoreInst idp, P_LoadRequest pLoadRequest );
95 
96 E_DscError lmGetObjectLoadState( P_DsmCoreInst idp,
97  P_ObjectCarousel pOC, U8BIT *path, P_Module *ppModule );
98 
99 E_DscError lmUpdateCarouselSRGInfo( P_DsmCoreInst idp,
100  P_ObjectCarousel pOC, P_DeliveryParaTap pSrgTap,
101  P_ObjectLocation pSrgLocn );
102 
103 E_DscError lmUpdateModule( P_DsmCoreInst idp, P_Module pModule );
104 
105 void lmStopModuleLoadRequest( P_DsmCoreInst idp, P_LoadRequest pLoadRequest );
106 
107 void lmSetObjectModuleLoaded( P_DsmCoreInst idp, P_Module pModule );
108 
109 void lmSetObjectModuleUnloaded( P_DsmCoreInst idp, P_Module pModule );
110 
111 void lmObjCarouselTimeout( P_DsmCoreInst idp, P_ObjectCarousel pOC );
112 
113 void lmAbortLoadRequestsOnModuleTimeout( P_DsmCoreInst idp, P_Module pModule );
114 
115 E_DscError lmLiteOptionsObjectHandle(P_DsmCoreInst idp,
116  U8BIT *name,
117  P_LoadRequest pLoadRequest );
118 
119 void lmCarouselLoadFinalise( P_DsmCoreInst idp, P_LoadRequest pLoadRequest );
120 
121 /*----------------------------------------------------------------------------*/
122 
123 #ifdef __cplusplus
124 }
125 #endif
126 #endif /* _LOADMGR_H_ */
Header defining.
Header to dsmObject module - functions for managing DSM object heap.
Header to the object module - functions/methods accessing data of object messages inside modules...