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) 2006-2009 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 drvSYS_priv.h 98 /// @brief System Control Interface 99 /// @author MStar Semiconductor,Inc. 100 /// 101 //////////////////////////////////////////////////////////////////////////////////////////////////// 102 103 104 105 #ifndef _DRVSYS_PRIV_H_ 106 #define _DRVSYS_PRIV_H_ 107 108 #ifdef __cplusplus 109 extern "C" 110 { 111 #endif 112 113 #include "MsTypes.h" 114 #include "tee_client_api.h" 115 // driver version 116 #define SYS_VERSION 0x00000001 117 118 enum { 119 // Do not need to check resource 120 MDrv_CMD_SYS_GetChipRev, 121 MDrv_CMD_SYS_GetChipID, 122 MDrv_CMD_SYS_GetInfo, 123 MDrv_CMD_SYS_GetLibVer, 124 MDrv_CMD_SYS_GetStatus, 125 MDrv_CMD_SYS_GetSoftwareVersion, 126 MDrv_CMD_SYS_DisableDebugPort, 127 MDrv_CMD_SYS_EnableDebugPort, 128 MDrv_CMD_SYS_SetDbgLevel, 129 MDrv_CMD_SYS_VIFWriteByteByVDMbox, 130 MDrv_CMD_SYS_VIFWriteByteMaskByVDMbox, 131 MDrv_CMD_SYS_VIFWriteRegBitByVDMbox, 132 MDrv_CMD_SYS_VIFReadByteByVDMbox, 133 MDrv_CMD_SYS_VIFRead2ByteByVDMbox, 134 135 136 // check if resource left 137 MDrv_CMD_SYS_WDTEnable, 138 MDrv_CMD_SYS_WDTClear, 139 MDrv_CMD_SYS_WDTLastStatus, 140 MDrv_CMD_SYS_WDTSetTime, 141 MDrv_CMD_SYS_ResetChip, 142 MDrv_CMD_SYS_ResetCPU, 143 MDrv_CMD_SYS_SetAGCPadMux, 144 MDrv_CMD_SYS_SetPCMCardDetectMode, 145 MDrv_CMD_SYS_SetPadMux, 146 MDrv_CMD_SYS_SetTSOutClockPhase, 147 MDrv_CMD_SYS_Query, 148 #ifdef _SYS_DAC_GAIN_CTRL 149 MDrv_CMD_SYS_EnhanceDACGain, 150 #endif 151 MDrv_CMD_SYS_Init, 152 MDrv_CMD_SYS_GlobalInit, 153 MDrv_CMD_SYS_TeecInitContext, 154 MDrv_CMD_SYS_TeecOpen, 155 MDrv_CMD_SYS_TeecClose, 156 MDrv_CMD_SYS_TeecInvokeCmd, 157 MDrv_CMD_SYS_TeecFinalContext, 158 } eSYSIoctlOpt; 159 160 typedef enum 161 { 162 E_SYS_SOURCE_DTV = 0x00, 163 E_SYS_SOURCE_HDMI, 164 E_SYS_SOURCE_MM, 165 E_SYS_SOURCE_GOOGLE_CAST, 166 E_SYS_SOURCE_MAX, 167 } E_SYS_SOURCE_TYPE; 168 169 typedef enum 170 { 171 E_SYS_INPUT_FHD24_25_30 = 0x00, 172 E_SYS_INPUT_FHD48, 173 E_SYS_INPUT_FHD50_60, 174 E_SYS_INPUT_4K2K24_25_30, 175 E_SYS_INPUT_4K2K48, 176 E_SYS_INPUT_4K2K50_60, 177 E_SYS_INPUT_ALWAYS_ON, 178 E_SYS_INPUT_ALWAYS_OFF, 179 E_SYS_INPUT_FHD_UNKNOWN, 180 E_SYS_INPUT_4K2K120, 181 E_SYS_INPUT_4K2K_UNKNOWN, 182 E_SYS_INPUT_MAX, 183 } E_SYS_INPUT_TIMING; 184 185 186 // 187 // Input Source Mapping, 188 // Ref: mapi_types.h 189 // 190 typedef enum 191 { 192 E_SYS_INPUT_SOURCE_HDMI = 23, ///<HDMI 1 23 193 E_SYS_INPUT_SOURCE_HDMI2= 24, ///<HDMI 2 24 194 E_SYS_INPUT_SOURCE_HDMI3= 25, ///<HDMI 3 25 195 E_SYS_INPUT_SOURCE_HDMI4= 26, ///<HDMI 4 26 196 E_SYS_INPUT_SOURCE_DTV = 28, ///<DTV 28 197 E_SYS_INPUT_SOURCE_STORAGE = 34, ///<Storage 34 198 E_SYS_INPUT_SOURCE_DTV2 = 37, ///<DTV2 37 199 E_SYS_INPUT_SOURCE_DTV3 = 39, ///<DTV3 39 200 E_SYS_INPUT_SOURCE_GOOGLE_CAST = 44, ///<Google Cast 44 201 } E_SYS_INPUT_SOURCE_TYPE; 202 203 //ioctl function pointer type 204 typedef MS_U8 (*IOCTL_SYS_GETCHIPREV)(void); 205 typedef MS_U16 (*IOCTL_SYS_GETCHIPID)(void); 206 typedef const SYS_Info* (*IOCTL_SYS_GETINFO)(void); 207 typedef const MSIF_Version* (*IOCTL_SYS_GETLIBVER)(void); 208 typedef MS_BOOL (*IOCTL_SYS_GETSTATUS)(SYS_Status *); 209 typedef void (*IOCTL_SYS_GETSOFTWAREVERSION)(MS_SW_VERSION_INFO *); 210 typedef MS_BOOL (*IOCTL_SYS_DISABLEDEBUGPORT)(void); 211 typedef MS_BOOL (*IOCTL_SYS_ENABLEDEBUGPORT)(void); 212 typedef void (*IOCTL_SYS_SETDBGLEVEL)(SYS_DbgLv); 213 typedef void (*IOCTL_SYS_VIFWRITEBYTEBYVDMBOX)(MS_U32, MS_U8); 214 typedef void (*IOCTL_SYS_VIFWRITEBYTEMASKBYVDMBOX)(MS_U32, MS_U8, MS_U8); 215 typedef void (*IOCTL_SYS_VIFWRITEREGBITBYVDMBOX)(MS_U32, MS_U8, MS_U8); 216 typedef MS_U8 (*IOCTL_SYS_VIFREADBYTEBYVDMBOX)(MS_U32); 217 typedef MS_U16 (*IOCTL_SYS_VIFREAD2BYTEBYVDMBOX)(MS_U32); 218 typedef void (*IOCTL_SYS_WDTENABLE)(MS_BOOL); 219 typedef void (*IOCTL_SYS_WDTCLEAR)(void); 220 typedef MS_BOOL (*IOCTL_SYS_WDTLASTSTATUS)(void); 221 typedef void (*IOCTL_SYS_WDTSETTIME)(MS_U32); 222 typedef void (*IOCTL_SYS_RESETCHIP)(void); 223 typedef void (*IOCTL_SYS_RESETCPU)(void); 224 typedef void (*IOCTL_SYS_SETAGCPADMUX)(SYS_AGC_PAD_SET); 225 typedef MS_BOOL (*IOCTL_SYS_SETPCMCARDDETECTMODE)(SYS_PCM_CD_MODE); 226 typedef MS_BOOL (*IOCTL_SYS_SETPADMUX)(SYS_PAD_MUX_SET, SYS_PAD_SEL); 227 typedef MS_BOOL (*IOCTL_SYS_SETTSOUTCLOCKPHASE)(MS_U16); 228 typedef MS_BOOL (*IOCTL_SYS_QUERY)(E_SYS_QUERY); 229 #ifdef _SYS_DAC_GAIN_CTRL 230 typedef void (*IOCTL_SYS_ENHANCEDACGAIN)(MS_U8, MS_BOOL); 231 #endif 232 typedef MS_BOOL (*IOCTL_SYS_INIT)(void); 233 typedef void (*IOCTL_SYS_GLOBALINIT)(void); 234 typedef MS_U32 (*IOCTL_SYS_TEEC_INIT_CONTEXT)(const char *, TEEC_Context *); 235 typedef MS_U32 (*IOCTL_SYS_TEEC_OPEN)(TEEC_Context *, TEEC_Session *, const TEEC_UUID *, MS_U32, const void *, TEEC_Operation *, MS_U32 *); 236 typedef void (*IOCTL_SYS_TEEC_CLOSE)(TEEC_Session *); 237 typedef void (*IOCTL_SYS_TEEC_FINAL_CONTEXT)(TEEC_Context *); 238 typedef MS_U32 (*IOCTL_SYS_TEEC_INVOKE_CMD)(TEEC_Session *, MS_U32, TEEC_Operation *, MS_U32 *); 239 240 // INSTANCE Private(ioctl function pointer) 241 typedef struct _SYS_INSTANT_PRIVATE 242 { 243 IOCTL_SYS_GETCHIPREV fpSYS_GetChipRev; 244 IOCTL_SYS_GETCHIPID fpSYS_GetChipID; 245 IOCTL_SYS_GETINFO fpSYS_GetInfo; 246 IOCTL_SYS_GETLIBVER fpSYS_GetLibVer; 247 IOCTL_SYS_GETSTATUS fpSYS_GetStatus; 248 IOCTL_SYS_GETSOFTWAREVERSION fpSYS_GetSoftwareVersion; 249 IOCTL_SYS_DISABLEDEBUGPORT fpSYS_DisableDebugPort; 250 IOCTL_SYS_ENABLEDEBUGPORT fpSYS_EnableDebugPort; 251 IOCTL_SYS_SETDBGLEVEL fpSYS_SetDbgLevel; 252 IOCTL_SYS_VIFWRITEBYTEBYVDMBOX fpSYS_VIFWriteByteByVDMbox; 253 IOCTL_SYS_VIFWRITEBYTEMASKBYVDMBOX fpSYS_VIFWriteByteMaskByVDMbox; 254 IOCTL_SYS_VIFWRITEREGBITBYVDMBOX fpSYS_VIFWriteRegBitByVDMbox; 255 IOCTL_SYS_VIFREADBYTEBYVDMBOX fpSYS_VIFReadByteByVDMbox; 256 IOCTL_SYS_VIFREAD2BYTEBYVDMBOX fpSYS_VIFRead2ByteByVDMbox; 257 IOCTL_SYS_WDTENABLE fpSYS_WDTEnable; 258 IOCTL_SYS_WDTCLEAR fpSYS_WDTClear; 259 IOCTL_SYS_WDTLASTSTATUS fpSYS_WDTLastStatus; 260 IOCTL_SYS_WDTSETTIME fpSYS_WDTSetTime; 261 IOCTL_SYS_RESETCHIP fpSYS_ResetChip; 262 IOCTL_SYS_RESETCPU fpSYS_ResetCPU; 263 IOCTL_SYS_SETAGCPADMUX fpSYS_SetAGCPadMux; 264 IOCTL_SYS_SETPCMCARDDETECTMODE fpSYS_SetPCMCardDetectMode; 265 IOCTL_SYS_SETPADMUX fpSYS_SetPadMux; 266 IOCTL_SYS_SETTSOUTCLOCKPHASE fpSYS_SetTSOutClockPhase; 267 IOCTL_SYS_QUERY fpSYS_Query; 268 #ifdef _SYS_DAC_GAIN_CTRL 269 IOCTL_SYS_ENHANCEDACGAIN fpSYS_EnhanceDACGain; 270 #endif 271 IOCTL_SYS_INIT fpSYS_Init; 272 IOCTL_SYS_GLOBALINIT fpSYS_GlobalInit; 273 IOCTL_SYS_TEEC_INIT_CONTEXT fpSYS_TeecInitContext; 274 IOCTL_SYS_TEEC_OPEN fpSYS_TeecOpen; 275 IOCTL_SYS_TEEC_CLOSE fpSYS_TeecClose; 276 IOCTL_SYS_TEEC_INVOKE_CMD fpSYS_TeecInvokeCmd; 277 IOCTL_SYS_TEEC_FINAL_CONTEXT fpSYS_TeecFinalizeContext; 278 }SYS_INSTANT_PRIVATE; 279 280 ////////////////////////////////////// 281 // function parameter structure ////// 282 ////////////////////////////////////// 283 // for cmd MDrv_SYS_TEEC_InitializeContext_ 284 typedef struct _SYS_TEECINITCONTEXT_PARAM 285 { 286 const char *name; 287 TEEC_Context *context; 288 }SYS_SYS_TEECINITCONTEXT_PARAM, *PSYS_SYS_TEECINITCONTEXT_PARAM; 289 290 // for cmd MDrv_SYS_TEEC_Open 291 typedef struct _SYS_TEECOPEN_PARAM 292 { 293 TEEC_Context *context; 294 TEEC_Session *session; 295 const TEEC_UUID *destination; 296 MS_U32 connection_method; 297 const void *connection_data; 298 TEEC_Operation *operation; 299 MS_U32 *error_origin; 300 }SYS_TEECOPEN_PARAM, *PSYS_SYS_TEECOPEN_PARAM; 301 302 // for cmd MDrv_SYS_TEEC_Close 303 typedef struct _SYS_TEECCLOSE_PARAM 304 { 305 TEEC_Session *session; 306 }SYS_TEECCLOSE_PARAM, *PSYS_SYS_TEECCLOSE_PARAM; 307 308 // for cmd MDrv_SYS_TEEC_InvokeCmd 309 typedef struct _SYS_TEECINVOKECMD_PARAM 310 { 311 TEEC_Session *session; 312 MS_U32 cmd_id; 313 TEEC_Operation *operation; 314 MS_U32 *error_origin; 315 }SYS_TEECINVOKECMD_PARAM, *PSYS_SYS_TEECINVOKECMD_PARAM; 316 317 // for cmd MDrv_SYS_GetStatus 318 typedef struct _SYS_GETSTATUS_PARAM 319 { 320 SYS_Status *pStatus; 321 }SYS_GETSTATUS_PARAM, *PSYS_GETSTATUS_PARAM; 322 323 // for cmd MDrv_SYS_GetSoftwareVersion 324 typedef struct _SYS_GETSOFTWAREVERSION_PARAM 325 { 326 MS_SW_VERSION_INFO *pSoftwareVersionInfo; 327 }SYS_GETSOFTWAREVERSION_PARAM, *PSYS_GETSOFTWAREVERSION_PARAM; 328 329 // for cmd MDrv_SYS_SetDbgLevel 330 typedef struct _SYS_SETDBGLEVEL_PARAM 331 { 332 SYS_DbgLv eLevel; 333 }SYS_SETDBGLEVEL_PARAM, *PSYS_SETDBGLEVEL_PARAM; 334 335 // for cmd MDrv_SYS_VIFWriteByteByVDMbox 336 typedef struct _SYS_VIFWRITEBYTEBYVDMBOX_PARAM 337 { 338 MS_U32 u32Reg; 339 MS_U8 u8Val; 340 }SYS_VIFWRITEBYTEBYVDMBOX_PARAM, *PSYS_VIFWRITEBYTEBYVDMBOX_PARAM; 341 342 // for cmd MDrv_SYS_VIFWriteByteMaskByVDMbox 343 typedef struct _SYS_VIFWRITEBYTEMASKBYVDMBOX_PARAM 344 { 345 MS_U32 u32Reg; 346 MS_U8 u8Val; 347 MS_U8 u8Mask; 348 }SYS_VIFWRITEBYTEMASKBYVDMBOX_PARAM, *PSYS_VIFWRITEBYTEMASKBYVDMBOX_PARAM; 349 350 // for cmd MDrv_SYS_VIFWriteRegBitByVDMbox 351 typedef struct _SYS_VIFWRITEREGBITBYVDMBOX_PARAM 352 { 353 MS_U32 u32Reg; 354 MS_U8 bEnable; 355 MS_U8 u8Mask; 356 }SYS_VIFWRITEREGBITBYVDMBOX_PARAM, *PSYS_VIFWRITEREGBITBYVDMBOX_PARAM; 357 358 // for cmd MDrv_SYS_VIFReadByteByVDMbox 359 typedef struct _SYS_VIFREADBYTEBYVDMBOX_PARAM 360 { 361 MS_U32 u32Reg; 362 }SYS_VIFREADBYTEBYVDMBOX_PARAM, *PSYS_VIFREADBYTEBYVDMBOX_PARAM; 363 364 // for cmd MDrv_SYS_VIFRead2ByteByVDMbox 365 typedef struct _SYS_VIFREAD2BYTEBYVDMBOX_PARAM 366 { 367 MS_U32 u32Reg; 368 }SYS_VIFREAD2BYTEBYVDMBOX_PARAM, *PSYS_VIFREAD2BYTEBYVDMBOX_PARAM; 369 370 // for cmd MDrv_SYS_WDTEnable 371 typedef struct _SYS_WDTENABLE_PARAM 372 { 373 MS_BOOL bEnable; 374 }SYS_WDTENABLE_PARAM, *PSYS_WDTENABLE_PARAM; 375 376 // for cmd MDrv_SYS_WDTSetTime 377 typedef struct _SYS_WDTSETTIME_PARAM 378 { 379 MS_U32 u32Ms; 380 }SYS_WDTSETTIME_PARAM, *PSYS_WDTSETTIME_PARAM; 381 382 // for cmd MDrv_SYS_SetAGCPadMux 383 typedef struct _SYS_SETAGCPADMUX_PARAM 384 { 385 SYS_AGC_PAD_SET eAgcPadMux; 386 }SYS_SETAGCPADMUX_PARAM, *PSYS_SETAGCPADMUX_PARAM; 387 388 // for cmd MDrv_SYS_SetPCMCardDetectMode 389 typedef struct _SYS_SETPCMCARDDETECT_PARAM 390 { 391 SYS_PCM_CD_MODE ePCMCDMode; 392 }SYS_SETPCMCARDDETECT_PARAM, *PSYS_SETPCMCARDDETECT_PARAM; 393 394 // for cmd MDrv_SYS_SetPadMux 395 typedef struct _SYS_SETPADMUX_PARAM 396 { 397 SYS_PAD_MUX_SET ePadMuxType; 398 SYS_PAD_SEL ePadSel; 399 }SYS_SETPADMUX_PARAM, *PSYS_SETPADMUX_PARAM; 400 401 // for cmd MDrv_SYS_SetTSOutClockPhase 402 typedef struct _SYS_SETTSOUTCLOCKPHASE_PARAM 403 { 404 MS_U16 u16Val; 405 }SYS_SETTSOUTCLOCKPHASE_PARAM, *PSYS_SETTSOUTCLOCKPHASE_PARAM; 406 407 // for cmd MDrv_SYS_Query 408 typedef struct _SYS_QUERY_PARAM 409 { 410 E_SYS_QUERY id; 411 }SYS_QUERY_PARAM, *PSYS_QUERY_PARAM; 412 413 #ifdef _SYS_DAC_GAIN_CTRL 414 // for cmd MDrv_SYS_EnhanceDACGain 415 typedef struct _SYS_ENHANCEDACGAIN_PARAM 416 { 417 MS_U8 u8DAC_ID; 418 MS_BOOL bEnable; 419 }SYS_ENHANCEDACGAIN_PARAM, *PSYS_ENHANCEDACGAIN_PARAM; 420 #endif 421 422 typedef struct _SYS_IO_PROC 423 { 424 MS_BOOL (*SysSwI2CReadBytes)(MS_U16, MS_U8, MS_U8*, MS_U16, MS_U8*); 425 MS_BOOL (*SysSwI2CWriteBytes)(MS_U16, MS_U8, MS_U8*, MS_U16, MS_U8*); 426 } SYS_IO_PROC; 427 428 ////////////////////////////////////// 429 // function for utopia2.0 //////////// 430 ////////////////////////////////////// 431 void SYSRegisterToUtopia(FUtopiaOpen ModuleType); 432 MS_U32 SYSOpen(void** pInstance, void* pAttribute); 433 MS_U32 SYSClose(void* pInstance); 434 MS_U32 SYSIoctl(void* pInstance, MS_U32 u32Cmd, void *pArgs); 435 436 // Resource_Private 437 typedef struct _SYS_RESOURCE_PRIVATE 438 { 439 MS_U32 bDvfsInitFlag; 440 // MS_U32 Dummy; 441 }SYS_RESOURCE_PRIVATE; 442 443 #ifdef __cplusplus 444 } 445 #endif 446 447 #endif // _DRVSYS_PRIV_H_ 448