xref: /utopia/UTPA2-700.0.x/modules/dmx/api/dmx/apiDMX_private.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2013-2015 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 
95 ////////////////////////////////////////////////////////////////////////////////////////////////////
96 //
97 //  File name: apiDMX_private.h
98 //  Description: Demux  (DMX) API private header file
99 //
100 ////////////////////////////////////////////////////////////////////////////////////////////////////
101 
102 #ifndef _DMX_PRIV_H_
103 #define _DMX_PRIV_H_
104 
105 #include "apiDMX.h"
106 #include "MsTypes.h"
107 
108 #ifdef __cplusplus
109 extern "C"
110 {
111 #endif
112 
113 // internal structure
114 #define DMX_MAX_SIGFLAG_NUM             16UL
115 #define DMX_MAX_PVRSIGFLAG_NUM          10UL
116 typedef struct DLL_PACKED
117 {
118     MS_U32                      u32Eng;
119     MS_U32                      u32EvtWaitOpt;
120     MS_U32                      u32DmxEvt;
121     MS_U32                      u32TspEvt;
122 
123     MS_U32                      u32PvrBufFullFlag[DMX_MAX_PVRSIGFLAG_NUM];
124 
125     MS_U32                      u32SecRdyFlag[DMX_MAX_SIGFLAG_NUM];
126     MS_U32                      u32SecOvfFlag[DMX_MAX_SIGFLAG_NUM];
127     MS_U32                      u32SecCrcErrFlag[DMX_MAX_SIGFLAG_NUM];
128 
129     MS_S32                      s32KerModeTspEvtId; //For kernel mode, every user callback process must has itself eventid in multiple process support
130     MS_U32                      u32TblIndex;
131 }DMX_TSP_IOSIGNAL;
132 
133 typedef struct DLL_PACKED
134 {
135     MS_U32                      u32Event;
136     MS_U64                      u64DmainInt;
137     MS_U64                      u64DmaoutInt[4];
138 }DMX_TSIO_IOSIGNAL;
139 
140 typedef struct DLL_PACKED
141 {
142     MS_U32                  u32InfoSetSize; // sizeof(DMX_InfoSet)
143     MS_BOOL                 bEx;
144     DMX_FILTER_TYPE         DmxFltType;
145     union {
146         DMX_Sect_info_Ex        SectInfoEx;
147         DMX_Sect_info           SectInfo;
148     } DmxInfo;
149 
150 }DMX_InfoSet;
151 
152 // General API
153 typedef DMX_FILTER_STATUS (*IOCTL_DMX_INIT_LIBRES)(void*);
154 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_FW)(MS_PHY, MS_U32);
155 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_FW_DATAADDR)(MS_PHY, MS_U32);
156 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_HK)(MS_BOOL);
157 typedef DMX_FILTER_STATUS (*IOCTL_DMX_INIT)(void);
158 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSPINIT)(DMX_TSPParam*);
159 typedef MS_U32            (*IOCTL_DMX_TSPINIT_GETCONFIG)(DMX_TSPParam*);
160 typedef DMX_FILTER_STATUS (*IOCTL_DMX_EXIT)(void);
161 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FORCE_EXIT)(void);
162 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SUSPEND)(void);
163 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RESUME)(MS_PHY, MS_U32);
164 typedef DMX_FILTER_STATUS (*IOCTL_DMX_CHK_ALIVE)(void);
165 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RESET)(void);
166 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RELEASE_HWSEMP)(void);
167 typedef void              (*IOCTL_DMX_WPROTECT_EN)(MS_BOOL, MS_PHY*, MS_PHY*);
168 typedef void              (*IOCTL_DMX_ORZWPROTECT_EN)(MS_BOOL, MS_PHY, MS_PHY);
169 typedef DMX_FILTER_STATUS (*IOCTL_DMX_READ_DROP_COUNT)(MS_U16*, MS_U16*);
170 typedef MS_U32            (*IOCTL_DMX_SET_POWER_STATE)(EN_POWER_MODE, MS_PHY, MS_U32);
171 
172 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_OWNER)(MS_U32, MS_U32, MS_BOOL);
173 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_CAP)(DMX_QUERY_TYPE, void*);
174 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_CAP_EX)(char*, MS_S32, void*, MS_S32*);
175 
176 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PARL_INVERT)(DMX_FLOW, MS_BOOL);
177 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_BURSTLEN)(DMX_BURSTTYPE);
178 
179 //Flow Control
180 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_FLOW)(DMX_FLOW, DMX_FLOW_INPUT, MS_BOOL, MS_BOOL, MS_BOOL);
181 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_PVRFLOW)(DMX_PVR_ENG, DMX_TSIF, MS_BOOL);
182 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_FLOWINPUT_STS)(DMX_FLOW, DMX_FLOW_INPUT*, MS_BOOL*, MS_BOOL*, MS_BOOL*);
183 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FLOW_ENABLE)(DMX_FLOW, MS_BOOL);
184 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSOUTPAD_CFG)(DMX_FLOW_OUTPUT_PAD, DMX_FLOW_INPUT, MS_BOOL, MS_U32, MS_U32*);
185 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSS2P_OUTPHASE)(MS_U16, MS_BOOL, MS_U32);
186 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FLOW_DSCMBENG)(DMX_TSIF, MS_U32*, MS_BOOL);
187 typedef DMX_FILTER_STATUS (*IOCTL_DMX_DROP_SCMB_PKT)(DMX_FILTER_TYPE, MS_BOOL);
188 
189 //STC API
190 typedef DMX_FILTER_STATUS (*IOCTL_DMX_STC64_MODE_EN)(MS_BOOL);
191 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_PCR_ENG)(MS_U8, MS_U32*, MS_U32*);
192 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_STC_ENG)(MS_U8, MS_U32*, MS_U32*);
193 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_STC_ENG)(MS_U8, MS_U32, MS_U32);
194 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_STC_UPDATECTL)(MS_U8, eStcUpdateCtrlMode);
195 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_STC_OFFSET)(MS_U32, MS_U32, MS_BOOL);
196 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_STC_CLK_ADJUST)(MS_U32, MS_BOOL, MS_U32);
197 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEL_STC)(DMX_FILTER_TYPE, MS_U32);
198 
199 
200 //Filter API
201 typedef DMX_FILTER_STATUS (*IOCTL_DMX_OPEN)(DMX_FILTER_TYPE, MS_U32*);
202 //new API
203 typedef DMX_FILTER_STATUS (*IOCTL_DMX_OPEN_Ex)(DMX_FILTER_TYPE , MS_U32*);
204 typedef DMX_FILTER_STATUS (*IOCTL_DMX_CLOSE)(MS_U32);
205 typedef DMX_FILTER_STATUS (*IOCTL_DMX_START)(MS_U32);
206 typedef DMX_FILTER_STATUS (*IOCTL_DMX_STOP)(MS_U32);
207 typedef DMX_FILTER_STATUS (*IOCTL_DMX_INFO)(MS_U32, DMX_Flt_info*, DMX_FILTER_TYPE*, MS_BOOL);
208 typedef DMX_FILTER_STATUS (*IOCTL_DMX_INFO_Ex)(MS_U32, DMX_Flt_info_Ex*);
209 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PID)(MS_U32, MS_U16*, MS_BOOL);
210 typedef DMX_FILTER_STATUS (*IOCTL_DMX_IS_START)(MS_U32, MS_BOOL*);
211 typedef DMX_FILTER_STATUS (*IOCTL_DMX_COPY_DATA)(MS_U32, MS_U8*, MS_U32, MS_U32*, MS_U32*, DMX_CheckCb);
212 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PROC)(MS_U32, DMX_EVENT*);
213 typedef DMX_FILTER_STATUS (*IOCTL_DMX_CHANGE_FLTSRC)(MS_U32, DMX_FILTER_TYPE);
214 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SWITCH_LIVE_FLTSRC)(DMX_FILTER_TYPE);
215 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_OWNER)(MS_U32, MS_BOOL*);
216 
217 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_FLTSCMBSTS)(DMX_FILTER_TYPE, MS_U32, MS_U32, MS_U32*);
218 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_PESSCMBSTS)(MS_U32, MS_U8*);
219 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_TSSCMBSTS)(MS_U32, MS_U8*);
220 
221 // Section API
222 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEC_RESET)(MS_U32);
223 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEC_SET_READADDR)(MS_U32, MS_PHY);
224 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEC_GET_READADDR)(MS_U32, MS_PHY*);
225 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEC_GET_WRITEADDR)(MS_U32, MS_PHY*);
226 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEC_GET_STARTADDR)(MS_U32, MS_PHY*);
227 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEC_GET_ENDADDR)(MS_U32, MS_PHY*);
228 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SEC_SET_PATTERN)(MS_U32, MS_U8*, MS_U8*, MS_U8*, MS_U32);
229 
230 //TTX API
231 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_TTX_WRITE)(MS_U32, MS_PHY*);
232 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_ACCESS)(MS_U32);
233 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RELEASE_ACCESS)(void);
234 
235 // AVFIFO control
236 typedef DMX_FILTER_STATUS (*IOCTL_DMX_AVFIFO_RESET)(DMX_FILTER_TYPE, MS_BOOL);
237 typedef DMX_FILTER_STATUS (*IOCTL_DMX_AVFIFO_STATUS)(DMX_FILTER_TYPE, DMX_FIFO_STATUS*);
238 typedef DMX_FILTER_STATUS (*IOCTL_DMX_REMOVE_DUPAVFPKT)(MS_BOOL);
239 typedef DMX_FILTER_STATUS (*IOCTL_DMX_REMOVE_DUPAVFIFOPKT)(DMX_FILTER_TYPE, MS_BOOL);
240 typedef DMX_FILTER_STATUS (*IOCTL_DMX_AUBD_MODE_EN)(MS_BOOL);
241 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_PKTMODE)(DMX_FLOW, DMX_PacketMode);
242 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_MERSTR_SYNC)(MS_U32, MS_U8);
243 
244 //PVR Playback API (Old)
245 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_SET_PLAYSTAMP)(DMX_FILEIN_PATH, MS_U32);
246 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_GET_PLAYSTAMP)(DMX_FILEIN_PATH, MS_U32*);
247 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_TIMESTAMP_ENABLE)(DMX_FILEIN_PATH);
248 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_TIMESTAMP_DISABLE)(DMX_FILEIN_PATH);
249 
250 // PVR Engine API  (New)
251 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_OPEN)(DMX_PVR_ENG, DMX_Pvr_info*);
252 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_CLOSE)(DMX_PVR_ENG);
253 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_PAUSE)(DMX_PVR_ENG, MS_BOOL);
254 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_PID_OPEN)(DMX_PVR_ENG, MS_U32, MS_U32*);
255 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_PID_CLOSE)(DMX_PVR_ENG, MS_U32);
256 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_START)(DMX_PVR_ENG, MS_BOOL);
257 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_STOP)(DMX_PVR_ENG);
258 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_GET_WRITEADDR)(DMX_PVR_ENG, MS_PHY*);
259 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_SET_PKTMODE)(DMX_PVR_ENG, MS_BOOL);
260 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_SET_RECORDSTAMP)(DMX_PVR_ENG, MS_U32);
261 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_GET_RECORDSTAMP)(DMX_PVR_ENG, MS_U32*);
262 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_MOBF_EN)(MS_U8 , MS_BOOL, MS_U32, MS_U32);
263 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_SET_RECORDSTAMP_CLK)(DMX_PVR_ENG, DMX_TimeStamp_Clk);
264 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_CBSIZE)(DMX_PVR_ENG, MS_U32*, MS_BOOL);
265 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_SET_CAMODE)(DMX_PVR_ENG, DMX_CA_PVRMODE, MS_BOOL);
266 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_ENG_IS_START)(DMX_PVR_ENG, MS_BOOL*);
267 
268 //PVR Playback API (New)
269 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_ENG_SET_PLAYSTAMP_CLK)(MS_U8, DMX_TimeStamp_Clk);
270 
271 //PVR CA Engine API (New)
272 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVRCA_ENG_PID_OPEN)(DMX_PVR_ENG, MS_U32, MS_U32*, MS_U8);
273 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVRCA_ENG_PID_CLOSE)(DMX_PVR_ENG, MS_U32);
274 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVRCA_ENG_START)(DMX_PVR_ENG, MS_BOOL);
275 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVRCA_ENG_STOP)(DMX_PVR_ENG);
276 
277 // File-in API (Old)
278 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_START)(DMX_FILEIN_PATH, DMX_FILEIN_DST, MS_PHY, MS_U32);
279 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_STOP)(DMX_FILEIN_PATH);
280 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_INFO)(DMX_Filein_info*);
281 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_ENG_INFO)(DMX_FILEIN_PATH, DMX_Filein_info*);
282 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_PAUSE)(DMX_FILEIN_PATH);
283 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_RESUME)(DMX_FILEIN_PATH);
284 typedef MS_BOOL           (*IOCTL_DMX_FILE_IS_IDLE)(DMX_FILEIN_PATH);
285 typedef MS_BOOL           (*IOCTL_DMX_FILE_IS_BUSY)(DMX_FILEIN_PATH);
286 typedef MS_BOOL           (*IOCTL_DMX_FILE_IS_PAUSE)(DMX_FILEIN_PATH);
287 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_CMDQ_RESET)(DMX_FILEIN_PATH);
288 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_CMDQ_GET_EMPTY_NUM)(DMX_FILEIN_PATH, MS_U32*);
289 typedef void              (*IOCTL_DMX_FILE_BYPASS_FILE_TIMESTAMP)(DMX_FILEIN_PATH, MS_BOOL);
290 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_CMDQ_GET_FIFO_WLEVEL)(DMX_FILEIN_PATH, MS_U8*);
291 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_GET_FILE_TIMESTAMP)(DMX_FILEIN_PATH, MS_U32*);
292 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_GET_READADDR)(DMX_FILEIN_PATH, MS_PHY*);
293 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_MOBF_EN)(DMX_FILEIN_PATH, MS_BOOL, MS_U32);
294 
295 //MMFI & MINITSP API
296 typedef MS_BOOL           (*IOCTL_DMX_MMFI_IS_IDLE)(DMX_MMFI_PATH);
297 typedef MS_BOOL           (*IOCTL_DMX_MMFI_IS_BUSY)(DMX_MMFI_PATH);
298 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_CMDQ_RESET)(DMX_MMFI_PATH);
299 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_CMDQ_Get_EMPTY_NUM)(DMX_MMFI_PATH, MS_U32*);
300 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_START)(DMX_MMFI_DST, MS_PHY, MS_U32);
301 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_GET_FILE_TIMESTAMP)(DMX_MMFI_PATH, MS_U32*);
302 
303 //MMFI  (MMFI Only) API
304 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_PID_OPEN)(DMX_MMFI_FLTTYPE, MS_U16, MS_U8*);
305 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_PID_CLOSE)(MS_U8);
306 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_CMDQ_GET_FIFOLEVEL)(DMX_MMFI_PATH, MS_U8*);
307 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_SET_PLAYTIMESTAMP)(DMX_MMFI_PATH, MS_U32);
308 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_GET_PLAYTIMESTAMP)(DMX_MMFI_PATH, MS_U32*);
309 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_SET_TIMESTAMPCLK)(DMX_MMFI_PATH, DMX_TimeStamp_Clk);
310 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_INFO)(DMX_MMFI_PATH, DMX_Filein_info*);
311 typedef void              (*IOCTL_DMX_MMFI_BYPASSS_STAMP)(DMX_MMFI_PATH, MS_BOOL);
312 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_TIMESTAMP_EN)(DMX_MMFI_PATH);
313 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_TIMESTAMP_DISABLE)(DMX_MMFI_PATH);
314 
315 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_REMOVE_DUPAVPKT)(MS_BOOL);
316 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MMFI_MOBF_EN)(DMX_MMFI_PATH, MS_BOOL, MS_U32);
317 
318 //TSO API
319 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_INFO)(MS_U8, DMX_Filein_info*);
320 typedef MS_BOOL           (*IOCTL_DMX_TSO_FI_ISIDLE)(MS_U8);
321 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_CMDQ_GET_EMPTYNUM)(MS_U8, MS_U32*);
322 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_CMDQ_RESET)(MS_U8);
323 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_START)(MS_U8, MS_PHY, MS_U32);
324 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_STOP)(MS_U8);
325 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_SET_PLAYTIMESTAMP)(MS_U8, MS_U32);
326 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_GET_PLAYSTAMP)(MS_U8, MS_U32*);
327 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_GETSTAMP)(MS_U8, MS_U32*);
328 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_BYPASS_STAMP)(MS_U8, MS_BOOL);
329 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_STAMP_EN)(MS_U8);
330 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FI_STAMP_DISABLE)(MS_U8);
331 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_SET_OUTCLK)(MS_U8, DMX_TSO_OutClk, DMX_TSO_OutClkSrc, MS_U16, MS_BOOL);
332 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_OUTPUT_EN)(MS_U8, MS_BOOL);
333 
334 //TSO2 API
335 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_LOCSTRID)(MS_U8, DMX_TSIF, MS_U8*, MS_BOOL);
336 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_SVQBUF_SET)(MS_U8, MS_PHY, MS_U32);
337 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FLOW_INPUTCFG)(DMX_TSO_InputCfg*);
338 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_FLOW_OUTPUTCFG)(DMX_TSO_OutputCfg*);
339 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_CONFIGURE)(DMX_TSO_Cfg*);
340 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_PID_OPEN)(MS_U8, DMX_TSIF, MS_U16, MS_U16*);
341 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_PID_CLOSE)(MS_U8, MS_U16);
342 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSO_GET_FILEIN_READADDR)(MS_U8, MS_PHY*);
343 
344 //Debug API
345 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_DBGLEVEL)(DMX_DBGMSG_LEVEL);
346 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_FWVER)(MS_U32*);
347 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_LIBVER)(const MSIF_Version **);
348 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_DISCONCNT)(DMX_DisContiCnt_info*, MS_U32*);
349 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_DROPPKTCNT)(DMX_DropPktCnt_info*, MS_U32*);
350 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_LOCKPKTCNT)(DMX_LockPktCnt_info*, MS_U32*);
351 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_AVPKTCNT)(DMX_AVPktCnt_info*, MS_U32*);
352 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_SECTEI_PKTCNT)(DMX_FILTER_TYPE, MS_U32*);
353 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RESET_SECTEI_PKTCNT)(DMX_FILTER_TYPE);
354 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_SECDISCON_PKTCNT)(MS_U32, MS_U32*);
355 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RESET_SECDISCONT_PKTCNT)(MS_U32);
356 
357 typedef DMX_FILTER_STATUS (*IOCTL_DMX_CMD_RUN)(MS_U32, MS_U32, MS_U32, void*);
358 
359 //FQ
360 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_SET_FLT_RUSH_PASS)(MS_U32, MS_U8);
361 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_INIT)(MS_U32, DMX_FQ_Info*);
362 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_EXIT)(MS_U32);
363 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_RUSH_EN)(MS_U32);
364 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_SKIP_RUSH_DATA)(MS_U32,DMX_FQ_SkipPath);
365 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_CONFIGURE)(DMX_FQ_Cfg*);
366 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_SET_RUSH_ADDR)(MS_U32, MS_PHY);
367 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_READ_GET)(MS_U32, MS_PHY*);
368 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FQ_WRITE_GET)(MS_U32, MS_PHY*);
369 
370 
371 //Merge Stream API
372 typedef DMX_FILTER_STATUS (*IOCTL_DMX_MSTR_SYNCBY)(DMX_TSIF, MS_U8, MS_U8*, MS_BOOL);
373 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_PIPEID)(DMX_PIPEID_GROUP , DMX_GENERAL_ENGID , MS_U32*);
374 
375 //utopia 2K only
376 typedef DMX_FILTER_STATUS (*IOCTL_DMX_WAIT_TSPSIG)(DMX_TSP_IOSIGNAL*);
377 
378 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_INTCNT)(MS_U32*);
379 typedef DMX_FILTER_STATUS (*IOCTL_DMX_DROP_EN)(MS_BOOL);
380 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TEI_RM_ERRPKT)(DMX_TEI_RmPktType, MS_BOOL);
381 typedef DMX_FILTER_STATUS (*IOCTL_DMX_SET_FWDBGPARAM)(MS_PHY, MS_U32, MS_U32);
382 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_MOBF_EN)(MS_BOOL, MS_U32, MS_U32);
383 typedef DMX_FILTER_STATUS (*IOCTL_DMX_GET_DBGPORT_INFO)(MS_U32, MS_U32*);
384 typedef DMX_FILTER_STATUS (*IOCTL_DMX_OPEN_MULTI_FLT)(DMX_FILTER_TYPE, MS_U8*, MS_U8);
385 
386 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_PVR_PID_OPEN)(DMX_PVR_ENG, MS_U32, MS_U8*, MS_U8);
387 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_PVR_PID_CLOSE)(DMX_PVR_ENG, MS_U8);
388 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_PVR_START)(DMX_PVR_ENG, MS_BOOL);
389 typedef DMX_FILTER_STATUS (*IOCTL_DMX_FILE_PVR_STOP)(DMX_PVR_ENG);
390 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_PAUSE)(DMX_PVR_ENG, MS_BOOL);
391 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PVR_PID)(DMX_PVR_ENG, MS_U32 ,MS_U32*, MS_BOOL);
392 
393 // DMX_RES_ALLOC_EN
394 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RES_ALLOCATE)(DMX_RES_TYPE, void*);
395 typedef DMX_FILTER_STATUS (*IOCTL_DMX_RES_FREE)(DMX_RES_TYPE, void*);
396 typedef DMX_FILTER_STATUS (*IOCTL_DMX_PCR_GET_MAP_STC)(MS_U32, MS_U32*);
397 
398 // TSIO API
399 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_SetDMAoutVC)(MS_U16 u16Handle, TSIO_DMAOUT_SET *eSet);
400 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_DMAout_WriteGet)(MS_U16 u16Handle, MS_PHY* pphyWrite);
401 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_SetDestination)(MS_U16 u16Handle, TSIO_SERVICEDEST eDest);
402 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_SetDMAinVC)(MS_U16 u16Handle, TSIO_DMAIN_SET *eSet);
403 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_SetDMAinVC_Start)(MS_U16 u16Handle, MS_U32 u32Pacing);
404 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_SetLocdecKey)(MS_U16 u16Handle, TSIO_LOCKEY_SET *eSet);
405 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_LocdecKeyEnable)(MS_U16 u16Handle, MS_BOOL bEnable);
406 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_PidOpen)(MS_U16 u16Handle, DMX_TSIF eTSOInSrc, MS_U16 u16Pid, MS_U16* pu16DmxId);
407 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_PidClose)(MS_U16 u16Handle, MS_U16 u16DmxId);
408 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_Alloc)(MS_U8 u8Sid, MS_U16 *u16Handle);
409 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Service_Free)(MS_U16 u16Handle);
410 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_RegisterIntCb)(TSIOIntTypeCB efn);
411 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Init)(TSIO_Init_Set *eParm);
412 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Open)(TSIO_CLK eClk);
413 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Cmd)(TSIO_CMD eCmd, MS_U32 u32Value);
414 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Exit)(void);
415 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_Close)(void);
416 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_CC)(TSIO_CC_Set *Parm, TSIO_CC_RESULT* pResult);
417 typedef DMX_FILTER_STATUS (*IOCTL_DMX_TSIO_GetInfo)(TSIO_INFO eInfo, MS_U32 u32Arg, MS_U32 *u32Retinfo);
418 
419 typedef struct _DMX_INSTANT_PRIVATE
420 {
421     IOCTL_DMX_INIT_LIBRES                   fpDMXInitLibRes;
422     IOCTL_DMX_SET_FW                        fpDMXSetFWBuf;
423     IOCTL_DMX_SET_FW_DATAADDR               fpDMXSetFWMiuDataAddr;
424     IOCTL_DMX_SET_HK                        fpDMXSetHK;
425     IOCTL_DMX_INIT                          fpDMXInit;
426     IOCTL_DMX_TSPINIT                       fpDMXTSPInit;
427     IOCTL_DMX_TSPINIT_GETCONFIG             fpDMXTSPInit_GetConfig;
428     IOCTL_DMX_EXIT                          fpDMXExit;
429     IOCTL_DMX_FORCE_EXIT                    fpDMXForceExit;
430     IOCTL_DMX_SUSPEND                       fpDMXSuspend;
431     IOCTL_DMX_RESUME                        fpDMXResume;
432     IOCTL_DMX_CHK_ALIVE                     fpDMXChkFwAlive;
433     IOCTL_DMX_RESET                         fpDMXReset;
434     IOCTL_DMX_RELEASE_HWSEMP                fpDMXReleaseHwSemp;
435     IOCTL_DMX_WPROTECT_EN                   fpDMXWProtectEnable;
436     IOCTL_DMX_ORZWPROTECT_EN                fpDMXOrzWProtectEnable;
437     IOCTL_DMX_READ_DROP_COUNT               fpDMXReadDropCount;
438     IOCTL_DMX_SET_POWER_STATE               fpDMXSetPowerState;
439 
440     IOCTL_DMX_SET_OWNER                     fpDMXSetOwner;
441     IOCTL_DMX_GET_CAP                       fpDMXGetCap;
442     IOCTL_DMX_GET_CAP_EX                    fpDMXGetCapEx;
443     IOCTL_DMX_PARL_INVERT                   fpDMXParlInvert;
444     IOCTL_DMX_SET_BURSTLEN                  fpDMXSetBurstLen;
445 
446     IOCTL_DMX_SET_FLOW                      fpDMXFlowSet;
447     IOCTL_DMX_SET_PVRFLOW                   fpDMXPvrFlowSet;
448     IOCTL_DMX_GET_FLOWINPUT_STS             fpDMXGetFlowInputSts;
449     IOCTL_DMX_FLOW_ENABLE                   fpDMXFlowEnable;
450     IOCTL_DMX_TSOUTPAD_CFG                  fpDMXTsOutpadCfg;
451     IOCTL_DMX_TSS2P_OUTPHASE                fpDMXTsS2POutPhase;
452     IOCTL_DMX_FLOW_DSCMBENG                 fpDMXFlowDscmbEng;
453     IOCTL_DMX_DROP_SCMB_PKT                 fpDMXDropScmbPkt;
454 
455     IOCTL_DMX_STC64_MODE_EN                 fpDMX64bitModeEn;
456     IOCTL_DMX_GET_PCR_ENG                   fpDMXGetPcrEng;
457     IOCTL_DMX_GET_STC_ENG                   fpDMXGetStcEng;
458     IOCTL_DMX_SET_STC_ENG                   fpDMXSetStcEng;
459     IOCTL_DMX_SET_STC_UPDATECTL             fpDMXStcUpdateCtrl;
460     IOCTL_DMX_SET_STC_OFFSET                fpDMXSetStcOffset;
461     IOCTL_DMX_SET_STC_CLK_ADJUST            fpDMXStcClkAdjust;
462     IOCTL_DMX_SEL_STC                       fpDMXStcSel;
463 
464     IOCTL_DMX_OPEN                          fpDMXOpen;
465     //new API
466     IOCTL_DMX_OPEN_Ex                       fpDMXOpenEx;
467     IOCTL_DMX_CLOSE                         fpDMXClose;
468     IOCTL_DMX_START                         fpDMXStart;
469     IOCTL_DMX_STOP                          fpDMXStop;
470     IOCTL_DMX_INFO                          fpDMXInfo;
471     IOCTL_DMX_INFO_Ex                       fpDMXInfoEx;
472     IOCTL_DMX_PID                           fpDMXPid;
473     IOCTL_DMX_IS_START                      fpDMXIsStart;
474     IOCTL_DMX_COPY_DATA                     fpDMXCopyData;
475     IOCTL_DMX_PROC                          fpDMXProc;
476     IOCTL_DMX_CHANGE_FLTSRC                 fpDMXChangeFltSrc;
477     IOCTL_DMX_SWITCH_LIVE_FLTSRC            fpDMXSwitchLiveFltSrc;
478     IOCTL_DMX_GET_OWNER                     fpDMXGetOnwer;
479 
480     IOCTL_DMX_GET_FLTSCMBSTS                fpDMXGetFltScmbSts;
481     IOCTL_DMX_GET_PESSCMBSTS                fpDMXGetPesScmbSts;
482     IOCTL_DMX_GET_TSSCMBSTS                 fpDMXGetTsScmbSts;
483 
484     IOCTL_DMX_SEC_RESET                     fpDMXSecReset;
485     IOCTL_DMX_SEC_SET_READADDR              fpDMXSecSetReadAddr;
486     IOCTL_DMX_SEC_GET_READADDR              fpDMXSecGetReadAddr;
487     IOCTL_DMX_SEC_GET_WRITEADDR             fpDMXSecGetWriteAddr;
488     IOCTL_DMX_SEC_GET_STARTADDR             fpDMXSecGetStartAddr;
489     IOCTL_DMX_SEC_GET_ENDADDR               fpDMXSecGetEndAddr;
490     IOCTL_DMX_SEC_SET_PATTERN               fpDMXSecSetPattern;
491 
492     IOCTL_DMX_GET_TTX_WRITE                 fpDMXGetTTXWrite;
493     IOCTL_DMX_GET_ACCESS                    fpDMXGetAccess;
494     IOCTL_DMX_RELEASE_ACCESS                fpDMXReleaseAccess;
495 
496     IOCTL_DMX_AVFIFO_RESET                  fpDMXAVFifoReset;
497     IOCTL_DMX_AVFIFO_STATUS                 fpDMXAVFifoStatus;
498     IOCTL_DMX_REMOVE_DUPAVFPKT              fpDMXRemoveDupAVPkt;
499     IOCTL_DMX_REMOVE_DUPAVFIFOPKT           fpDMXRemoveDupAVFifoPkt;
500     IOCTL_DMX_AUBD_MODE_EN                  fpDMXAUBDModeEn;
501     IOCTL_DMX_SET_PKTMODE                   fpDMXSetPktMode;
502     IOCTL_DMX_SET_MERSTR_SYNC               fpDMXSetMerStrSyc;
503     IOCTL_DMX_GET_PIPEID                    fpDMXGetPipeId;
504 
505     IOCTL_DMX_FILE_SET_PLAYSTAMP            fpDMXFileSetPlayStamp;
506     IOCTL_DMX_FILE_GET_PLAYSTAMP            fpDMXFileGetPlayStamp;
507     IOCTL_DMX_FILE_TIMESTAMP_ENABLE         fpDMXFileTimestampEnable;
508     IOCTL_DMX_FILE_TIMESTAMP_DISABLE        fpDMXFileTimestampDisable;
509 
510     IOCTL_DMX_PVR_ENG_OPEN                  fpDMXPvrEngOpen;
511     IOCTL_DMX_PVR_ENG_CLOSE                 fpDMXPvrEngClose;
512     IOCTL_DMX_PVR_ENG_PAUSE                 fpDMXPvrEngPause;
513     IOCTL_DMX_PVR_ENG_PID_OPEN              fpDMXPvrEngPidOpen;
514     IOCTL_DMX_PVR_ENG_PID_CLOSE             fpDMXPvrEngPidClose;
515     IOCTL_DMX_PVR_ENG_START                 fpDMXPvrEngStart;
516     IOCTL_DMX_PVR_ENG_STOP                  fpDMXPvrEngStop;
517     IOCTL_DMX_PVR_ENG_GET_WRITEADDR         fpDMXPvrEngGetWriteAddr;
518     IOCTL_DMX_PVR_ENG_SET_PKTMODE           fpDMXPvrEngSetPktMode;
519     IOCTL_DMX_PVR_ENG_SET_RECORDSTAMP       fpDMXPvrEngSetRecordStamp;
520     IOCTL_DMX_PVR_ENG_GET_RECORDSTAMP       fpDMXPvrEngGetRecordStamp;
521     IOCTL_DMX_PVR_ENG_MOBF_EN               fpDMXPvrEngMobfEn;
522     IOCTL_DMX_PVR_ENG_SET_RECORDSTAMP_CLK   fpDMXPvrEngSetRecordStampClk;
523     IOCTL_DMX_PVR_ENG_CBSIZE                fpDMXPvrEngCBSize;
524     IOCTL_DMX_PVR_ENG_SET_CAMODE            fpDMXPvrEngSetCaMode;
525     IOCTL_DMX_PVR_ENG_IS_START              fpDMXPvrIsStart;
526 
527     IOCTL_DMX_FILE_ENG_SET_PLAYSTAMP_CLK    fpDMXFileEngSetPlayStampClk;
528 
529     IOCTL_DMX_PVRCA_ENG_PID_OPEN            fpDMXPvrcaEngPidOpen;
530     IOCTL_DMX_PVRCA_ENG_PID_CLOSE           fpDMXPvrcaEngPidClose;
531     IOCTL_DMX_PVRCA_ENG_START               fpDMXPvrcaEngStart;
532     IOCTL_DMX_PVRCA_ENG_STOP                fpDMXPvrcaEngStop;
533 
534     IOCTL_DMX_FILE_START                    fpDMXFileStart;
535     IOCTL_DMX_FILE_STOP                     fpDMXFileStop;
536     IOCTL_DMX_FILE_INFO                     fpDMXFileInfo;
537     IOCTL_DMX_FILE_ENG_INFO                 fpDMXFileEngInfo;
538     IOCTL_DMX_FILE_PAUSE                    fpDMXFilePause;
539     IOCTL_DMX_FILE_RESUME                   fpDMXFileResume;
540     IOCTL_DMX_FILE_IS_IDLE                  fpDMXFileIsIdle;
541     IOCTL_DMX_FILE_IS_BUSY                  fpDMXFileIsBusy;
542     IOCTL_DMX_FILE_IS_PAUSE                 fpDMXFileIsPause;
543     IOCTL_DMX_FILE_CMDQ_RESET               fpDMXFileCmdQReset;
544     IOCTL_DMX_FILE_CMDQ_GET_EMPTY_NUM       fpDMXFileCmdQGetEmptyNum;
545     IOCTL_DMX_FILE_BYPASS_FILE_TIMESTAMP    fpDMXFileBypassFileTimeStamp;
546     IOCTL_DMX_FILE_CMDQ_GET_FIFO_WLEVEL     fpDMXFileCmdQGetFifoWLevel;
547     IOCTL_DMX_FILE_GET_FILE_TIMESTAMP       fpDMXFileGetFileTimestamp;
548     IOCTL_DMX_FILE_GET_READADDR             fpDMXFileGetReadAddr;
549     IOCTL_DMX_FILE_MOBF_EN                  fpDMXFileMobfEn;
550 
551     IOCTL_DMX_MMFI_IS_IDLE                  fpDMXMMFIIsIdle;
552     IOCTL_DMX_MMFI_IS_BUSY                  fpDMXMMFIIsBusy;
553     IOCTL_DMX_MMFI_CMDQ_RESET               fpDMXMMFICmdQReset;
554     IOCTL_DMX_MMFI_CMDQ_Get_EMPTY_NUM       fpDMXMMFIGetEmptyNum;
555     IOCTL_DMX_MMFI_START                    fpDMXMMFIStart;
556     IOCTL_DMX_MMFI_GET_FILE_TIMESTAMP       fpDMXMMFIGetFileTimestamp;
557 
558     IOCTL_DMX_MMFI_PID_OPEN                 fpDMXMMFIPidOpen;
559     IOCTL_DMX_MMFI_PID_CLOSE                fpDMXMMFIPidClose;
560     IOCTL_DMX_MMFI_CMDQ_GET_FIFOLEVEL       fpDMXMMFIGetFifoLevel;
561     IOCTL_DMX_MMFI_SET_PLAYTIMESTAMP        fpDMXMMFISetPlayTimestamp;
562     IOCTL_DMX_MMFI_GET_PLAYTIMESTAMP        fpDMXMMFIGetPlayTimestamp;
563     IOCTL_DMX_MMFI_SET_TIMESTAMPCLK         fpDMXMMFISetTimestampClk;
564     IOCTL_DMX_MMFI_INFO                     fpDMXMMFIInfo;
565     IOCTL_DMX_MMFI_BYPASSS_STAMP            fpDMXMMFIBypassStamp;
566     IOCTL_DMX_MMFI_REMOVE_DUPAVPKT          fpDMXMMFIRemoveDupAVPkt;
567     IOCTL_DMX_MMFI_MOBF_EN                  fpDMXMMFIMobfEn;
568     IOCTL_DMX_MMFI_TIMESTAMP_EN             fpDMXMMFITimestampEn;
569     IOCTL_DMX_MMFI_TIMESTAMP_DISABLE        fpDMXMMFITimestampDisable;
570 
571     IOCTL_DMX_TSO_FI_INFO                   fpDMXTsoFileInfo;
572     IOCTL_DMX_TSO_FI_ISIDLE                 fpDMXTsoFileIsIdle;
573     IOCTL_DMX_TSO_FI_CMDQ_GET_EMPTYNUM      fpDMXTsoFileGetCmdQEmptyNum;
574     IOCTL_DMX_TSO_FI_CMDQ_RESET             fpDMXTsoFileGetCmdQReset;
575     IOCTL_DMX_TSO_FI_START                  fpDMXTsoFileStart;
576     IOCTL_DMX_TSO_FI_STOP                   fpDMXTsoFileStop;
577     IOCTL_DMX_TSO_FI_SET_PLAYTIMESTAMP      fpDMXTsoFileSetPlayStamp;
578     IOCTL_DMX_TSO_FI_GET_PLAYSTAMP          fpDMXTsoFileGetPlayStamp;
579     IOCTL_DMX_TSO_FI_GETSTAMP               fpDMXTsoFileGetTimeStamp;
580     IOCTL_DMX_TSO_FI_BYPASS_STAMP           fpDMXTsoFileBypassStamp;
581     IOCTL_DMX_TSO_FI_STAMP_EN               fpDMXTsoFileTimeStampEnable;
582     IOCTL_DMX_TSO_FI_STAMP_DISABLE          fpDMXTsoFileTimeStampDisable;
583     IOCTL_DMX_TSO_SET_OUTCLK                fpDMXTsoSetOutClk;
584     IOCTL_DMX_TSO_OUTPUT_EN                 fpDMXTsoOutputEn;
585     IOCTL_DMX_TSO_LOCSTRID                  fpDMXTsoLocStrId;
586     IOCTL_DMX_TSO_SVQBUF_SET                fpDMXTsoSvqBufSet;
587     IOCTL_DMX_TSO_FLOW_INPUTCFG             fpDMXTsoFlowInputCfg;
588     IOCTL_DMX_TSO_FLOW_OUTPUTCFG            fpDMXTsoFlowOutputCfg;
589     IOCTL_DMX_TSO_CONFIGURE                 fpDMXTsoConfigure;
590     IOCTL_DMX_TSO_PID_OPEN                  fpDMXTsoPidOpen;
591     IOCTL_DMX_TSO_PID_CLOSE                 fpDMXTsoPidClose;
592     IOCTL_DMX_TSO_GET_FILEIN_READADDR       fpDMXTsoGetFileinAddr;
593 
594     IOCTL_DMX_SET_DBGLEVEL                  fpDMXSetDbgLevel;
595     IOCTL_DMX_GET_FWVER                     fpDMXGetFwVer;
596     IOCTL_DMX_GET_LIBVER                    fpDMXGetLibVer;
597     IOCTL_DMX_GET_DISCONCNT                 fpDMXGetDisConCnt;
598     IOCTL_DMX_GET_DROPPKTCNT                fpDMXGetDropPktCnt;
599     IOCTL_DMX_GET_LOCKPKTCNT                fpDMXGetLockPktCnt;
600     IOCTL_DMX_GET_AVPKTCNT                  fpDMXGetAVPktCnt;
601     IOCTL_DMX_GET_SECTEI_PKTCNT             fpDMXGetSecTeiPktCnt;
602     IOCTL_DMX_RESET_SECTEI_PKTCNT           fpDMXResetSecTeiPktCnt;
603     IOCTL_DMX_GET_SECDISCON_PKTCNT          fpDMXGetSecDisConPktCnt;
604     IOCTL_DMX_RESET_SECDISCONT_PKTCNT       fpDMXResetSecDisContPktCnt;
605 
606     IOCTL_DMX_CMD_RUN                       fpDMXCmdRun;
607 
608     IOCTL_DMX_FQ_SET_FLT_RUSH_PASS          fpDMXFQSetFltRushPass;
609     IOCTL_DMX_FQ_INIT                       fpDMXFQInit;
610     IOCTL_DMX_FQ_EXIT                       fpDMXFQExit;
611     IOCTL_DMX_FQ_RUSH_EN                    fpDMXFQRushEn;
612     IOCTL_DMX_FQ_SKIP_RUSH_DATA             fpDMXFQSkipRushData;
613     IOCTL_DMX_FQ_CONFIGURE                  fpDMXFQConfigure;
614     IOCTL_DMX_FQ_SET_RUSH_ADDR              fpDMXFQSetRushAddr;
615     IOCTL_DMX_FQ_READ_GET                   fpDMXFQReadGet;
616     IOCTL_DMX_FQ_WRITE_GET                  fpDMXFQWriteGet;
617 
618     IOCTL_DMX_MSTR_SYNCBY                   fpDMXMStrSyncBy;
619     IOCTL_DMX_WAIT_TSPSIG                   fpDMXWaitTspSig;
620 
621     IOCTL_DMX_GET_INTCNT                    fpDMXGetIntCnt;
622     IOCTL_DMX_DROP_EN                       fpDMXDropEn;
623     IOCTL_DMX_TEI_RM_ERRPKT                 fpDMXTeiRmErrPkt;
624     IOCTL_DMX_SET_FWDBGPARAM                fpDMXSetFwDbgParam;
625     IOCTL_DMX_PVR_MOBF_EN                   fpDMXPvrMobfEn;
626     IOCTL_DMX_GET_DBGPORT_INFO              fpDMXGetDbgportInfo;
627     IOCTL_DMX_OPEN_MULTI_FLT                fpDMXOpenMultiFlt;
628 
629     IOCTL_DMX_FILE_PVR_PID_OPEN             fpDMXFilePvrPidOpen;
630     IOCTL_DMX_FILE_PVR_PID_CLOSE            fpDMXFilePvrPidClose;
631     IOCTL_DMX_FILE_PVR_START                fpDMXFilePvrStart;
632     IOCTL_DMX_FILE_PVR_STOP                 fpDMXFilePvrStop;
633     IOCTL_DMX_PVR_PAUSE                     fpDMXPvrPause;
634     IOCTL_DMX_PVR_PID                       fpDMXPvrPid;
635 
636     IOCTL_DMX_RES_ALLOCATE                  fpDMXResAllocate;
637     IOCTL_DMX_RES_FREE                      fpDMXResFree;
638     IOCTL_DMX_PCR_GET_MAP_STC               fpDMXPcrGetMapStc;
639 
640     IOCTL_DMX_TSIO_Service_SetDMAoutVC      fpDMXTSIOServiceSetDMAoutVC;
641     IOCTL_DMX_TSIO_Service_DMAout_WriteGet  fpDMXTSIOServiceDMAoutWriteGet;
642     IOCTL_DMX_TSIO_Service_SetDestination   fpDMXTSIOServiceSetDestination;
643     IOCTL_DMX_TSIO_Service_SetDMAinVC       fpDMXTSIOServiceSetDMAinVC;
644     IOCTL_DMX_TSIO_Service_SetDMAinVC_Start fpDMXTSIOServiceDMAinVCStart;
645     IOCTL_DMX_TSIO_Service_SetLocdecKey     fpDMXTSIOServiceSetLocdecKey;
646     IOCTL_DMX_TSIO_Service_LocdecKeyEnable  fpDMXTSIOServiceLocdecKeyEnable;
647     IOCTL_DMX_TSIO_Service_PidOpen          fpDMXTSIOServicePidOpen;
648     IOCTL_DMX_TSIO_Service_PidClose         fpDMXTSIOServicePidClose;
649     IOCTL_DMX_TSIO_Service_Alloc            fpDMXTSIOServiceAlloc;
650     IOCTL_DMX_TSIO_Service_Free             fpDMXTSIOServiceFree;
651     IOCTL_DMX_TSIO_RegisterIntCb            fpDMXTSIORegisterIntCb;
652     IOCTL_DMX_TSIO_Init                     fpDMXTSIOInit;
653     IOCTL_DMX_TSIO_Open                     fpDMXTSIOOpen;
654     IOCTL_DMX_TSIO_Cmd                      fpDMXTSIOCmd;
655     IOCTL_DMX_TSIO_Exit                     fpDMXTSIOExit;
656     IOCTL_DMX_TSIO_Close                    fpDMXTSIOClose;
657     IOCTL_DMX_TSIO_CC                       fpDMXTSIOCC;
658     IOCTL_DMX_TSIO_GetInfo                  fpDMXTSIOGetInfo;
659 }DMX_INSTANT_PRIVATE;
660 
661 
662 void    DMXRegisterToUtopia(FUtopiaOpen ModuleType);
663 MS_U32  DMXOpen(void** pInstance, void* pAttribute);
664 MS_U32  DMXClose(void* pInstance);
665 MS_U32  DMXIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs);
666 #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT
667 MS_U32  DMXMdbIoctl(MS_U32 u32Cmd, const void* const pArgs);
668 #endif
669 
670 #ifdef MSOS_TYPE_LINUX_KERNEL
671 MS_U32  DMXStr(MS_U32 u32PowerState, void* pModule);
672 #endif //MSOS_TYPE_LINUX_KERNEL
673 
674 
675 //Commend define for MApi_DMX_CMD_Run API
676 #define DMX_CMD_SET_LIB_MODE           0x80000003UL   //u32Config0: 0 ->  user mode, 1 ->  Kernel mode with user cb
677 
678 
679 //----------------------
680 // Utopia 1.0 body API
681 //----------------------
682 DMX_FILTER_STATUS _MApi_DMX_SetFW(MS_PHY pFwAddr, MS_U32 u32FwSize);
683 DMX_FILTER_STATUS _MApi_DMX_Init(void);
684 DMX_FILTER_STATUS _MApi_DMX_TSPInit(DMX_TSPParam *param);
685 MS_U32            _MApi_DMX_TSPInit_GetConfig(DMX_TSPParam *param);
686 DMX_FILTER_STATUS _MApi_DMX_Exit(void);
687 DMX_FILTER_STATUS _MApi_DMX_Reset(void);
688 DMX_FILTER_STATUS _MApi_DMX_ForceExit(void);
689 DMX_FILTER_STATUS _MApi_DMX_Resume(MS_PHY phyFWAddr, MS_U32 u32FWSize);
690 DMX_FILTER_STATUS _MApi_DMX_Suspend(void);
691 DMX_FILTER_STATUS _MApi_DMX_SetHK(MS_BOOL bIsHK);
692 DMX_FILTER_STATUS _MApi_DMX_ReleaseSemaphone(void);
693 DMX_FILTER_STATUS _MApi_DMX_Get_FlowInput_Status(DMX_FLOW DmxFlow, DMX_FLOW_INPUT *pDmxFlowInput, MS_BOOL *pbClkInv, MS_BOOL *pbExtSync, MS_BOOL *pbParallel);
694 DMX_FILTER_STATUS _MApi_DMX_FlowSet(DMX_FLOW DmxFlow, DMX_FLOW_INPUT DmxFlowInput, MS_BOOL bClkInv, MS_BOOL bExtSync, MS_BOOL bParallel);
695 DMX_FILTER_STATUS _MApi_DMX_PVR_FlowSet(DMX_PVR_ENG Eng, DMX_TSIF ePvrSrcTSIf, MS_BOOL bDscmbRec);
696 DMX_FILTER_STATUS _MApi_DMX_Open(DMX_FILTER_TYPE DmxFltType, MS_U32* pu32DmxId);
697 DMX_FILTER_STATUS _MApi_DMX_Open_Ex(DMX_FILTER_TYPE DmxFltType, MS_U32* pu32DmxId);
698 DMX_FILTER_STATUS _MApi_DMX_Open_Common(DMX_FILTER_TYPE DmxFltType, MS_U32* pu32DmxId );
699 
700 DMX_FILTER_STATUS _MApi_DMX_Close(MS_U32 u32DmxId);
701 DMX_FILTER_STATUS _MApi_DMX_Start(MS_U32 u32DmxId);
702 DMX_FILTER_STATUS _MApi_DMX_Stop(MS_U32 u32DmxId);
703 DMX_FILTER_STATUS _MApi_DMX_IsStart(MS_U32 u32DmxId, MS_BOOL* pbEnable);
704 DMX_FILTER_STATUS _MApi_DMX_Get_FltScmbSts(DMX_FILTER_TYPE FltSrc, MS_U32 u32FltGroupId, MS_U32 PidFltId, MS_U32 *pu32ScmbSts);
705 DMX_FILTER_STATUS _MApi_DMX_Get_PesScmbSts(MS_U32 u32DmxId, MS_U8* pu8scmb);
706 DMX_FILTER_STATUS _MApi_DMX_Get_TsScmbSts(MS_U32 u32DmxId, MS_U8* pu8ScmSts);
707 DMX_FILTER_STATUS _MApi_DMX_ChkAlive(void);
708 DMX_FILTER_STATUS _MApi_DMX_Info(MS_U32 u32DmxId, DMX_Flt_info* pDmxFltInfo, DMX_FILTER_TYPE* pDmxFltType, MS_BOOL bSet);
709 DMX_FILTER_STATUS _MApi_DMX_Info_Ex(MS_U32 u32DmxId, DMX_Flt_info_Ex* pDmxFltInfo);
710 DMX_FILTER_STATUS _MApi_DMX_Pid(MS_U32 u32DmxId, MS_U16* pu16Pid, MS_BOOL bSet);
711 DMX_FILTER_STATUS _MApi_DMX_SectPatternSet(MS_U32 u32DmxId, MS_U8* pPattern, MS_U8* pMask, MS_U8 *pu8NotMask, MS_U32 MatchSize);
712 DMX_FILTER_STATUS _MApi_DMX_SectReset(MS_U32 u32DmxId);
713 DMX_FILTER_STATUS _MApi_DMX_SectReadSet(MS_U32 u32DmxId, MS_PHY Read);
714 DMX_FILTER_STATUS _MApi_DMX_SectReadGet(MS_U32 u32DmxId, MS_PHY* pRead);
715 DMX_FILTER_STATUS _MApi_DMX_SectWriteGet(MS_U32 u32DmxId, MS_PHY* pWrite);
716 DMX_FILTER_STATUS _MApi_DMX_SectStartGet(MS_U32 u32DmxId, MS_PHY* pStart);
717 DMX_FILTER_STATUS _MApi_DMX_SectEndGet(MS_U32 u32DmxId, MS_PHY* pEnd);
718 DMX_FILTER_STATUS _MApi_DMX_SetFwDataAddr(MS_PHY phyDataAddr, MS_U32 u32size);
719 DMX_FILTER_STATUS _MApi_DMX_TTX_WriteGet(MS_U32 u32DmxId, MS_PHY* pWrite);
720 DMX_FILTER_STATUS _MApi_DMX_Pvr_SetPlaybackStamp(MS_U32 u32Stamp);
721 DMX_FILTER_STATUS _MApi_DMX_Pvr_GetPlaybackStamp(MS_U32* pu32Stamp);
722 DMX_FILTER_STATUS _MApi_DMX_Pvr_TimeStampEnable(void);
723 DMX_FILTER_STATUS _MApi_DMX_Pvr_TimeStampDisable(void);
724 DMX_FILTER_STATUS _MApi_DMX_PvrCA_Eng_Pid_Open(DMX_PVR_ENG Eng, MS_U32 Pid, MS_U32* pu32DmxId, MS_U8 u8ShareKeyType);
725 DMX_FILTER_STATUS _MApi_DMX_PvrCA_Eng_Pid_Close(DMX_PVR_ENG Eng, MS_U32 u32DmxId);
726 DMX_FILTER_STATUS _MApi_DMX_PvrCA_Eng_Start(DMX_PVR_ENG Eng, MS_BOOL bPvrAll);
727 DMX_FILTER_STATUS _MApi_DMX_PvrCA_Eng_Stop(DMX_PVR_ENG Eng);
728 DMX_FILTER_STATUS _MApi_DMX_Filein_Info(DMX_Filein_info *pFileinInfo);
729 DMX_FILTER_STATUS _MApi_DMX_Filein_Start(DMX_FILEIN_DST Dst, MS_PHY pBuf, MS_U32 u32BufSize);
730 DMX_FILTER_STATUS _MApi_DMX_Filein_Stop(void);
731 DMX_FILTER_STATUS _MApi_DMX_Filein_Pause(void);
732 DMX_FILTER_STATUS _MApi_DMX_Filein_Resume(void);
733 DMX_FILTER_STATUS _MApi_DMX_Filein_CMDQ_Reset(void);
734 DMX_FILTER_STATUS _MApi_DMX_Filein_CMDQ_GetEmptyNum(MS_U32 *pu32EmptySlot);
735 DMX_FILTER_STATUS _MApi_DMX_Filein_CMDQ_FIFOWriteLevel(MS_U8 *pu8CmdQStatus);
736 MS_BOOL           _MApi_DMX_Filein_IsIdle(void);
737 MS_BOOL           _MApi_DMX_Filein_IsBusy(void);
738 MS_BOOL           _MApi_DMX_Filein_IsPause(void);
739 DMX_FILTER_STATUS _MApi_DMX_Stc_Eng_Get(MS_U8 u8Eng, MS_U32* pu32Stc32, MS_U32* pu32Stc);
740 DMX_FILTER_STATUS _MApi_DMX_Stc_Eng_Set(MS_U8 u8Eng, MS_U32 u32Stc32, MS_U32 u32Stc);
741 DMX_FILTER_STATUS _MApi_DMX_STC_UpdateCtrl(MS_U8 u8Eng, eStcUpdateCtrlMode eMode);
742 DMX_FILTER_STATUS _MApi_DMX_Stc_Eng_SetOffset(MS_U32 u32Eng, MS_U32 u32Offset, MS_BOOL bAdd);
743 DMX_FILTER_STATUS _MApi_DMX_Stc_Clk_Adjust(MS_U32 u32EngId, MS_BOOL bUpClk, MS_U32 u32Percentage);
744 DMX_FILTER_STATUS _MApi_DMX_Stc_Select(DMX_FILTER_TYPE eFltSrc, MS_U32 u32StcEng);
745 DMX_FILTER_STATUS _MApi_DMX_Pcr_Eng_Get(MS_U8 u8Eng, MS_U32* pu32Pcr32, MS_U32* pu32Pcr);
746 DMX_FILTER_STATUS _MApi_DMX_Proc(MS_U32 u32DmxId, DMX_EVENT* pEvent);
747 DMX_FILTER_STATUS _MApi_DMX_Parl_Invert(DMX_FLOW DmxFlow, MS_BOOL bInvert);
748 DMX_FILTER_STATUS _MApi_DMX_CopyData(MS_U32 u32DmxId, MS_U8* pu8Buf, MS_U32 u32BufSize, MS_U32* pu32ActualSize, MS_U32* pu32RmnSize, DMX_CheckCb pfCheckCB);
749 void              _MApi_DMX_WriteProtect_Enable(MS_BOOL bEnable, MS_PHY* pphyStartAddr, MS_PHY* pphyEndAddr);
750 void              _MApi_DMX_OrzWriteProtect_Enable(MS_BOOL bEnable, MS_PHY phyStartAddr, MS_PHY phyEndAddr);
751 DMX_FILTER_STATUS _MApi_DMX_FlowEnable(DMX_FLOW DmxFlow, MS_BOOL bEnable);
752 DMX_FILTER_STATUS _MApi_DMX_Read_DropPktCnt(MS_U16* pu16ADropCnt, MS_U16* pu16VDropCnt);
753 DMX_FILTER_STATUS _MApi_DMX_SetOwner(MS_U32 u32DmxIdStart, MS_U32 u32DmxIdEnd, MS_BOOL bOwner);
754 DMX_FILTER_STATUS _MApi_DMX_GetOwner(MS_U32 u32DmxId, MS_BOOL* pbOwner);
755 DMX_FILTER_STATUS _MApi_DMX_GetAccess(MS_U32 u32Try);
756 DMX_FILTER_STATUS _MApi_DMX_ReleaseAccess(void);
757 DMX_FILTER_STATUS _MApi_DMX_AVFifo_Reset(DMX_FILTER_TYPE DmxFltType, MS_BOOL bReset);
758 DMX_FILTER_STATUS _MApi_DMX_AVFifo_Status(DMX_FILTER_TYPE DmxFltType, DMX_FIFO_STATUS* u32FifoLevel);
759 DMX_FILTER_STATUS _MApi_DMX_GetLibVer(const MSIF_Version **ppVersion);
760 DMX_FILTER_STATUS _MApi_DMX_GetCap(DMX_QUERY_TYPE DmxQueryType, void* pOutput);
761 DMX_FILTER_STATUS _MApi_DMX_GetCap_Ex(char* pstrQueryType, MS_S32 s32Strlen, void* pOutput, MS_S32* ps32OutSize);
762 DMX_FILTER_STATUS _MApi_DMX_SetBurstLen(DMX_BURSTTYPE BurstType);
763 DMX_FILTER_STATUS _MApi_DMX_GetFileInTimeStamp(MS_U32 *pu32FileInTS);
764 DMX_FILTER_STATUS _MApi_DMX_Filein_GetReadAddr(MS_PHY* pphyRead);
765 void              _MApi_DMX_BypassFileInTimeStamp(MS_BOOL bbypass);
766 DMX_FILTER_STATUS _MApi_TSP_Get_FW_VER(MS_U32* u32FWVer);
767 DMX_FILTER_STATUS _MApi_DMX_RemoveDupAVPkt(MS_BOOL bEnable);
768 DMX_FILTER_STATUS _MApi_DMX_RemoveDupAVFifoPkt(DMX_FILTER_TYPE DmxFltType, MS_BOOL bEnable);
769 DMX_FILTER_STATUS _MApi_DMX_SetPacketMode(DMX_FLOW DmxFlow, DMX_PacketMode ePktMode);
770 DMX_FILTER_STATUS _MApi_DMX_SetMergeStrSyncByte(MS_U32 u32SrcID, MS_U8 u8SyncByte);
771 DMX_FILTER_STATUS _MApi_DMX_Change_FilterSource(MS_U32 u32DmxId, DMX_FILTER_TYPE DmxFltSrcType);
772 DMX_FILTER_STATUS _MApi_DMX_SetDbgLevel(DMX_DBGMSG_LEVEL level);
773 DMX_FILTER_STATUS _MApi_DMX_STC64_Mode_Enable(MS_BOOL bEnable);
774 MS_BOOL           _MApi_DMX_MMFI_Filein_IsIdle(DMX_MMFI_PATH ePath);
775 MS_BOOL           _MApi_DMX_MMFI_Filein_IsBusy(DMX_MMFI_PATH ePath);
776 DMX_FILTER_STATUS _MApi_DMX_MMFI_Filein_CMDQ_Reset(DMX_MMFI_PATH ePath);
777 DMX_FILTER_STATUS _MApi_DMX_MMFI_Filein_CMDQ_GetEmptyNum(DMX_MMFI_PATH ePath, MS_U32 *pu32EmptySlot);
778 DMX_FILTER_STATUS _MApi_DMX_MMFI_Filein_Start(DMX_MMFI_DST eDst, MS_PHY pBuf, MS_U32 u32BufSize);
779 DMX_FILTER_STATUS _MApi_DMX_MMFI_GetFileInTimeStamp(DMX_MMFI_PATH ePath, MS_U32 *pu32FileInTS);
780 DMX_FILTER_STATUS _MApi_DMX_MMFI_Pid_Open(DMX_MMFI_FLTTYPE flttype, MS_U16 u16Pid, MS_U8* pu8DmxId);
781 DMX_FILTER_STATUS _MApi_DMX_MMFI_Pid_Close(MS_U8 u8DmxId);
782 DMX_FILTER_STATUS _MApi_DMX_MMFI_Filein_CMDQ_FIFOWriteLevel(DMX_MMFI_PATH ePath, MS_U8 *pu8CmdQStatus);
783 DMX_FILTER_STATUS _MApi_DMX_MMFI_SetPlaybackTimeStamp(DMX_MMFI_PATH ePath, MS_U32 u32pcr2);
784 DMX_FILTER_STATUS _MApi_DMX_MMFI_GetPlaybackTimeStamp(DMX_MMFI_PATH ePath, MS_U32 *pu32pcr2);
785 DMX_FILTER_STATUS _MApi_DMX_MMFI_TimeStampClk(DMX_MMFI_PATH ePath, DMX_TimeStamp_Clk eClk);
786 DMX_FILTER_STATUS _MApi_DMX_MMFI_RemoveDupAVPkt(MS_BOOL bEnable);
787 DMX_FILTER_STATUS _MApi_DMX_MMFI_MOBF_Enable(DMX_MMFI_PATH ePath, MS_BOOL bEnable, MS_U32 u32key);
788 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_MOBF_Enable(MS_U8 u8Eng, MS_BOOL bEnable, MS_U32 u32key0, MS_U32 u32key1);
789 DMX_FILTER_STATUS _MApi_DMX_Filein_MOBF_Enable(MS_BOOL bEnable, MS_U32 u32key);
790 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Open(DMX_PVR_ENG Eng ,DMX_Pvr_info* pPvrInfo);
791 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Close(DMX_PVR_ENG Eng );
792 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Pid_Open(DMX_PVR_ENG Eng ,MS_U32 Pid, MS_U32* pu32DmxId);
793 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Pid_Close(DMX_PVR_ENG Eng ,MS_U32 u32DmxId);
794 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Start(DMX_PVR_ENG Eng, MS_BOOL bPvrAll);
795 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Stop(DMX_PVR_ENG Eng);
796 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_WriteGet(DMX_PVR_ENG Eng ,MS_PHY* pphyWrite);
797 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_SetPacketMode(DMX_PVR_ENG Eng ,MS_BOOL bSet);
798 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_SetRecordStamp(DMX_PVR_ENG Eng ,MS_U32 u32Stamp);
799 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_GetRecordStamp(DMX_PVR_ENG Eng ,MS_U32* pu32Stamp);
800 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_SetPlaybackStampClk(MS_U8 u8Eng, DMX_TimeStamp_Clk eClkSrc);
801 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_SetRecordStampClk(DMX_PVR_ENG Eng, DMX_TimeStamp_Clk eClkSrc);
802 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_CallbackSize(DMX_PVR_ENG Eng, MS_U32* pu32CallbackSize, MS_BOOL bSet);
803 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_SetCaMode(DMX_PVR_ENG Eng, DMX_CA_PVRMODE eCaMode, MS_BOOL bspsEnable);
804 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_IsStart(DMX_PVR_ENG Eng, MS_BOOL *pbIsStart);
805 DMX_FILTER_STATUS _MApi_DMX_TSO_Filein_Info(MS_U8 u8Eng, DMX_Filein_info *pFileinInfo);
806 MS_BOOL           _MApi_DMX_TSO_Filein_IsIdle(MS_U8 u8Eng);
807 DMX_FILTER_STATUS _MApi_DMX_TSO_Filein_CMDQ_GetEmptyNum(MS_U8 u8Eng, MS_U32 *pu32EmptySlot);
808 DMX_FILTER_STATUS _MApi_DMX_TSO_Filein_CMDQ_Reset(MS_U8 u8Eng);
809 DMX_FILTER_STATUS _MApi_DMX_TSO_Filein_Start(MS_U8 u8Eng, MS_PHY pBuf, MS_U32 u32BufSize);
810 DMX_FILTER_STATUS _MApi_DMX_TSO_Filein_Stop(MS_U8 u8Eng);
811 DMX_FILTER_STATUS _MApi_DMX_TSO_SetPlaybackTimeStamp(MS_U8 u8Eng, MS_U32 u32Stamp);
812 DMX_FILTER_STATUS _MApi_DMX_TSO_GetPlaybackStamp(MS_U8 u8Eng, MS_U32* pu32Stamp);
813 DMX_FILTER_STATUS _MApi_DMX_TSO_GetFileInTimeStamp(MS_U8 u8Eng, MS_U32 *pu32Stamp);
814 DMX_FILTER_STATUS _MApi_DMX_TSO_BypassFileInTimeStamp(MS_U8 u8Eng, MS_BOOL bbypass);
815 DMX_FILTER_STATUS _MApi_DMX_TSO_TimeStampEnable(MS_U8 u8Eng);
816 DMX_FILTER_STATUS _MApi_DMX_TSO_TimeStampDisable(MS_U8 u8Eng);
817 DMX_FILTER_STATUS _MApi_DMX_TSO_SetOutClk(MS_U8 u8Eng, DMX_TSO_OutClk eTsOutClk, DMX_TSO_OutClkSrc eTsOutClkSrc, MS_U16 u16DivNum, MS_BOOL bClkInv);
818 DMX_FILTER_STATUS _MApi_DMX_TSO_OutputEnable(MS_U8 u8Eng, MS_BOOL bEnable);
819 DMX_FILTER_STATUS _MApi_DMX_TSO_LocalStreamId(MS_U8 u8Eng, DMX_TSIF eIf, MS_U8* pu8StrId, MS_BOOL bSet);
820 DMX_FILTER_STATUS _MApi_DMX_TSO_SVQBuf_Set(MS_U8 u8Eng, MS_PHY phyAddr, MS_U32 u32BufSize);
821 DMX_FILTER_STATUS _MApi_DMX_TSO_Flow_InputCfg(DMX_TSO_InputCfg* pstInputCfg);
822 DMX_FILTER_STATUS _MApi_DMX_TSO_Flow_OutputCfg(DMX_TSO_OutputCfg* pstOutputCfg);
823 DMX_FILTER_STATUS _MApi_DMX_TSO_Configure(DMX_TSO_Cfg* pstTsoCfg);
824 DMX_FILTER_STATUS _MApi_DMX_TSO_Pid_Open(MS_U8 u8Eng, DMX_TSIF eTSOInSrc, MS_U16 u16Pid, MS_U16* pu16DmxId);
825 DMX_FILTER_STATUS _MApi_DMX_TSO_Pid_Close(MS_U8 u8Eng, MS_U16 u16DmxId);
826 DMX_FILTER_STATUS _MApi_DMX_TSO_Filein_GetReadAddr(MS_U8 u8Eng, MS_PHY* pphyRead);
827 
828 DMX_FILTER_STATUS _MApi_DMX_LiveSrcSwitch(DMX_FILTER_TYPE TgtFlow);
829 DMX_FILTER_STATUS _MApi_DMX_AU_BD_Mode_Enable(MS_BOOL bEnable);
830 DMX_FILTER_STATUS _MApi_DMX_CMD_Run(MS_U32 u32Cmd, MS_U32 u32Config, MS_U32 u32DataNum, void *pData);
831 MS_U32            _MApi_DMX_SetPowerState(EN_POWER_MODE ePowerState, MS_PHY phyFWAddr, MS_U32 u32FWSize);
832 DMX_FILTER_STATUS _MApi_DMX_Get_DisContiCnt(DMX_DisContiCnt_info* pDmxInfo, MS_U32* pu32Cnt);
833 DMX_FILTER_STATUS _MApi_DMX_Get_DropPktCnt(DMX_DropPktCnt_info* pDmxInfo, MS_U32* pu32Cnt);
834 DMX_FILTER_STATUS _MApi_DMX_Get_LockPktCnt(DMX_LockPktCnt_info* pDmxInfo, MS_U32* pu32Cnt);
835 DMX_FILTER_STATUS _MApi_DMX_Get_AVPktCnt(DMX_AVPktCnt_info* DmxInfo, MS_U32* pu32Cnt);
836 DMX_FILTER_STATUS _MApi_DMX_Get_SecTEI_PktCount(DMX_FILTER_TYPE FltSrc, MS_U32* pu32PktCnt);
837 DMX_FILTER_STATUS _MApi_DMX_Reset_SecTEI_PktCount(DMX_FILTER_TYPE FltSrc);
838 DMX_FILTER_STATUS _MApi_DMX_Get_SecDisCont_PktCount(MS_U32 u32DmxID, MS_U32* pu32PktCnt);
839 DMX_FILTER_STATUS _MApi_DMX_Reset_SecDisCont_PktCount(MS_U32 u32DmxID);
840 
841 DMX_FILTER_STATUS _MApi_DMX_FQ_SetFltRushPass(MS_U32 u32DmxId, MS_U8 u8Enable);
842 DMX_FILTER_STATUS _MApi_DMX_FQ_Init(MS_U32 u32FQEng, DMX_FQ_Info* pFQInfo);
843 DMX_FILTER_STATUS _MApi_DMX_FQ_Exit(MS_U32 u32FQEng);
844 DMX_FILTER_STATUS _MApi_DMX_FQ_RushEnable(MS_U32 u32FQEng);
845 DMX_FILTER_STATUS _MApi_DMX_FQ_SkipRushData(MS_U32 u32FQEng, DMX_FQ_SkipPath eSkipPath);
846 DMX_FILTER_STATUS _MApi_DMX_FQ_Configure(DMX_FQ_Cfg* pstFqCfg);
847 DMX_FILTER_STATUS _MApi_DMX_FQ_SetRushAddr(MS_U32 u32FQEng, MS_PHY phyStart);
848 DMX_FILTER_STATUS _MApi_DMX_FQ_ReadGet(MS_U32 u32FQEng, MS_PHY* pphyRead);
849 DMX_FILTER_STATUS _MApi_DMX_FQ_WriteGet(MS_U32 u32FQEng, MS_PHY* pphyWrite);
850 
851 
852 DMX_FILTER_STATUS _MApi_DMX_MStr_SyncByte(DMX_TSIF eIf, MS_U8 u8ScrId, MS_U8* pu8SyncByte, MS_BOOL bSet);
853 DMX_FILTER_STATUS _MApi_DMX_Get_PipeId(DMX_PIPEID_GROUP eGroup, DMX_GENERAL_ENGID u32EngId, MS_U32 *pu32PipeId);
854 DMX_FILTER_STATUS _MApi_DMX_Wait_TspIoSignal(DMX_TSP_IOSIGNAL *pDmxTspIoSig);
855 
856 DMX_FILTER_STATUS _MApi_DMX_Get_Intr_Count(MS_U32* pu32Count);
857 DMX_FILTER_STATUS _MApi_DMX_Drop_Enable(MS_BOOL bSet);
858 DMX_FILTER_STATUS _MApi_DMX_VQ_Enable(MS_BOOL bEnable);
859 DMX_FILTER_STATUS _MApi_DMX_TEI_RemoveErrorPkt( DMX_TEI_RmPktType eDmxPktType, MS_BOOL bEnable );
860 DMX_FILTER_STATUS _MApi_DMX_SetFwDbgParam(MS_PHY phyAddr, MS_U32 u32Size, MS_U32 u32DbgWord);
861 DMX_FILTER_STATUS _MApi_DMX_SetAVPause(MS_BOOL bSet);
862 DMX_FILTER_STATUS _MApi_DMX_Pvr_MOBF_Enable(MS_BOOL bEnable, MS_U32 u32key0, MS_U32 u32key1);
863 
864 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_Start(DMX_FILEIN_PATH ePath, DMX_FILEIN_DST Dst, MS_PHY pBuf, MS_U32 u32BufSize);
865 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_Stop(DMX_FILEIN_PATH ePath);
866 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_Info(DMX_FILEIN_PATH ePath, DMX_Filein_info *pFileinInfo);
867 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_Pause(DMX_FILEIN_PATH ePath);
868 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_Resume(DMX_FILEIN_PATH ePath);
869 MS_BOOL           _MApi_DMX_Filein_Eng_IsIdle(DMX_FILEIN_PATH ePath);
870 MS_BOOL           _MApi_DMX_Filein_Eng_IsBusy(DMX_FILEIN_PATH ePath);
871 MS_BOOL           _MApi_DMX_Filein_Eng_IsPause(DMX_FILEIN_PATH ePath);
872 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_CMDQ_Reset(DMX_FILEIN_PATH ePath);
873 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_CMDQ_GetEmptyNum(DMX_FILEIN_PATH ePath, MS_U32 *pu32EmptySlot);
874 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_CMDQ_FIFOWriteLevel(DMX_FILEIN_PATH ePath, MS_U8 *pu8CmdQStatus);
875 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_GetFileInTimeStamp(DMX_FILEIN_PATH ePath, MS_U32 *pu32FileInTS);
876 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_GetPlaybackStamp(DMX_FILEIN_PATH ePath,MS_U32* pu32Stamp);
877 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_SetPlaybackStamp(DMX_FILEIN_PATH ePath,MS_U32 u32Stamp);
878 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_GetReadAddr(DMX_FILEIN_PATH ePath, MS_PHY* pphyRead);
879 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_MOBF_Enable(DMX_FILEIN_PATH ePath, MS_BOOL bEnable, MS_U32 u32key);
880 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_PlaybackTimeStampDisable(DMX_FILEIN_PATH ePath);
881 DMX_FILTER_STATUS _MApi_DMX_Filein_Eng_PlaybackTimeStampEnable(DMX_FILEIN_PATH ePath);
882 void              _MApi_DMX_Filein_Eng_BypassFileInTimeStamp(DMX_FILEIN_PATH ePath, MS_BOOL bbypass);
883 
884 DMX_FILTER_STATUS _MApi_DMX_MMFI_Filein_Info(DMX_MMFI_PATH ePath, DMX_Filein_info *pFileinInfo);
885 void              _MApi_DMX_MMFI_Filein_BypassTimeStamp(DMX_MMFI_PATH ePath, MS_BOOL bbypass);
886 DMX_FILTER_STATUS _MApi_DMX_MMFI_TimeStampEnable(DMX_MMFI_PATH ePath);
887 DMX_FILTER_STATUS _MApi_DMX_MMFI_TimeStampDisable(DMX_MMFI_PATH ePath);
888 
889 DMX_FILTER_STATUS _MApi_DMX_GetDbgPortInfo(MS_U32 u32DbgSel,MS_U32* u32DbgInfo);
890 DMX_FILTER_STATUS _MApi_DMX_Open_MultiFlt( DMX_FILTER_TYPE DmxFltType , MS_U8* pu8DmxId, MS_U8 u8TargetDmxId);
891 DMX_FILTER_STATUS _MApi_DMX_Filein_Pvr_Eng_Pid_Open(DMX_PVR_ENG Eng, MS_U32 Pid, MS_U8* pu8DmxId, MS_U8 u8ShareKeyType);
892 DMX_FILTER_STATUS _MApi_DMX_Filein_Pvr_Eng_Pid_Close(DMX_PVR_ENG Eng, MS_U8 u8DmxId);
893 DMX_FILTER_STATUS _MApi_DMX_Filein_Pvr_Eng_Start(DMX_PVR_ENG Eng, MS_BOOL bPvrAll);
894 DMX_FILTER_STATUS _MApi_DMX_Filein_Pvr_Eng_Stop(DMX_PVR_ENG Eng);
895 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Pause(DMX_PVR_ENG Eng ,MS_BOOL bPause);
896 DMX_FILTER_STATUS _MApi_DMX_Pvr_Eng_Pid(DMX_PVR_ENG Eng ,MS_U32 u32DmxId , MS_U32 *Pid, MS_BOOL bSet);
897 DMX_FILTER_STATUS _MApi_DMX_Stc_Select(DMX_FILTER_TYPE eFltSrc, MS_U32 u32StcEng);
898 DMX_FILTER_STATUS _MApi_DMX_TsOutputPadCfg(DMX_FLOW_OUTPUT_PAD eOutPad, DMX_FLOW_INPUT eInSrcPad, MS_BOOL bInParallel, MS_U32 u32ResvNum, MS_U32 *pu32Resv);
899 DMX_FILTER_STATUS _MApi_DMX_TsS2POutputClkPhase(MS_U16 u16Val, MS_BOOL bEnable, MS_U32 u32Reserved);
900 DMX_FILTER_STATUS _MApi_DMX_Flow_DscmbEng(DMX_TSIF eTsIf, MS_U32* pu32EngId, MS_BOOL bSet);
901 DMX_FILTER_STATUS _MApi_DMX_DropScmbPkt(DMX_FILTER_TYPE DmxFltType, MS_BOOL bEnable);
902 
903 DMX_FILTER_STATUS _MApi_DMX_ResAllocate(DMX_RES_TYPE eResType, void *pRes);
904 DMX_FILTER_STATUS _MApi_DMX_ResFree(DMX_RES_TYPE eResType, void *pRes);
905 DMX_FILTER_STATUS _MApi_DMX_Pcr_Get_MapSTC(MS_U32 u32PcrFltId, MS_U32 *pu32StcEng);
906 
907 //TSIO
908 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_SetDMAoutVC(MS_U16 u16Handle, TSIO_DMAOUT_SET *eSet);
909 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_DMAout_WriteGet(MS_U16 u16Handle, MS_PHY* pphyWrite);
910 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_SetDestination(MS_U16 u16Handle, TSIO_SERVICEDEST eDest);
911 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_SetDMAinVC(MS_U16 u16Handle, TSIO_DMAIN_SET *eSet);
912 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_DMAinVC_Start(MS_U16 u16Handle, MS_U32 u32Pacing);
913 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_SetLocdecKey(MS_U16 u16Handle, TSIO_LOCKEY_SET *eSet);
914 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_LocdecKeyEnable(MS_U16 u16Handle, MS_BOOL bEnable);
915 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_PidOpen(MS_U16 u16Handle, DMX_TSIF eTSOInSrc, MS_U16 u16Pid, MS_U16* pu16DmxId);
916 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_PidClose(MS_U16 u16Handle, MS_U16 u16DmxId);
917 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_Alloc(MS_U8 u8Sid, MS_U16 *u16Handle);
918 DMX_FILTER_STATUS _MApi_DMX_TSIO_Service_Free(MS_U16 u16Handle);
919 DMX_FILTER_STATUS _MApi_DMX_TSIO_RegisterIntCb(TSIOIntTypeCB efn);
920 DMX_FILTER_STATUS _MApi_DMX_TSIO_Init(TSIO_Init_Set *eParm);
921 DMX_FILTER_STATUS _MApi_DMX_TSIO_Open(TSIO_CLK eClk);
922 DMX_FILTER_STATUS _MApi_DMX_TSIO_Cmd(TSIO_CMD eCmd, MS_U32 u32Value);
923 DMX_FILTER_STATUS _MApi_DMX_TSIO_Exit(void);
924 DMX_FILTER_STATUS _MApi_DMX_TSIO_Close(void);
925 DMX_FILTER_STATUS _MApi_DMX_TSIO_CC(TSIO_CC_Set *Parm, TSIO_CC_RESULT* pResult);
926 DMX_FILTER_STATUS _MApi_DMX_TSIO_GetInfo(TSIO_INFO eInfo , MS_U32 u32Arg, MS_U32 *u32Retinfo);
927 DMX_FILTER_STATUS _MApi_DMX_TSIO_WaitIoSignal(DMX_TSIO_IOSIGNAL *pDmxTsioIoSig);
928 
929 #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT
930 DMX_FILTER_STATUS _MApi_DMX_DBG_GetModuleInfo(MS_U64* pu64ReqHdl);
931 DMX_FILTER_STATUS _MApi_DMX_DBG_EchoCmd(MS_U64* pu64ReqHdl, MS_U32 u32CmdSize, char* pcmd);
932 #endif
933 
934 #ifdef __cplusplus
935 }
936 #endif
937 
938 #endif //_DMX_PRIV_H_
939 
940