1*53ee8cc1Swenshuai.xi //<MStar Software> 2*53ee8cc1Swenshuai.xi //****************************************************************************** 3*53ee8cc1Swenshuai.xi // MStar Software 4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are 6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties. 8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all 9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written 10*53ee8cc1Swenshuai.xi // permission has been granted by MStar. 11*53ee8cc1Swenshuai.xi // 12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you 13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to 14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations: 15*53ee8cc1Swenshuai.xi // 16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar 17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof. 18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any 19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms. 20*53ee8cc1Swenshuai.xi // 21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be 22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar 23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties. 24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately 25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of 26*53ee8cc1Swenshuai.xi // such third party`s software. 27*53ee8cc1Swenshuai.xi // 28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s 30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any 31*53ee8cc1Swenshuai.xi // third party. 32*53ee8cc1Swenshuai.xi // 33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including 35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of 36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free 37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any 38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may 39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software. 40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or 41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or 42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use. 43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected 44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your 45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both 46*53ee8cc1Swenshuai.xi // parties in writing. 47*53ee8cc1Swenshuai.xi // 48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or 49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of 50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product 51*53ee8cc1Swenshuai.xi // ("Services"). 52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in 53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty 54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply. 55*53ee8cc1Swenshuai.xi // 56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels 57*53ee8cc1Swenshuai.xi // or otherwise: 58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service 59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification; 60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person, 61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance 62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or 63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right. 64*53ee8cc1Swenshuai.xi // 65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws 66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules. 67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally 68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association, 69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance 71*53ee8cc1Swenshuai.xi // with the said Rules. 72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall 73*53ee8cc1Swenshuai.xi // be English. 74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties. 75*53ee8cc1Swenshuai.xi // 76*53ee8cc1Swenshuai.xi //****************************************************************************** 77*53ee8cc1Swenshuai.xi //<MStar Software> 78*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 79*53ee8cc1Swenshuai.xi // 80*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc. 81*53ee8cc1Swenshuai.xi // All rights reserved. 82*53ee8cc1Swenshuai.xi // 83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained 84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of 85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence 86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient. 87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure, 88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling, 89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential 90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the 91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom. 92*53ee8cc1Swenshuai.xi // 93*53ee8cc1Swenshuai.xi //////////////////////////////////////////////////////////////////////////////// 94*53ee8cc1Swenshuai.xi 95*53ee8cc1Swenshuai.xi 96*53ee8cc1Swenshuai.xi /////////////////////////////////////////////////////////////////////////////////////////////////// 97*53ee8cc1Swenshuai.xi /// @file drvMBX.h 98*53ee8cc1Swenshuai.xi /// @brief MStar Mailbox Driver DDI 99*53ee8cc1Swenshuai.xi /// @author MStar Semiconductor Inc. 100*53ee8cc1Swenshuai.xi /////////////////////////////////////////////////////////////////////////////////////////////////// 101*53ee8cc1Swenshuai.xi 102*53ee8cc1Swenshuai.xi /*! \defgroup G_MBX MBX interface 103*53ee8cc1Swenshuai.xi \ingroup G_PERIPHERAL 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi \brief 106*53ee8cc1Swenshuai.xi 107*53ee8cc1Swenshuai.xi This drvMBX.h provided function for one processor to send a message to another processor, also 108*53ee8cc1Swenshuai.xi receive messages from others processor. 109*53ee8cc1Swenshuai.xi 110*53ee8cc1Swenshuai.xi <b>Features</b> 111*53ee8cc1Swenshuai.xi - Mailbox Initialize & De-initialize function 112*53ee8cc1Swenshuai.xi - Mailbox Class Register function 113*53ee8cc1Swenshuai.xi - Mailbox Send & Receive function 114*53ee8cc1Swenshuai.xi 115*53ee8cc1Swenshuai.xi <b> Operation Code Flow: </b> \n 116*53ee8cc1Swenshuai.xi -# MBX initialize with configuration. 117*53ee8cc1Swenshuai.xi -# Correct MBX class for specific thread. 118*53ee8cc1Swenshuai.xi -# Send MBX message. 119*53ee8cc1Swenshuai.xi -# Receive MBX message. 120*53ee8cc1Swenshuai.xi 121*53ee8cc1Swenshuai.xi \defgroup G_MBX_INIT Initialization Task relative 122*53ee8cc1Swenshuai.xi \ingroup G_MBX 123*53ee8cc1Swenshuai.xi \defgroup G_MBX_COMMON Common Task relative 124*53ee8cc1Swenshuai.xi \ingroup G_MBX 125*53ee8cc1Swenshuai.xi \defgroup G_MBX_CONTROL Control relative 126*53ee8cc1Swenshuai.xi \ingroup G_MBX 127*53ee8cc1Swenshuai.xi \defgroup G_MBX_OTHER other relative 128*53ee8cc1Swenshuai.xi \ingroup G_MBX 129*53ee8cc1Swenshuai.xi \defgroup G_MBX_ToBeModified MBX api to be modified 130*53ee8cc1Swenshuai.xi \ingroup G_MBX 131*53ee8cc1Swenshuai.xi \defgroup G_MBX_ToBeRemove MBX api to be removed 132*53ee8cc1Swenshuai.xi \ingroup G_MBX 133*53ee8cc1Swenshuai.xi */ 134*53ee8cc1Swenshuai.xi 135*53ee8cc1Swenshuai.xi #ifndef _DRV_MBX_H 136*53ee8cc1Swenshuai.xi #define _DRV_MBX_H 137*53ee8cc1Swenshuai.xi 138*53ee8cc1Swenshuai.xi #ifdef _DRV_MBX_C 139*53ee8cc1Swenshuai.xi #define INTERFACE 140*53ee8cc1Swenshuai.xi #else 141*53ee8cc1Swenshuai.xi #define INTERFACE extern 142*53ee8cc1Swenshuai.xi #endif 143*53ee8cc1Swenshuai.xi 144*53ee8cc1Swenshuai.xi 145*53ee8cc1Swenshuai.xi 146*53ee8cc1Swenshuai.xi #ifdef __cplusplus 147*53ee8cc1Swenshuai.xi extern "C" 148*53ee8cc1Swenshuai.xi { 149*53ee8cc1Swenshuai.xi #endif 150*53ee8cc1Swenshuai.xi 151*53ee8cc1Swenshuai.xi //============================================================================= 152*53ee8cc1Swenshuai.xi // Includs 153*53ee8cc1Swenshuai.xi //============================================================================= 154*53ee8cc1Swenshuai.xi #include "MsTypes.h" 155*53ee8cc1Swenshuai.xi #include "MsDevice.h" 156*53ee8cc1Swenshuai.xi 157*53ee8cc1Swenshuai.xi 158*53ee8cc1Swenshuai.xi //============================================================================= 159*53ee8cc1Swenshuai.xi // Defines & Macros 160*53ee8cc1Swenshuai.xi //============================================================================= 161*53ee8cc1Swenshuai.xi /// Version string. 162*53ee8cc1Swenshuai.xi #define MBX_DRV_VERSION /* Character String for DRV/API version */ \ 163*53ee8cc1Swenshuai.xi MSIF_TAG, /* 'MSIF' */ \ 164*53ee8cc1Swenshuai.xi MSIF_CLASS, /* '00' */ \ 165*53ee8cc1Swenshuai.xi MSIF_CUS, /* 0x6666 */ \ 166*53ee8cc1Swenshuai.xi MSIF_MOD, /* 0x0000 */ \ 167*53ee8cc1Swenshuai.xi MSIF_CHIP, \ 168*53ee8cc1Swenshuai.xi MSIF_CPU, \ 169*53ee8cc1Swenshuai.xi {'M','B','X','_'}, /* IP__ */ \ 170*53ee8cc1Swenshuai.xi {'0','2'}, /* 0.0 ~ Z.Z */ \ 171*53ee8cc1Swenshuai.xi {'0','4'}, /* 00 ~ 99 */ \ 172*53ee8cc1Swenshuai.xi {'0','0','5','4','6','1','0','2'}, /* CL# */ \ 173*53ee8cc1Swenshuai.xi MSIF_OS 174*53ee8cc1Swenshuai.xi 175*53ee8cc1Swenshuai.xi /// Max Mailbox Queque Size for one Mail Class 176*53ee8cc1Swenshuai.xi #define MAX_MBX_QUEUE_SIZE 256 177*53ee8cc1Swenshuai.xi /// Max Parameter Size ( in bytes ) for one Mail Message 178*53ee8cc1Swenshuai.xi #define MAX_MBX_PARAM_SIZE 10 179*53ee8cc1Swenshuai.xi /// Max Size ( in bytes ) for SetInformation 180*53ee8cc1Swenshuai.xi #define MAX_MBX_INFORMATION_SIZE 8 181*53ee8cc1Swenshuai.xi 182*53ee8cc1Swenshuai.xi /// Define The Queue Status of The Mail Class queue 183*53ee8cc1Swenshuai.xi /// Queue overflow: new incoming mail will be skip 184*53ee8cc1Swenshuai.xi #define MBX_STATUS_QUEUE_OVER_FLOW 0x00000001 185*53ee8cc1Swenshuai.xi /// Queque Has Instant Msg: there has new instant message in queue 186*53ee8cc1Swenshuai.xi #define MBX_STATUS_QUEUE_HAS_INSTANT_MSG 0x00000002 187*53ee8cc1Swenshuai.xi /// Queue Has Normal Msg: there has new normal message in queue 188*53ee8cc1Swenshuai.xi #define MBX_STATUS_QUEUE_HAS_NORMAL_MSG 0x00000004 189*53ee8cc1Swenshuai.xi 190*53ee8cc1Swenshuai.xi /// Define The Flags for Receive Message from Message Queue 191*53ee8cc1Swenshuai.xi /// Recv any message class, this means, the targetClass is useless if this bit is set 192*53ee8cc1Swenshuai.xi //#define MBX_CHECK_ALL_MSG_CLASS 0x00000001 193*53ee8cc1Swenshuai.xi /// Check Instant Message 194*53ee8cc1Swenshuai.xi #define MBX_CHECK_INSTANT_MSG 0x00000002 195*53ee8cc1Swenshuai.xi /// Check Normal Message 196*53ee8cc1Swenshuai.xi #define MBX_CHECK_NORMAL_MSG 0x00000004 197*53ee8cc1Swenshuai.xi /// Recv any message class, this means, the targetClass is useless if this bit is set 198*53ee8cc1Swenshuai.xi #define MBX_CHECK_ALL_MSG_CLASS (MBX_CHECK_INSTANT_MSG|MBX_CHECK_NORMAL_MSG) 199*53ee8cc1Swenshuai.xi /// Block Receive function call until time out if no message available 200*53ee8cc1Swenshuai.xi #define MBX_CHECK_BLOCK_RECV 0x80000000 201*53ee8cc1Swenshuai.xi 202*53ee8cc1Swenshuai.xi /// Define debug level: 203*53ee8cc1Swenshuai.xi /// Default Debug Level: No any Debug Message Print out 204*53ee8cc1Swenshuai.xi #define MBX_DBG_LEVEL_NONE 0x00 205*53ee8cc1Swenshuai.xi /// HAL Debug Level: Print out MBX Hal Error/Warning 206*53ee8cc1Swenshuai.xi #define MBX_DBG_LEVEL_MBXHAL 0x01 207*53ee8cc1Swenshuai.xi /// Message Queue Debug Level: Print out Message Queue Error/Warning 208*53ee8cc1Swenshuai.xi #define MBX_DBG_LEVEL_MSGQ 0x02 209*53ee8cc1Swenshuai.xi /// Interrupt HAL Debug Level: Print out Inerrut HAL Error/Warning 210*53ee8cc1Swenshuai.xi #define MBX_DBG_LEVEL_MBXINT 0x04 211*53ee8cc1Swenshuai.xi /// Critical Debug Level: Print out any Critical Error/Warning 212*53ee8cc1Swenshuai.xi #define MBX_DBG_LEVEL_CRITICAL 0x08 213*53ee8cc1Swenshuai.xi /// All Debug Level: Print out any Error/Wanring, That is, All above Debug Level Errors/Warnings 214*53ee8cc1Swenshuai.xi #define MBX_DBG_LEVEL_ALL 0x0F 215*53ee8cc1Swenshuai.xi 216*53ee8cc1Swenshuai.xi //============================================================================= 217*53ee8cc1Swenshuai.xi // Type and Structure Declaration 218*53ee8cc1Swenshuai.xi //============================================================================= 219*53ee8cc1Swenshuai.xi 220*53ee8cc1Swenshuai.xi //============================================================================= 221*53ee8cc1Swenshuai.xi // Enums 222*53ee8cc1Swenshuai.xi 223*53ee8cc1Swenshuai.xi /// Mail Message Class Defines 224*53ee8cc1Swenshuai.xi typedef enum 225*53ee8cc1Swenshuai.xi { 226*53ee8cc1Swenshuai.xi /// MBX_CLASS_SYSTEM 227*53ee8cc1Swenshuai.xi E_MBX_CLASS_SYSTEM = 0, 228*53ee8cc1Swenshuai.xi /// MBX_CLASS_INPUT 229*53ee8cc1Swenshuai.xi E_MBX_CLASS_INPUT = 1, 230*53ee8cc1Swenshuai.xi /// MBX_CLASS_TSP 231*53ee8cc1Swenshuai.xi E_MBX_CLASS_TSP = 2, 232*53ee8cc1Swenshuai.xi /// MBX_CLASS_CHANNEL 233*53ee8cc1Swenshuai.xi E_MBX_CLASS_CHANNEL = 3, 234*53ee8cc1Swenshuai.xi /// MBX_CLASS_MEMORY 235*53ee8cc1Swenshuai.xi E_MBX_CLASS_MEMORY = 4, 236*53ee8cc1Swenshuai.xi /// MBX_CLASS_MPEG 237*53ee8cc1Swenshuai.xi E_MBX_CLASS_MPEG = 5, 238*53ee8cc1Swenshuai.xi /// MBX_CLASS_VIDEO 239*53ee8cc1Swenshuai.xi E_MBX_CLASS_VIDEO = 6, 240*53ee8cc1Swenshuai.xi /// MBX_CLASS_AUDIO 241*53ee8cc1Swenshuai.xi E_MBX_CLASS_AUDIO = 7, 242*53ee8cc1Swenshuai.xi /// MBX_CLASS_MHEG5_STATE 243*53ee8cc1Swenshuai.xi E_MBX_CLASS_MHEG5_STATE = 8, 244*53ee8cc1Swenshuai.xi /// MBX_CLASS_MVF 245*53ee8cc1Swenshuai.xi E_MBX_CLASS_MVF = 9, 246*53ee8cc1Swenshuai.xi /// MBX_CLASS_GE 247*53ee8cc1Swenshuai.xi E_MBX_CLASS_GE = 10, 248*53ee8cc1Swenshuai.xi /// MBX_CLASS_CI 249*53ee8cc1Swenshuai.xi E_MBX_CLASS_CI = 11, //rename unused "MBX_CLASS_NUM" as "MBX_CLASS_CI" for CIMHEG usage 250*53ee8cc1Swenshuai.xi /// MBX_CLASS_TEST 251*53ee8cc1Swenshuai.xi E_MBX_CLASS_TEST = 12, 252*53ee8cc1Swenshuai.xi /// MBX_CLASS_MAD 253*53ee8cc1Swenshuai.xi E_MBX_CLASS_MAD = 13, 254*53ee8cc1Swenshuai.xi 255*53ee8cc1Swenshuai.xi /// MBX_CLASS_MPEG2_FS 256*53ee8cc1Swenshuai.xi E_MBX_CLASS_MPEG2_FS = 14, 257*53ee8cc1Swenshuai.xi /// MBX_CLASS_MPEG2 258*53ee8cc1Swenshuai.xi E_MBX_CLASS_MPEG2 = 15, 259*53ee8cc1Swenshuai.xi /// MBX_CLASS_BMP 260*53ee8cc1Swenshuai.xi E_MBX_CLASS_BMP = 16, 261*53ee8cc1Swenshuai.xi /// MBX_CLASS_PNG 262*53ee8cc1Swenshuai.xi E_MBX_CLASS_PNG = 17, 263*53ee8cc1Swenshuai.xi /// MBX_CLASS_JPEG 264*53ee8cc1Swenshuai.xi E_MBX_CLASS_JPEG = 18, 265*53ee8cc1Swenshuai.xi /// MBX_CLASS_MJPEG 266*53ee8cc1Swenshuai.xi E_MBX_CLASS_MJPEG = 19, 267*53ee8cc1Swenshuai.xi /// MBX_CLASS_JPEG_ENCODER 268*53ee8cc1Swenshuai.xi E_MBX_CLASS_JPEG_ENCODER = 20, 269*53ee8cc1Swenshuai.xi /// 270*53ee8cc1Swenshuai.xi E_MBX_CLASS_VDPLAYER_FS = 21, 271*53ee8cc1Swenshuai.xi /// MBX_CLASS_VDPLAYER_FS 272*53ee8cc1Swenshuai.xi E_MBX_CLASS_VDPLAYER = 22, 273*53ee8cc1Swenshuai.xi /// MBX_CLASS_RMPLAYER_FS 274*53ee8cc1Swenshuai.xi E_MBX_CLASS_RMPLAYER_FS = 23, 275*53ee8cc1Swenshuai.xi /// MBX_CLASS_RMPLAYER 276*53ee8cc1Swenshuai.xi E_MBX_CLASS_RMPLAYER = 24, 277*53ee8cc1Swenshuai.xi /// MBX_CLASS_TSPLAYER_FS 278*53ee8cc1Swenshuai.xi E_MBX_CLASS_TSPLAYER_FS = 25, 279*53ee8cc1Swenshuai.xi /// MBX_CLASS_TSPLAYER 280*53ee8cc1Swenshuai.xi E_MBX_CLASS_TSPLAYER = 26, 281*53ee8cc1Swenshuai.xi /// MBX_CLASS_LZSS 282*53ee8cc1Swenshuai.xi E_MBX_CLASS_LZSS = 27, 283*53ee8cc1Swenshuai.xi /// MBX_CLASS_CAPE 284*53ee8cc1Swenshuai.xi E_MBX_CLASS_CAPE = 28, 285*53ee8cc1Swenshuai.xi /// MBX_CLASS_CC 286*53ee8cc1Swenshuai.xi E_MBX_CLASS_CC = 29, 287*53ee8cc1Swenshuai.xi /// MBX_CLASS_DLNA 288*53ee8cc1Swenshuai.xi E_MBX_CLASS_DLNA = 30, 289*53ee8cc1Swenshuai.xi /// MBX_CLASS_DUMMY_LOOP 290*53ee8cc1Swenshuai.xi E_MBX_CLASS_DUMMY_LOOP = 31, 291*53ee8cc1Swenshuai.xi /// MBX_CLASS_CHAKRA_SUBSYS 292*53ee8cc1Swenshuai.xi E_MBX_CLASS_CHAKRA_SUBSYS = 32, 293*53ee8cc1Swenshuai.xi /// MBX_CLASS_FCNTL 294*53ee8cc1Swenshuai.xi E_MBX_CLASS_FCNTL = 33, 295*53ee8cc1Swenshuai.xi /// MBX_CLASS_IRKEY 296*53ee8cc1Swenshuai.xi E_MBX_CLASS_IRKEY = 34, 297*53ee8cc1Swenshuai.xi /// MBX_CLASS_BTPD 298*53ee8cc1Swenshuai.xi E_MBX_CLASS_BTPD = 35, 299*53ee8cc1Swenshuai.xi /// MBX_CLASS_OBAMA_CMD 300*53ee8cc1Swenshuai.xi E_MBX_CLASS_OBAMA_CMD = 36, 301*53ee8cc1Swenshuai.xi /// MBX_CLASS_OBAMA_APP 302*53ee8cc1Swenshuai.xi E_MBX_CLASS_OBAMA_APP = 37, 303*53ee8cc1Swenshuai.xi /// MBX_CLASS_KTV 304*53ee8cc1Swenshuai.xi E_MBX_CLASS_KTV = 38, 305*53ee8cc1Swenshuai.xi /// MBX_CLASS_CIPLUS 306*53ee8cc1Swenshuai.xi E_MBX_CLASS_CIPLUS = 39, 307*53ee8cc1Swenshuai.xi /// MBX_CLASS_PRINT_MESSAGE 308*53ee8cc1Swenshuai.xi E_MBX_CLASS_PRINT_MESSAGE = 40, 309*53ee8cc1Swenshuai.xi /// MBX_CLASS_SHWFS 310*53ee8cc1Swenshuai.xi E_MBX_CLASS_SHWFS = 41, 311*53ee8cc1Swenshuai.xi /// MBX_CLASS_AUTO_TEST 312*53ee8cc1Swenshuai.xi E_MBX_CLASS_AUTO_TEST = 42, 313*53ee8cc1Swenshuai.xi /// MBX_CLASS_STILLIMAGE_CMD_IO 314*53ee8cc1Swenshuai.xi E_MBX_CLASS_STILLIMAGE_CMD_IO = 43, 315*53ee8cc1Swenshuai.xi /// MBX_CLASS_STILLIMAGE_DATA_IO_FAST 316*53ee8cc1Swenshuai.xi E_MBX_CLASS_STILLIMAGE_DATA_IO_FAST = 44, 317*53ee8cc1Swenshuai.xi /// MBX_CLASS_MSTILLIMAGE_DATA_IO 318*53ee8cc1Swenshuai.xi E_MBX_CLASS_STILLIMAGE_DATA_IO = 45, 319*53ee8cc1Swenshuai.xi /// MBX_CLASS_NET_DEBUG 320*53ee8cc1Swenshuai.xi E_MBX_CLASS_NET_DEBUG = 46, 321*53ee8cc1Swenshuai.xi /// MBX_CLASS_PM_WAIT 322*53ee8cc1Swenshuai.xi E_MBX_CLASS_PM_WAIT = 47, 323*53ee8cc1Swenshuai.xi /// MBX_CLASS_PM_NOWAIT 324*53ee8cc1Swenshuai.xi E_MBX_CLASS_PM_NOWAIT = 48, 325*53ee8cc1Swenshuai.xi /// MBX_CLASS_IRKEY_NOWAIT 326*53ee8cc1Swenshuai.xi E_MBX_CLASS_IRKEY_NOWAIT = 49, 327*53ee8cc1Swenshuai.xi /// MBX_CLASS_SAR 328*53ee8cc1Swenshuai.xi E_MBX_CLASS_SAR = 50, 329*53ee8cc1Swenshuai.xi /// MBX_CLASS_SAR_NOWAIT 330*53ee8cc1Swenshuai.xi E_MBX_CLASS_SAR_NOWAIT = 51, 331*53ee8cc1Swenshuai.xi /// MBX_CLASS_SECUREBOOT_WAIT 332*53ee8cc1Swenshuai.xi E_MBX_CLASS_SECURE_WAIT = 52, 333*53ee8cc1Swenshuai.xi /// MBX_CLASS_SECUREBOOT_NOWAIT 334*53ee8cc1Swenshuai.xi E_MBX_CLASS_SECURE_NOWAIT = 53, 335*53ee8cc1Swenshuai.xi /// MBX_CLASS_FRC 336*53ee8cc1Swenshuai.xi E_MBX_CLASS_FRC = 54, 337*53ee8cc1Swenshuai.xi //MBX_CLASS_PM_PWM_WAIT 338*53ee8cc1Swenshuai.xi E_MBX_CLASS_PM_PWM_WAIT= 55, 339*53ee8cc1Swenshuai.xi //MBX_CLASS_PM_PWM_NOWAIT 340*53ee8cc1Swenshuai.xi E_MBX_CLASS_PM_PWM_NOWAIT= 56, 341*53ee8cc1Swenshuai.xi //E_MBX_CLASS_DYNAMIC_ID 342*53ee8cc1Swenshuai.xi E_MBX_CLASS_DYNAMIC_ID = 57, 343*53ee8cc1Swenshuai.xi //MBX_CLASS_QUERY_CLASS 344*53ee8cc1Swenshuai.xi E_MBX_CLASS_QUERY_CLASS = 58, 345*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_SECURE_WAIT =59, 346*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_SECURE_NOWAIT = 60, 347*53ee8cc1Swenshuai.xi //MBX_CLASS_CLEANBOOT_PNL_WAIT 348*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_PNL_WAIT= 61, 349*53ee8cc1Swenshuai.xi //MBX_CLASS_CLEANBOOT_PNL_NOWAIT 350*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_PNL_NOWAIT= 62, 351*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_LOGO_NOWAIT= 63, 352*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_MUSIC_NOWAIT= 64, 353*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_OSD_NOWAIT= 65, 354*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_HEARTBEAT_NOWAIT= 66, 355*53ee8cc1Swenshuai.xi E_MBX_CLASS_CB_CHECK_NOWAIT= 67, 356*53ee8cc1Swenshuai.xi /// Define the Number of Mail Class, It is very Import, must be at the end of the list! 357*53ee8cc1Swenshuai.xi //put the following two enum at the end of the list 358*53ee8cc1Swenshuai.xi E_MBX_CLASS_NUM, 359*53ee8cc1Swenshuai.xi /// The End NUmber of Max Class ID 360*53ee8cc1Swenshuai.xi E_MBX_CLASS_MAX = 0xFF 361*53ee8cc1Swenshuai.xi }MBX_Class; 362*53ee8cc1Swenshuai.xi 363*53ee8cc1Swenshuai.xi /// Mail Box Supported CPU ID Defins 364*53ee8cc1Swenshuai.xi typedef enum 365*53ee8cc1Swenshuai.xi { 366*53ee8cc1Swenshuai.xi /// CPU PM ID 367*53ee8cc1Swenshuai.xi E_MBX_CPU_PM = 0, 368*53ee8cc1Swenshuai.xi /// CPU AEON ID 369*53ee8cc1Swenshuai.xi E_MBX_CPU_AEON = 1, 370*53ee8cc1Swenshuai.xi /// CPU MIPS ID 371*53ee8cc1Swenshuai.xi E_MBX_CPU_MIPS = 2, 372*53ee8cc1Swenshuai.xi // CPU R2M (same as MIPS) 373*53ee8cc1Swenshuai.xi E_MBX_CPU_R2M = 2, 374*53ee8cc1Swenshuai.xi /// CPU MIPS VPE0 ID, T3 Only 375*53ee8cc1Swenshuai.xi E_MBX_CPU_MIPS_VPE0 = 2, 376*53ee8cc1Swenshuai.xi /// CPU MIPS VPE1 ID, T3 Only 377*53ee8cc1Swenshuai.xi E_MBX_CPU_MIPS_VPE1 = 3, 378*53ee8cc1Swenshuai.xi #if 1//frcr2_integration### 379*53ee8cc1Swenshuai.xi /// CPU FRC-R2 380*53ee8cc1Swenshuai.xi E_MBX_CPU_R2FRC = 4, 381*53ee8cc1Swenshuai.xi #endif 382*53ee8cc1Swenshuai.xi E_MBX_CPU_MAX, 383*53ee8cc1Swenshuai.xi }MBX_CPU_ID; 384*53ee8cc1Swenshuai.xi 385*53ee8cc1Swenshuai.xi /// Mail Box Supported CPU ID Defins 386*53ee8cc1Swenshuai.xi typedef enum 387*53ee8cc1Swenshuai.xi { 388*53ee8cc1Swenshuai.xi /// House Keeping Identifier 389*53ee8cc1Swenshuai.xi E_MBX_ROLE_HK = 0, 390*53ee8cc1Swenshuai.xi /// Co-Processer Identifier 391*53ee8cc1Swenshuai.xi E_MBX_ROLE_CP = 1, 392*53ee8cc1Swenshuai.xi /// PM Identifier 393*53ee8cc1Swenshuai.xi E_MBX_ROLE_PM = 2, 394*53ee8cc1Swenshuai.xi E_MBX_ROLE_AEON = 3, 395*53ee8cc1Swenshuai.xi #if 1//frcr2_integration### 396*53ee8cc1Swenshuai.xi /// FRC 397*53ee8cc1Swenshuai.xi E_MBX_ROLE_FRC = 4, 398*53ee8cc1Swenshuai.xi #endif 399*53ee8cc1Swenshuai.xi E_MBX_ROLE_MAX 400*53ee8cc1Swenshuai.xi }MBX_ROLE_ID; 401*53ee8cc1Swenshuai.xi 402*53ee8cc1Swenshuai.xi /// Mail Message Class Type Defines 403*53ee8cc1Swenshuai.xi typedef enum 404*53ee8cc1Swenshuai.xi { 405*53ee8cc1Swenshuai.xi /// Normal Message Class Type 406*53ee8cc1Swenshuai.xi E_MBX_MSG_TYPE_NORMAL = 0, 407*53ee8cc1Swenshuai.xi /// Instant Message Class Type 408*53ee8cc1Swenshuai.xi E_MBX_MSG_TYPE_INSTANT = 1 409*53ee8cc1Swenshuai.xi }MBX_MSG_Type; 410*53ee8cc1Swenshuai.xi 411*53ee8cc1Swenshuai.xi /// MB DDI return value 412*53ee8cc1Swenshuai.xi typedef enum 413*53ee8cc1Swenshuai.xi { 414*53ee8cc1Swenshuai.xi /// Success Call 415*53ee8cc1Swenshuai.xi E_MBX_SUCCESS = 0, 416*53ee8cc1Swenshuai.xi /// Error: Not Initialized 417*53ee8cc1Swenshuai.xi E_MBX_ERR_NOT_INITIALIZED = 1, 418*53ee8cc1Swenshuai.xi /// Error: No more Memory, Queue Memory Issue 419*53ee8cc1Swenshuai.xi E_MBX_ERR_NO_MORE_MEMORY = 2, 420*53ee8cc1Swenshuai.xi /// Error: class has been used by other APP 421*53ee8cc1Swenshuai.xi E_MBX_ERR_SLOT_BUSY = 3, 422*53ee8cc1Swenshuai.xi /// Error: class has been openned by this APP, you do not need to open it again 423*53ee8cc1Swenshuai.xi E_MBX_ERR_SLOT_AREADY_OPENNED = 4, 424*53ee8cc1Swenshuai.xi /// Error: class not registered yet 425*53ee8cc1Swenshuai.xi E_MBX_ERR_SLOT_NOT_OPENNED = 5, 426*53ee8cc1Swenshuai.xi /// Error: unknow cpu id 427*53ee8cc1Swenshuai.xi E_MBX_ERR_INVALID_CPU_ID = 6, 428*53ee8cc1Swenshuai.xi /// Error: invalid parameter 429*53ee8cc1Swenshuai.xi E_MBX_ERR_INVALID_PARAM = 7, 430*53ee8cc1Swenshuai.xi /// Error: peer cpu is peek Mail from Hardware, you can not send mail now 431*53ee8cc1Swenshuai.xi E_MBX_ERR_PEER_CPU_BUSY = 8, 432*53ee8cc1Swenshuai.xi /// Error: peer cpu do not alive, Mail never peek out, Need check peer cpu is alive or not 433*53ee8cc1Swenshuai.xi E_MBX_ERR_PEER_CPU_NOT_ALIVE = 9, 434*53ee8cc1Swenshuai.xi /// Error: peer cpu not initialized yet, not ready to receive mail message 435*53ee8cc1Swenshuai.xi E_MBX_ERR_PEER_CPU_NOTREADY = 10, 436*53ee8cc1Swenshuai.xi /// Error: peer cpu the dedicated class Overflow! 437*53ee8cc1Swenshuai.xi E_MBX_ERR_PEER_CPU_OVERFLOW = 11, 438*53ee8cc1Swenshuai.xi /// Error: the mail message has been fetched yet, there has no message in hardware 439*53ee8cc1Swenshuai.xi E_MBX_ERR_MSG_ALREADY_FETCHED = 12, 440*53ee8cc1Swenshuai.xi /// Error: time out with dedicated request 441*53ee8cc1Swenshuai.xi E_MBX_ERR_TIME_OUT = 13, 442*53ee8cc1Swenshuai.xi /// Error: no mail message in message queue 443*53ee8cc1Swenshuai.xi E_MBX_ERR_NO_MORE_MSG = 14, 444*53ee8cc1Swenshuai.xi /// Error: has mail message in queue when un-register mail class or DeInit MailBox Driver 445*53ee8cc1Swenshuai.xi E_MBX_ERR_HAS_MSG_PENDING = 15, 446*53ee8cc1Swenshuai.xi /// Error: not implemente yet for request 447*53ee8cc1Swenshuai.xi E_MBX_ERR_NOT_IMPLEMENTED = 16, 448*53ee8cc1Swenshuai.xi /// Error: unknow error, like system error 449*53ee8cc1Swenshuai.xi E_MBX_UNKNOW_ERROR = 0xFFFF 450*53ee8cc1Swenshuai.xi } MBX_Result; 451*53ee8cc1Swenshuai.xi 452*53ee8cc1Swenshuai.xi //============================================================================= 453*53ee8cc1Swenshuai.xi // Structurs 454*53ee8cc1Swenshuai.xi 455*53ee8cc1Swenshuai.xi /// Mail Message Define 456*53ee8cc1Swenshuai.xi typedef struct __attribute__((packed)) 457*53ee8cc1Swenshuai.xi { 458*53ee8cc1Swenshuai.xi /// Role ID, for send, this is the Mail Target, for receive, this is the Source which sent this message 459*53ee8cc1Swenshuai.xi MBX_ROLE_ID eRoleID; 460*53ee8cc1Swenshuai.xi /// Mail Message Type, Normal or Instant 461*53ee8cc1Swenshuai.xi MBX_MSG_Type eMsgType; 462*53ee8cc1Swenshuai.xi 463*53ee8cc1Swenshuai.xi /// Ctrl Byte in Mail Message 464*53ee8cc1Swenshuai.xi MS_U8 u8Ctrl; 465*53ee8cc1Swenshuai.xi /// @ref MBX_Class 466*53ee8cc1Swenshuai.xi MS_U8 u8MsgClass; //should be MBX_Class, for alignment let it be S8, gcc default sizeof(enum) is 4 bytes. 467*53ee8cc1Swenshuai.xi /// Command Index defined by Apps 468*53ee8cc1Swenshuai.xi MS_U8 u8Index; 469*53ee8cc1Swenshuai.xi /// Parameter Count 470*53ee8cc1Swenshuai.xi MS_U8 u8ParameterCount; 471*53ee8cc1Swenshuai.xi /// Parameters, Max Number @ref MAX_MBX_PARAM_SIZE 472*53ee8cc1Swenshuai.xi MS_U8 u8Parameters[MAX_MBX_PARAM_SIZE]; 473*53ee8cc1Swenshuai.xi /// Status 0 byte of Mail Message 474*53ee8cc1Swenshuai.xi MS_U8 u8S0; 475*53ee8cc1Swenshuai.xi /// Status 1 byte of Mail Message 476*53ee8cc1Swenshuai.xi MS_U8 u8S1; 477*53ee8cc1Swenshuai.xi }MBX_Msg; 478*53ee8cc1Swenshuai.xi 479*53ee8cc1Swenshuai.xi /// Mail Message Queue status 480*53ee8cc1Swenshuai.xi typedef struct __attribute__((packed)) 481*53ee8cc1Swenshuai.xi { 482*53ee8cc1Swenshuai.xi /// Mail message Queue status, 483*53ee8cc1Swenshuai.xi /// @ref MBX_STATUS_QUEUE_OVER_FLOW 484*53ee8cc1Swenshuai.xi /// @ref MBX_STATUS_QUEUE_HAS_INSTANT_MSG 485*53ee8cc1Swenshuai.xi /// @ref MBX_STATUS_QUEUE_HAS_NORMAL_MSG 486*53ee8cc1Swenshuai.xi MS_U32 status; 487*53ee8cc1Swenshuai.xi /// pended normal message count in class message queue 488*53ee8cc1Swenshuai.xi MS_U32 u32NormalMsgCount; 489*53ee8cc1Swenshuai.xi /// pended Instant message count in class message queue 490*53ee8cc1Swenshuai.xi MS_U32 u32InstantMsgCount; 491*53ee8cc1Swenshuai.xi }MBX_MSGQ_Status; 492*53ee8cc1Swenshuai.xi 493*53ee8cc1Swenshuai.xi /// MBX Driver Info 494*53ee8cc1Swenshuai.xi typedef struct __attribute__((packed)) 495*53ee8cc1Swenshuai.xi { 496*53ee8cc1Swenshuai.xi /// MBX HW Group Number 497*53ee8cc1Swenshuai.xi MS_U8 u8HWMBXGroupNum; 498*53ee8cc1Swenshuai.xi }MBX_DrvInfo; 499*53ee8cc1Swenshuai.xi 500*53ee8cc1Swenshuai.xi /// MBX Driver Status 501*53ee8cc1Swenshuai.xi typedef struct __attribute__((packed)) 502*53ee8cc1Swenshuai.xi { 503*53ee8cc1Swenshuai.xi /// MBX Driver is enabled or not 504*53ee8cc1Swenshuai.xi MS_BOOL bEnabled; 505*53ee8cc1Swenshuai.xi /// The reference Cnt with this driver: 506*53ee8cc1Swenshuai.xi MS_S32 s32RefCnt; 507*53ee8cc1Swenshuai.xi }MBX_DrvStatus; 508*53ee8cc1Swenshuai.xi 509*53ee8cc1Swenshuai.xi /// Type of Mail Message callback function Define 510*53ee8cc1Swenshuai.xi //typedef void (*MBX_QUEUE_STATUS_NOTIFY_FUNC)(MBX_Class eMsgClass, MBX_MSGQ_Status *pMsgQueueStatus); 511*53ee8cc1Swenshuai.xi typedef void (*MBX_MAIL_ARRIVE_NOTIFY_FUNC)( MBX_Msg *pMsg, MS_BOOL *pbAddToQueue); 512*53ee8cc1Swenshuai.xi 513*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 514*53ee8cc1Swenshuai.xi /// MOBF Encrypt 515*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_INIT 516*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 517*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 518*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 519*53ee8cc1Swenshuai.xi /// @return Others : Fail 520*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 521*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_Init(MBX_CPU_ID eHKCPU, MBX_ROLE_ID eHostRole, MS_U32 u32TimeoutMillSecs); 522*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 523*53ee8cc1Swenshuai.xi /// MOBF Encrypt 524*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_INIT 525*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 526*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 527*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 528*53ee8cc1Swenshuai.xi /// @return Others : Fail 529*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 530*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_DeInit(MS_BOOL bForceDiscardPendingMsg); 531*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 532*53ee8cc1Swenshuai.xi /// MOBF Encrypt 533*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 534*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 535*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 536*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 537*53ee8cc1Swenshuai.xi /// @return Others : Fail 538*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 539*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_RegisterMSG(MBX_Class eMsgClass, MS_U16 u16MsgQueueSize); 540*53ee8cc1Swenshuai.xi //INTERFACE MBX_Result MDrv_MBX_RegisterMSGWithCallBack(MBX_Class eMsgClass, MS_U16 u16MsgQueueSize, MBX_QUEUE_STATUS_NOTIFY_FUNC notifier); 541*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 542*53ee8cc1Swenshuai.xi /// MOBF Encrypt 543*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 544*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 545*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 546*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 547*53ee8cc1Swenshuai.xi /// @return Others : Fail 548*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 549*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_RegisterMSGWithCallBack(MBX_Class eMsgClass, MS_U16 u16MsgQueueSize, MBX_MAIL_ARRIVE_NOTIFY_FUNC notifier); 550*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 551*53ee8cc1Swenshuai.xi /// MOBF Encrypt 552*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 553*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 554*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 555*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 556*53ee8cc1Swenshuai.xi /// @return Others : Fail 557*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 558*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_UnRegisterMSG(MBX_Class eMsgClass, MS_BOOL bForceDiscardMsgQueue); 559*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 560*53ee8cc1Swenshuai.xi /// MOBF Encrypt 561*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 562*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 563*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 564*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 565*53ee8cc1Swenshuai.xi /// @return Others : Fail 566*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 567*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_ClearMSG(MBX_Class eMsgClass); 568*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 569*53ee8cc1Swenshuai.xi /// MOBF Encrypt 570*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_CONTROL 571*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 572*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 573*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 574*53ee8cc1Swenshuai.xi /// @return Others : Fail 575*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 576*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_SendMsg(MBX_Msg *pMsg); 577*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 578*53ee8cc1Swenshuai.xi /// MOBF Encrypt 579*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_CONTROL 580*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 581*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 582*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 583*53ee8cc1Swenshuai.xi /// @return Others : Fail 584*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 585*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_GetMsgQueueStatus(MBX_Class eTargetClass, MBX_MSGQ_Status *pMsgQueueStatus); 586*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 587*53ee8cc1Swenshuai.xi /// MOBF Encrypt 588*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_CONTROL 589*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 590*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 591*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 592*53ee8cc1Swenshuai.xi /// @return Others : Fail 593*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 594*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_RecvMsg(MBX_Class eTargetClass, MBX_Msg *pMsg, MS_U32 u32WaitMillSecs, MS_U32 u32Flag); 595*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 596*53ee8cc1Swenshuai.xi /// MOBF Encrypt 597*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_CONTROL 598*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 599*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 600*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 601*53ee8cc1Swenshuai.xi /// @return Others : Fail 602*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 603*53ee8cc1Swenshuai.xi // INTERFACE MBX_Result MDrv_MBX_CheckMsg(MBX_Class eTargetClass, MBX_Msg *pMsg, MS_U32 u32WaitMillSecs, MS_U32 u32Flag); 604*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 605*53ee8cc1Swenshuai.xi /// MOBF Encrypt 606*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_ToBeRemove 607*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 608*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 609*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 610*53ee8cc1Swenshuai.xi /// @return Others : Fail 611*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 612*53ee8cc1Swenshuai.xi // INTERFACE MBX_Result MDrv_MBX_SendMsgLoopback(MBX_Msg *pMsg, MBX_ROLE_ID eSrcRoleId); 613*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 614*53ee8cc1Swenshuai.xi /// MOBF Encrypt 615*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_CONTROL 616*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 617*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 618*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 619*53ee8cc1Swenshuai.xi /// @return Others : Fail 620*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 621*53ee8cc1Swenshuai.xi INTERFACE MBX_Result MDrv_MBX_Enable(MS_BOOL bEnable);//Enable receiving regisited messages in kernel 622*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 623*53ee8cc1Swenshuai.xi /// MOBF Encrypt 624*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_CONTROL 625*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 626*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 627*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 628*53ee8cc1Swenshuai.xi /// @return Others : Fail 629*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 630*53ee8cc1Swenshuai.xi // INTERFACE MBX_Result MDrv_MBX_RemoveLatestMsg(void); 631*53ee8cc1Swenshuai.xi //for FastBoot 632*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 633*53ee8cc1Swenshuai.xi /// MOBF Encrypt 634*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 635*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 636*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 637*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 638*53ee8cc1Swenshuai.xi /// @return Others : Fail 639*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 640*53ee8cc1Swenshuai.xi INTERFACE MS_U16 MDrv_MBX_SetPowerState(EN_POWER_MODE u16PowerState); 641*53ee8cc1Swenshuai.xi 642*53ee8cc1Swenshuai.xi // For Application Set/Get Information API: 643*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 644*53ee8cc1Swenshuai.xi /// MOBF Encrypt 645*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 646*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 647*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 648*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 649*53ee8cc1Swenshuai.xi /// @return Others : Fail 650*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 651*53ee8cc1Swenshuai.xi // INTERFACE MBX_Result MDrv_MBX_SetInformation(MBX_ROLE_ID eTargetRole, MS_U8 *pU8Info, MS_U8 u8Size); 652*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 653*53ee8cc1Swenshuai.xi /// MOBF Encrypt 654*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 655*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 656*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 657*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 658*53ee8cc1Swenshuai.xi /// @return Others : Fail 659*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 660*53ee8cc1Swenshuai.xi // INTERFACE MBX_Result MDrv_MBX_GetInformation(MBX_ROLE_ID eTargetRole, MS_U8 *pU8Info, MS_U8 u8Size); 661*53ee8cc1Swenshuai.xi 662*53ee8cc1Swenshuai.xi // For Debug & Version Control: 663*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 664*53ee8cc1Swenshuai.xi /// MOBF Encrypt 665*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 666*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 667*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 668*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 669*53ee8cc1Swenshuai.xi /// @return Others : Fail 670*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 671*53ee8cc1Swenshuai.xi INTERFACE void MDrv_MBX_SetDbgLevel(MS_U8 u8DbgLevel); 672*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 673*53ee8cc1Swenshuai.xi /// MOBF Encrypt 674*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 675*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 676*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 677*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 678*53ee8cc1Swenshuai.xi /// @return Others : Fail 679*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 680*53ee8cc1Swenshuai.xi // INTERFACE MS_BOOL MDrv_MBX_GetLibVer(const MSIF_Version **ppVersion); 681*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 682*53ee8cc1Swenshuai.xi /// MOBF Encrypt 683*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 684*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 685*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 686*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 687*53ee8cc1Swenshuai.xi /// @return Others : Fail 688*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 689*53ee8cc1Swenshuai.xi // INTERFACE MS_BOOL MDrv_MBX_GetInfo(MBX_DrvInfo *pMbxDrvInfo); 690*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 691*53ee8cc1Swenshuai.xi /// MOBF Encrypt 692*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 693*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 694*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 695*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 696*53ee8cc1Swenshuai.xi /// @return Others : Fail 697*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 698*53ee8cc1Swenshuai.xi INTERFACE MS_BOOL MDrv_MBX_GetStatus(MBX_DrvStatus *pMbxDrvStatus); 699*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 700*53ee8cc1Swenshuai.xi /// MOBF Encrypt 701*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_COMMON 702*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 703*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 704*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 705*53ee8cc1Swenshuai.xi /// @return Others : Fail 706*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 707*53ee8cc1Swenshuai.xi // INTERFACE void MDrv_MBX_SetCallDrvFlag(MS_BOOL bEnable); 708*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 709*53ee8cc1Swenshuai.xi /// MOBF Encrypt 710*53ee8cc1Swenshuai.xi /// @ingroup G_MBX_ToBeRemove 711*53ee8cc1Swenshuai.xi /// @param u32Key \b IN: Key 712*53ee8cc1Swenshuai.xi /// @param bEnable \b IN: TRUE/FLASE 713*53ee8cc1Swenshuai.xi /// @return DRVAESDMA_OK : Success 714*53ee8cc1Swenshuai.xi /// @return Others : Fail 715*53ee8cc1Swenshuai.xi //------------------------------------------------------------------------------------------------- 716*53ee8cc1Swenshuai.xi // INTERFACE MS_BOOL MDrv_MBX_GetCallDrvFlag(void); 717*53ee8cc1Swenshuai.xi 718*53ee8cc1Swenshuai.xi #undef INTERFACE 719*53ee8cc1Swenshuai.xi 720*53ee8cc1Swenshuai.xi 721*53ee8cc1Swenshuai.xi #ifdef __cplusplus 722*53ee8cc1Swenshuai.xi } 723*53ee8cc1Swenshuai.xi #endif 724*53ee8cc1Swenshuai.xi 725*53ee8cc1Swenshuai.xi #endif //_DRV_MBX_H 726*53ee8cc1Swenshuai.xi 727