DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
loadRqst.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2015 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  *
4  * This file is part of a DTVKit Software Component
5  * You are permitted to copy, modify or distribute this file subject to the terms
6  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
7  *
8  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
9  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
10  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
11  *
12  * If you or your organisation is not a member of DTVKit then you have access
13  * to this source code outside of the terms of the licence agreement
14  * and you are expected to delete this and any associated files immediately.
15  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
16  *******************************************************************************/
24 #ifndef _LOADRQST_H_
25 #define _LOADRQST_H_
26 
27 /*-------------------------------- Includes --------------------------------*/
28 #include "clDsmSystem.h"
29 #include "linkList.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /*----------------------------- Exported Macros ----------------------------*/
36 
37 #define LOAD_REQUEST_MAGIC 0x4C525154 /*'LRQT'*/
38 
39 /*------------------------------ Exported Types ----------------------------*/
40 
41 typedef enum
42 {
43  LRS_INITIAL = 0,
44  LRS_STALLED_DSI,
45  LRS_STALLED_SRG_MODULE,
46  LRS_STALLED_MODULE,
47  LRS_ABORTED_TIMEOUT,
48  LRS_ABORTED_PATH_ERROR,
49  LRS_ABORTED_LOAD_ERROR,
50  LRS_ABORTED_BY_REQUESTER,
51  LRS_LOADED,
52  LRS_LITE_OPTIONS_LOADED,
53  LRS_LITE_OPTIONS_PENDING,
54  LRS_ABORT_PENDING_RELOAD
55 } E_LRStatus;
56 
57 typedef enum
58 {
59  TT_NONE,
60  TT_CAROUSEL,
61  TT_GEN_OBJECT,
62  TT_TMP_OBJECT,
63  TT_PREFETCH_DIR_OBJ,
64  TT_PREFETCH_NON_DIR_OBJ,
65  TT_SSU_GROUP,
66  TT_SSU_MODULE
67 } E_TargetType;
68 
69 typedef void (*F_LoadFinalise)( P_DsmCoreInst idp, P_RootLoadRqst pLoadRequest );
70 
71 typedef struct s_RootLoadRqst
72 {
73  S_LLObject llData[NUM_LISTS_LOAD_REQUEST];
74  U32BIT magic;
75  E_LRStatus status; /* -- Curent load state */
76  E_TargetType targetKind; /* -- Kind of final load target */
77  H_Object target;
78  F_LoadFinalise finalise;
79  U32BIT remaining;
80  E_CacheRules cachingRules;
81  H_UsrRef usrRef;
83 
84 /*------------------------------ Exported Data -----------------------------*/
85 
86 
87 /*--------------------------- Exported Prototypes --------------------------*/
88 
89 E_DscError DSC_LoadRsqtCreate( P_DsmCoreInst idp, U32BIT size,
90  E_TargetType targetKind, H_Object target, F_LoadFinalise finalise, P_RootLoadRqst *ppLoadRqst );
91 
92 void DSC_LoadRsqtDestroy( P_DsmCoreInst idp, P_RootLoadRqst pLoadRqst );
93 
94 void DSC_LoadRsqtFinalise( P_DsmCoreInst idp, P_RootLoadRqst pLoadRqst );
95 
96 void DSC_LoadRsqtNotify( P_DsmCoreInst idp, P_RootLoadRqst pLoadRqst, E_LRStatus status );
97 
98 void DSC_LoadRsqtFinalNotify( P_DsmCoreInst idp, P_RootLoadRqst pLoadRqst, E_LRStatus status );
99 
104 void DSC_LoadRsqtAbort( P_DsmCoreInst idp, P_RootLoadRqst pLoadRqst );
105 
106 E_SFPriority DSC_LoadRsqtPriority( P_RootLoadRqst pLoadRqst );
107 
108 
109 
110 /*----------------------------------------------------------------------------*/
111 
112 #ifdef __cplusplus
113 }
114 #endif
115 #endif /* _LOADRQST_H_ */
116 
General include file for clDsm library internal definitions.
void DSC_LoadRsqtAbort(P_DsmCoreInst idp, P_RootLoadRqst pLoadRqst)
Force abort (on error) any type of load request Finalise the load request (notify client) and destroy...
Definition: loadRqst.c:157