1*0aeed3e9SJustin Hibbits /****************************************************************************** 2*0aeed3e9SJustin Hibbits 3*0aeed3e9SJustin Hibbits � 1995-2003, 2004, 2005-2011 Freescale Semiconductor, Inc. 4*0aeed3e9SJustin Hibbits All rights reserved. 5*0aeed3e9SJustin Hibbits 6*0aeed3e9SJustin Hibbits This is proprietary source code of Freescale Semiconductor Inc., 7*0aeed3e9SJustin Hibbits and its use is subject to the NetComm Device Drivers EULA. 8*0aeed3e9SJustin Hibbits The copyright notice above does not evidence any actual or intended 9*0aeed3e9SJustin Hibbits publication of such source code. 10*0aeed3e9SJustin Hibbits 11*0aeed3e9SJustin Hibbits ALTERNATIVELY, redistribution and use in source and binary forms, with 12*0aeed3e9SJustin Hibbits or without modification, are permitted provided that the following 13*0aeed3e9SJustin Hibbits conditions are met: 14*0aeed3e9SJustin Hibbits * Redistributions of source code must retain the above copyright 15*0aeed3e9SJustin Hibbits notice, this list of conditions and the following disclaimer. 16*0aeed3e9SJustin Hibbits * Redistributions in binary form must reproduce the above copyright 17*0aeed3e9SJustin Hibbits notice, this list of conditions and the following disclaimer in the 18*0aeed3e9SJustin Hibbits documentation and/or other materials provided with the distribution. 19*0aeed3e9SJustin Hibbits * Neither the name of Freescale Semiconductor nor the 20*0aeed3e9SJustin Hibbits names of its contributors may be used to endorse or promote products 21*0aeed3e9SJustin Hibbits derived from this software without specific prior written permission. 22*0aeed3e9SJustin Hibbits 23*0aeed3e9SJustin Hibbits THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY 24*0aeed3e9SJustin Hibbits EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 25*0aeed3e9SJustin Hibbits WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 26*0aeed3e9SJustin Hibbits DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY 27*0aeed3e9SJustin Hibbits DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 28*0aeed3e9SJustin Hibbits (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29*0aeed3e9SJustin Hibbits LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 30*0aeed3e9SJustin Hibbits ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31*0aeed3e9SJustin Hibbits (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 32*0aeed3e9SJustin Hibbits SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33*0aeed3e9SJustin Hibbits * 34*0aeed3e9SJustin Hibbits 35*0aeed3e9SJustin Hibbits **************************************************************************/ 36*0aeed3e9SJustin Hibbits /**************************************************************************//** 37*0aeed3e9SJustin Hibbits @File bm_ipc.h 38*0aeed3e9SJustin Hibbits 39*0aeed3e9SJustin Hibbits @Description BM Inter-Partition prototypes, structures and definitions. 40*0aeed3e9SJustin Hibbits *//***************************************************************************/ 41*0aeed3e9SJustin Hibbits #ifndef __BM_IPC_H 42*0aeed3e9SJustin Hibbits #define __BM_IPC_H 43*0aeed3e9SJustin Hibbits 44*0aeed3e9SJustin Hibbits #include "error_ext.h" 45*0aeed3e9SJustin Hibbits #include "std_ext.h" 46*0aeed3e9SJustin Hibbits 47*0aeed3e9SJustin Hibbits 48*0aeed3e9SJustin Hibbits /**************************************************************************//** 49*0aeed3e9SJustin Hibbits @Group BM_grp Frame Manager API 50*0aeed3e9SJustin Hibbits 51*0aeed3e9SJustin Hibbits @Description BM API functions, definitions and enums 52*0aeed3e9SJustin Hibbits 53*0aeed3e9SJustin Hibbits @{ 54*0aeed3e9SJustin Hibbits *//***************************************************************************/ 55*0aeed3e9SJustin Hibbits 56*0aeed3e9SJustin Hibbits /**************************************************************************//** 57*0aeed3e9SJustin Hibbits @Group BM_IPC_grp BM Inter-Partition messaging Unit 58*0aeed3e9SJustin Hibbits 59*0aeed3e9SJustin Hibbits @Description BM Inter-Partition messaging unit API definitions and enums. 60*0aeed3e9SJustin Hibbits 61*0aeed3e9SJustin Hibbits @{ 62*0aeed3e9SJustin Hibbits *//***************************************************************************/ 63*0aeed3e9SJustin Hibbits 64*0aeed3e9SJustin Hibbits #define BM_SET_POOL_THRESH 1 65*0aeed3e9SJustin Hibbits #define BM_UNSET_POOL_THRESH 2 66*0aeed3e9SJustin Hibbits #define BM_GET_COUNTER 3 67*0aeed3e9SJustin Hibbits #define BM_GET_REVISION 4 68*0aeed3e9SJustin Hibbits #define BM_FORCE_BPID 5 69*0aeed3e9SJustin Hibbits #define BM_PUT_BPID 6 70*0aeed3e9SJustin Hibbits #define BM_MASTER_IS_ALIVE 7 71*0aeed3e9SJustin Hibbits 72*0aeed3e9SJustin Hibbits #define BM_IPC_MAX_REPLY_BODY_SIZE 16 73*0aeed3e9SJustin Hibbits #define BM_IPC_MAX_REPLY_SIZE (BM_IPC_MAX_REPLY_BODY_SIZE + sizeof(uint32_t)) 74*0aeed3e9SJustin Hibbits #define BM_IPC_MAX_MSG_SIZE 30 75*0aeed3e9SJustin Hibbits 76*0aeed3e9SJustin Hibbits 77*0aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 78*0aeed3e9SJustin Hibbits #pragma pack(push,1) 79*0aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 80*0aeed3e9SJustin Hibbits #define MEM_MAP_START 81*0aeed3e9SJustin Hibbits 82*0aeed3e9SJustin Hibbits typedef _Packed struct t_BmIpcMsg 83*0aeed3e9SJustin Hibbits { 84*0aeed3e9SJustin Hibbits uint32_t msgId; 85*0aeed3e9SJustin Hibbits uint8_t msgBody[BM_IPC_MAX_MSG_SIZE]; 86*0aeed3e9SJustin Hibbits } _PackedType t_BmIpcMsg; 87*0aeed3e9SJustin Hibbits 88*0aeed3e9SJustin Hibbits typedef _Packed struct t_BmIpcReply 89*0aeed3e9SJustin Hibbits { 90*0aeed3e9SJustin Hibbits uint32_t error; 91*0aeed3e9SJustin Hibbits uint8_t replyBody[BM_IPC_MAX_REPLY_BODY_SIZE]; 92*0aeed3e9SJustin Hibbits } _PackedType t_BmIpcReply; 93*0aeed3e9SJustin Hibbits 94*0aeed3e9SJustin Hibbits typedef _Packed struct t_BmIpcPoolThreshParams 95*0aeed3e9SJustin Hibbits { 96*0aeed3e9SJustin Hibbits uint8_t bpid; /**< IN */ 97*0aeed3e9SJustin Hibbits uint32_t thresholds[MAX_DEPLETION_THRESHOLDS]; /**< IN */ 98*0aeed3e9SJustin Hibbits } _PackedType t_BmIpcPoolThreshParams; 99*0aeed3e9SJustin Hibbits 100*0aeed3e9SJustin Hibbits typedef _Packed struct t_BmIpcGetCounter 101*0aeed3e9SJustin Hibbits { 102*0aeed3e9SJustin Hibbits uint8_t bpid; /**< IN */ 103*0aeed3e9SJustin Hibbits uint32_t enumId; /**< IN */ 104*0aeed3e9SJustin Hibbits } _PackedType t_BmIpcGetCounter; 105*0aeed3e9SJustin Hibbits 106*0aeed3e9SJustin Hibbits typedef _Packed struct t_BmIpcBpidParams 107*0aeed3e9SJustin Hibbits { 108*0aeed3e9SJustin Hibbits uint8_t bpid; /**< IN */ 109*0aeed3e9SJustin Hibbits } _PackedType t_BmIpcBpidParams; 110*0aeed3e9SJustin Hibbits 111*0aeed3e9SJustin Hibbits typedef _Packed struct t_BmIpcRevisionInfo { 112*0aeed3e9SJustin Hibbits uint8_t majorRev; /**< Major revision */ 113*0aeed3e9SJustin Hibbits uint8_t minorRev; /**< Minor revision */ 114*0aeed3e9SJustin Hibbits } _PackedType t_BmIpcRevisionInfo; 115*0aeed3e9SJustin Hibbits 116*0aeed3e9SJustin Hibbits #define MEM_MAP_END 117*0aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 118*0aeed3e9SJustin Hibbits #pragma pack(pop) 119*0aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 120*0aeed3e9SJustin Hibbits 121*0aeed3e9SJustin Hibbits /** @} */ /* end of BM_IPC_grp group */ 122*0aeed3e9SJustin Hibbits /** @} */ /* end of BM_grp group */ 123*0aeed3e9SJustin Hibbits 124*0aeed3e9SJustin Hibbits 125*0aeed3e9SJustin Hibbits #endif /* __BM_IPC_H */ 126