DSMCC  17.9.0
 All Data Structures Files Functions Typedefs
rootCarousel.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  *******************************************************************************/
25 #ifndef _ROOTCAROUSEL_H_
26 #define _ROOTCAROUSEL_H_
27 
28 /*-------------------------------- Includes --------------------------------*/
29 #include "clDsmSystem.h"
30 
31 #include "linkList.h"
32 #include "sectionFilter.h"
33 #include "dataCarousel.h"
34 #include "loadRqst.h"
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 /*----------------------------- Exported Macros ----------------------------*/
41 
42 #define OC_MAGIC 0xC2A5
43 #define UC_MAGIC 0xC550
44 
45 #define RC_VALID(p) (memValidate(p) && (p->magic == OC_MAGIC || p->magic == UC_MAGIC))
46 
47 /*------------------------------ Exported Types ----------------------------*/
48 
49 typedef enum
50 {
51  RCS_INITIAL,
52  RCS_PENDING_BOOTINFO, /* -- waiting on SI Query for boot info */
53  RCS_BOOTING, /* -- DSI requested */
54  RCS_BOOTED, /* -- DSI (SRG info) acquired, SRG requested */
55  RCS_LOADING, /* -- SSU loading modules */
56  RCS_LOADED, /* -- SRG loaded */
57  RCS_LOAD_FAILED /* -- failed to boot or load */
58 } E_RcStatus;
59 
60 
61 typedef struct s_RootCarousel
62 {
63  S_LLObject llData[NUM_LISTS_ROOT_CAROUSEL];
64 
65  U16BIT magic;
66  U16BIT pid;
67 
68  U32BIT dsiTransactionId;
69  U32BIT rcid; /* Carousel ID, or OUI (Organization Unique Identifier) */
70 
71  U16BIT serviceId;
72  U16BIT dsiAssocTag;
73  P_SecFilterInfo pDsiSf;
74 
75  E_RcStatus status;
76  P_SiQuery pPendingSiQueryRef; /* -- Only used initially */
77  P_CarouselInfo pCrslInfo;
78  P_RootLoadRqst pLoadRqst;
79 
80  P_LLControl llcDataCarousels;
81  P_LLControl llcDiiAcquires;
83 
84 
85 /*------------------------------ Exported Data -----------------------------*/
86 
87 
88 /*--------------------------- Exported Prototypes --------------------------*/
89 
90 E_DscError DSC_RootCrslInitialise( P_DsmCoreInst idp, P_RootCarousel pRC, U16BIT magic, U16BIT serviceId, U32BIT cid );
91 
92 void DSC_RootCrslFinalise( P_DsmCoreInst idp, P_RootCarousel pRC );
93 
94 void DSC_RootCrslDestroy( P_DsmCoreInst idp, P_RootCarousel pRC );
95 
96 E_DscError DSC_RootCrslDiiAcquireStart( P_DsmCoreInst idp,
97  P_RootCarousel pRC, P_DataCarousel pDC, E_SFPriority sfPriority );
98 
99 void DSC_RootCrslDiiAcquireStop( P_DsmCoreInst idp, P_DataCarousel pDC );
100 
101 void DSC_RootCrslAbortLoadRequest(P_DsmCoreInst idp, P_RootCarousel pRC );
102 
107  P_CarouselInfo pCarouselInfo );
108 
113 
122  U32BIT moduleRef );
123 
127 P_RootCarousel DSC_RootCrslListFindById( P_LLControl plcCarousels, U16BIT serviceId, U32BIT couId );
128 
129 U16BIT DSC_RootCrslGetServiceId( P_RootCarousel pRC );
130 U16BIT DSC_RootCrslGetPid( P_RootCarousel pRC );
131 
132 P_DataCarousel DSC_RootCrslFirstDataCarousel( P_RootCarousel pRC );
133 
134 void DSC_RootCrslAddDataCarousel( P_RootCarousel pRC, P_DataCarousel pDC );
135 
136 void DSC_RootCrslUnload( P_DsmCoreInst idp, P_RootCarousel pRC );
137 
138 U16BIT DSC_RootCrslMagic( P_RootCarousel pRC );
139 
140 E_DscError DSC_RootCrslSrgObjectReset( P_RootCarousel pRC );
141 
142 BOOLEAN DSC_RootCrslCheckCompatibility( P_RootCarousel pRC, U8BIT *pCompatDesc, U16BIT compatLen );
143 
144 void DSC_RootCrslLoadRequestFail( P_DsmCoreInst idp, P_RootCarousel pRC );
145 
146 /*----------------------------------------------------------------------------*/
147 
148 #ifdef __cplusplus
149 }
150 #endif
151 #endif /* _ROOTCAROUSEL_H_ */
152 
General include file for clDsm library internal definitions.
Header defining.
Header to the sectionFilter module.