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