source: svn/newcon3bcm2_21bu/dst/dmw/src/psi/DMW_PsiSdds.h @ 22

Last change on this file since 22 was 22, checked in by phkim, 11 years ago
  1. phkim
  2. newcon3sk 를 kctv 로 브랜치 함
  • Property svn:executable set to *
File size: 5.5 KB
Line 
1/**
2        @file
3                DMW_PsiSdds.h
4
5        @brief
6
7
8        Copyright 2010 Digital STREAM Technology, Inc.
9        All Rights Reserved
10*/
11
12
13#ifndef __DMW_PSI_SDDS_H__
14#define __DMW_PSI_SDDS_H__
15
16
17#include "DHL_Types.h"
18#include "DLIB_SDDS.h" // Çì´õ ÆÄÀÏ ¾È¿¡¼­ DLIB ±¸Á¶Ã¼¸¦ Á÷Á¢ »ç¿ëÇÔ.
19
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25
26
27#if COMMENT
28____Overview____(){}
29#endif
30
31/**
32        @file DHL_MMM.h
33       
34        À̰÷¿¡ ÀÌ ¸ðµâ¿¡ ´ëÇØ ¼³¸íÀÌ ÇÊ¿äÇÑ °¢Á¾ ³»¿ë ±â¼ú..
35       
36        module overview
37                -
38                -
39
40        APIs
41       
42        implementations
43       
44        dependencies           
45       
46
47*/
48
49
50#if COMMENT
51____Config____(){}
52#endif
53
54/*
55        ÀÌ ºÎºÐÀº º°µµÀÇ DHL_XXX_Config configuration file À»
56        Ȱ¿ëÇÏ´Â °ÍÀÌ ÁÁÀ» °Í °°À½.
57*/
58
59
60
61/*
62        Ç÷§Æû¿¡ µû¶ó ´Þ¶óÁü.
63        EMMAÀÇ °æ¿ì NOR flash°¡ 4MB ¹Û¿¡ ¾ÈµÈ´Ù. image Å©±â°¡ 4M¸¦ ³ÑÁö ¾Ê´Â´Ù.
64*/
65#define SDDS_MAX_MODULE_SIZE (0x400000)
66
67
68
69#if COMMENT
70____Types____(){}
71#endif
72
73
74/*
75        client should fill this values, and pass back to MW.
76*/
77typedef struct
78{
79        UINT32 oui;     // IEEE OUI data
80       
81        UINT16 model;   // product model. oui specific. 0xFFFF means any model.
82        UINT16 version; // product version. oui specific. 0xFFFF means any version.
83
84} S_SDDS_CBPARAM_GET_OUI;
85
86
87typedef struct
88{
89        sddsCompatDesc_t *desc; // [in] üũÇϰíÀÚ ÇÏ´Â compat. µð½ºÅ©¸³ÅÍ.
90        BOOL isOk; // [out] ÀÌ descriptor°¡ ¸ÂÀ¸¸é TRUE·Î ¼³Á¤.
91       
92} S_SDDS_CBPARAM_CHECK_DESC;
93
94
95
96typedef struct
97{
98        //int index; // module index. from 0..
99       
100        UINT16 id; // module id.
101        UINT32 size; 
102                // ¸ðµâ ÀüüÀÇ Å©±â. ÀÌ Å©±â¿¡ ÇØ´çµÇ´Â ¹öÆÛ¸¦ ÇÒ´çÇØ µÎ¾î¾ß ÇÑ´Ù.
103
104        UINT8 *name;
105        UINT8 *version;
106       
107        UINT8   type; // ModuleType_BootLoader or ModuleType_Application
108
109        // ÀÌ Æß¿þ¾î°¡ µ¿ÀÛ °¡´ÉÇÑ Çϵå¿þ¾î ¹öÀü (¸®ºñÀü) ¸®½ºÆ®.
110        UINT8   numSupportedHwVersions;
111        UINT8   *supportedHwVersions;
112
113        UINT32  crc32;
114        // ÀÌ Æß¿þ¾î ÆÄÀÏÀÇ crc32.
115        // ´Ü¼øÈ÷ À̸§/¹öÀü ¸¸À¸·Î difference ¿©ºÎ¸¦ ½Å·ÚÇϱâ Èûµé´Ù¸é
116        // flash¿¡ ±â·ÏµÈ firmware Àüü¿¡ ´ëÇÑ crc32¸¦ ºñ±³ÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
117       
118        // À§ ¸ðµç »çÇ×ÀÌ Á¶°Ç¿¡ ¸Â´Â´Ù¸é ¾Æ·¡ isOk¸¦ True·Î ¼³Á¤ÇØÁà¾ß ÇÑ´Ù.
119       
120        BOOL  isOk;  // [out]
121       
122} S_SDDS_CBPARAM_CHECK_FILE;
123
124
125
126typedef struct
127{
128        UINT32 total_blocks;
129       
130} S_SDDS_CBPARAM_DOWNLOAD_START;
131
132
133
134typedef struct
135{
136        sddsDdbPtr_t ddb;
137       
138        UINT32 idxblk;
139        UINT32 offset;
140
141        UINT32 received_blocks;
142        UINT32 total_blocks;
143
144} S_SDDS_CBPARAM_BLOCK_RECEIVED;
145
146
147
148typedef enum
149{
150        eSDDS_CB_TYPE_GetOUI,
151                // ¾ÆÁÖ °£´ÜÇÏ°Ô compat descriptor¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Â ¹æ¹ý.
152                // Á¦Á¶»çÀÇ OUI µ¥ÀÌÅ͸¸ ¸®ÅÏÇØ ÁÖ¸é MW°¡ ¾Ë¾Æ¼­ ¼±ÅÃÇÑ´Ù.
153                // param: S_SDDS_CBPARAM_GET_OUI *
154
155        eSDDS_CB_TYPE_CheckCompatDesc,
156                // Á» ´õ ¼¼¹ÐÇÏ°Ô compat desc. ¼±ÅÃÇÏ´Â ¹æ¹ý.
157                // compat desc Æ÷ÀÎÅÍ ÀÚü¸¦ ¹Þ¾Æ¼­ ³»¿ëÀ» È®ÀÎ ÇØ º»ÈÄ yes/no ´äÇØÁØ´Ù.
158                // param: S_SDDS_CBPARAM_CHECK_DESC *
159
160        // MW¿¡¼­ÀÇ ¿ì¼± ¼øÀ§:
161        //      eSDDS_CB_TYPE_GetOUI -> eSDDS_CB_TYPE_CheckCompatDesc
162        //
163        // ¸ÕÀú GetOUI¸¦ ¾ò¾îº¸°í, OUI¸¦ ¾òÀ¸¸é ÀÌ °ªÀ» »ç¿ëÇÑ´Ù.
164        // µû¶ó¼­ CheckCompatDesc ÄݹéÀ» »ç¿ëÇÏ·Á¸é GetOUI´Â ±¸ÇöÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.
165
166        eSDDS_CB_TYPE_NotifySchedules,
167                //
168                // param: sddsScheduleDesc_t *
169
170
171        eSDDS_CB_TYPE_CheckModuleInfo,
172                //
173                // param: S_SDDS_CBPARAM_CHECK_FILE *
174
175        eSDDS_CB_TYPE_DownloadNotRequired,
176                // ¸ðµâ üũ °á°ú, ´Ù¿î·Îµå°¡ ÇÊ¿äÇÏÁö ¾Ê°Ô µÈ °æ¿ì¿¡ È£ÃâµÈ´Ù.
177                // ÀÌ°Ô È£Ã⠵Ǹé dsi/dii°¡ º¯°æµÇ±â Àü±îÁö´Â
178                // ´õ ÀÌ»óÀÇ sdds ÁøÇàÀº ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù.
179                //
180                // param: none
181
182        eSDDS_CB_TYPE_DownloadStarted,
183                // ¸ðµç Á¡°Ë °úÁ¤ÀÌ ³¡³­ ÈÄ¿¡ ´Ù¿î·Îµå ÇÒ ¸ðµâÀÌ ÀÖ´Â °æ¿ì È£ÃâµÈ´Ù.
184                // ´Ù¿î·Îµå ÇÒ ¸ðµâÀÌ Çϳªµµ ¾ø´Â °æ¿ì¿¡´Â È£ÃâµÇÁö ¾Ê´Â´Ù.
185                //
186                // param: S_SDDS_CBPARAM_DOWNLOAD_START
187
188        eSDDS_CB_TYPE_BlockReceived,
189                // ddb blockÀÌ ¹Þ¾ÆÁú ¶§ ¸¶´Ù È£ÃâµÈ´Ù.
190                // application¿¡¼­´Â ddb block ³»ÀÇ ¹öÆÛ ³»¿ëÀ» ´Ù¸¥ °÷À¸·Î memcpy ÇØ µÎ¾î¾ß ÇÑ´Ù.
191                // ƯÁ¤ block ¿¡ ´ëÇØ¼­ ´Ü 1ȸ¸¸ callback µÈ´Ù. Áï Áߺ¹ È£ÃâµÇÁö´Â ¾Ê´Â´Ù.
192                //
193                // param: S_SDDS_CBPARAM_BLOCK_RECEIVED *
194
195        eSDDS_CB_TYPE_DownloadCompleted,
196                // °¢ ¸ðµâÀÇ ´Ù¿î·Îµå°¡ ¿Ï·á µÇ¸é È£ÃâµÈ´Ù.
197                // ¸ðµç ¸ðµâÀÌ ´Ù ´Ù¿î·Îµå°¡ ¿Ï·á µÈ ÈÄ¿¡µµ È£ÃâµÈ´Ù. (module id: -1)
198                //
199                // param: module id or (UINT32)-1 if all completed.
200
201        eSDDS_CB_TYPE_DownloadStopped,
202                // ´Ù¿î·Îµå°¡ ÀϽà ÁßÁöµÈ °æ¿ì¿¡ È£ÃâµÈ´Ù.
203                // eSDDS_CB_TYPE_DownloadStarted °¡ ¾ÆÁ÷ ºÒ¸®±â Àü¿¡µµ ÀÌ ÄݹéÀº È£ÃâµÉ ¼ö ÀÖ´Ù.
204                //
205                // param: none
206
207        eSDDS_CB_TYPE_ResetDownload,
208                //
209                // param: none
210
211        eSDDS_CB_TYPE_UserAction,
212                //
213                // param: userparam
214       
215       
216} E_SDDS_CB_TYPE;
217
218typedef void (*F_SDDS_CALLBACK)(E_SDDS_CB_TYPE cbtype, void *param);
219
220
221
222#if COMMENT
223____Defines____(){}
224#endif
225
226
227
228
229
230
231#if COMMENT
232____API____(){}
233#endif
234
235
236/*
237        SDDS ¸ðµâÀ» ÃʱâÈ­ ÇÑ´Ù.
238
239        DMW ¸ðµâ ÃʱâÈ­ ÇÒ ¶§ ºÒ·ÁÁö¸é µÈ´Ù.
240
241        dependency:
242                ŽºÅ© µîÀ» DHL_TIMER ¸ðµâÀ» »ç¿ëÇÏ¹Ç·Î ÇØ´ç ºÎºÐÀÌ ¸ÕÀú ÃʱâÈ­ µÇ¾î ÀÖ¾î¾ß ÇÔ.
243*/
244void DMW_SDDS_Init(void);
245
246/*
247        SDDS ¸ðµâ¿¡ »ç¿ëµÉ user callbackÀ» µî·ÏÇÑ´Ù.
248        ¾Æ¹« ¶§³ª ºÒ·Áµµ µÊ.
249        º¸ÅëÀº Init ÈÄ¿¡ Start Àü¿¡ ºÒ·¯ÁÖ¸é ÁÁ´Ù.
250*/
251void DMW_SDDS_RegisterCallback(F_SDDS_CALLBACK cb);
252
253
254/*
255        SDDS ´Ù¿î·Î´õ µ¿ÀÛÀ» °³½ÃÇÑ´Ù.
256
257        ¸¸¾à ÀÌÀü¿¡ µ¿ÀÛ Çß´Ù°¡ Stop µÈ »óŶó¸é, ´Ù½Ã Resume ÇÑ´Ù.
258
259*/
260void DMW_SDDS_Start(int pid);
261
262/*
263        SDDS ´Ù¿î·Î´õ µ¿ÀÛÀ» ÀϽà ÁßÁöÇÑ´Ù.
264        ¸ðµç psi monitor´Â ÁߴܵȴÙ.
265
266        ÇÏÁö¸¸ ÇöÀç ¼ö½ÅµÇ¾î ÀÖ´Â µ¥ÀÌÅÍ ¹× ÀÚ·á´Â º¸Á¸µÈ´Ù.
267        ³ªÁß¿¡ ´Ù½Ã Start API¸¦ È£ÃâÇÏ¿© resume °¡´ÉÇÏ´Ù.
268*/
269void DMW_SDDS_Stop(void);
270
271
272/*
273
274*/
275void DMW_SDDS_Reset(void);
276
277
278/*
279
280*/
281void DMW_SDDS_PrintStatus(int level);
282
283
284/*
285
286*/
287void DMW_SDDS_UserAction(UINT32 userparam);
288
289
290
291#ifdef __cplusplus
292} /* extern "C" */
293#endif
294
295
296
297#endif  /* __DMW_PSI_SDDS_H__ */
298
Note: See TracBrowser for help on using the repository browser.