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 QM_ipc.h 38*0aeed3e9SJustin Hibbits 39*0aeed3e9SJustin Hibbits @Description QM Inter-Partition prototypes, structures and definitions. 40*0aeed3e9SJustin Hibbits *//***************************************************************************/ 41*0aeed3e9SJustin Hibbits #ifndef __QM_IPC_H 42*0aeed3e9SJustin Hibbits #define __QM_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 QM_grp Frame Manager API 50*0aeed3e9SJustin Hibbits 51*0aeed3e9SJustin Hibbits @Description QM API functions, definitions and enums 52*0aeed3e9SJustin Hibbits 53*0aeed3e9SJustin Hibbits @{ 54*0aeed3e9SJustin Hibbits *//***************************************************************************/ 55*0aeed3e9SJustin Hibbits 56*0aeed3e9SJustin Hibbits /**************************************************************************//** 57*0aeed3e9SJustin Hibbits @Group QM_IPC_grp Qm Inter-Partition messaging Unit 58*0aeed3e9SJustin Hibbits 59*0aeed3e9SJustin Hibbits @Description QM Inter-Partition messaging unit API definitions and enums. 60*0aeed3e9SJustin Hibbits 61*0aeed3e9SJustin Hibbits @{ 62*0aeed3e9SJustin Hibbits *//***************************************************************************/ 63*0aeed3e9SJustin Hibbits 64*0aeed3e9SJustin Hibbits #define QM_FORCE_FQID 1 65*0aeed3e9SJustin Hibbits #define QM_PUT_FQID 2 66*0aeed3e9SJustin Hibbits #define QM_GET_COUNTER 3 67*0aeed3e9SJustin Hibbits #define QM_GET_SET_PORTAL_PARAMS 4 68*0aeed3e9SJustin Hibbits #define QM_GET_REVISION 5 69*0aeed3e9SJustin Hibbits #define QM_MASTER_IS_ALIVE 6 70*0aeed3e9SJustin Hibbits 71*0aeed3e9SJustin Hibbits #define QM_IPC_MAX_REPLY_BODY_SIZE 16 72*0aeed3e9SJustin Hibbits #define QM_IPC_MAX_REPLY_SIZE (QM_IPC_MAX_REPLY_BODY_SIZE + sizeof(uint32_t)) 73*0aeed3e9SJustin Hibbits #define QM_IPC_MAX_MSG_SIZE 30 74*0aeed3e9SJustin Hibbits 75*0aeed3e9SJustin Hibbits #if defined(__MWERKS__) && !defined(__GNUC__) 76*0aeed3e9SJustin Hibbits #pragma pack(push,1) 77*0aeed3e9SJustin Hibbits #endif /* defined(__MWERKS__) && ... */ 78*0aeed3e9SJustin Hibbits #define MEM_MAP_START 79*0aeed3e9SJustin Hibbits 80*0aeed3e9SJustin Hibbits typedef _Packed struct t_QmIpcMsg 81*0aeed3e9SJustin Hibbits { 82*0aeed3e9SJustin Hibbits uint32_t msgId; 83*0aeed3e9SJustin Hibbits uint8_t msgBody[QM_IPC_MAX_MSG_SIZE]; 84*0aeed3e9SJustin Hibbits } _PackedType t_QmIpcMsg; 85*0aeed3e9SJustin Hibbits 86*0aeed3e9SJustin Hibbits typedef _Packed struct t_QmIpcReply 87*0aeed3e9SJustin Hibbits { 88*0aeed3e9SJustin Hibbits uint32_t error; 89*0aeed3e9SJustin Hibbits uint8_t replyBody[QM_IPC_MAX_REPLY_BODY_SIZE]; 90*0aeed3e9SJustin Hibbits } _PackedType t_QmIpcReply; 91*0aeed3e9SJustin Hibbits 92*0aeed3e9SJustin Hibbits typedef _Packed struct t_QmIpcGetCounter 93*0aeed3e9SJustin Hibbits { 94*0aeed3e9SJustin Hibbits uint32_t enumId; /**< IN */ 95*0aeed3e9SJustin Hibbits } _PackedType t_QmIpcGetCounter; 96*0aeed3e9SJustin Hibbits 97*0aeed3e9SJustin Hibbits typedef _Packed struct t_QmIpcFqidParams 98*0aeed3e9SJustin Hibbits { 99*0aeed3e9SJustin Hibbits uint32_t fqid; /**< IN */ 100*0aeed3e9SJustin Hibbits uint32_t size; /**< IN */ 101*0aeed3e9SJustin Hibbits } _PackedType t_QmIpcFqidParams; 102*0aeed3e9SJustin Hibbits 103*0aeed3e9SJustin Hibbits typedef _Packed struct t_QmIpcPortalInitParams { 104*0aeed3e9SJustin Hibbits uint8_t portalId; /**< IN */ 105*0aeed3e9SJustin Hibbits uint8_t stashDestQueue; /**< IN */ 106*0aeed3e9SJustin Hibbits uint16_t liodn; /**< IN */ 107*0aeed3e9SJustin Hibbits uint16_t dqrrLiodn; /**< IN */ 108*0aeed3e9SJustin Hibbits uint16_t fdFqLiodn; /**< IN */ 109*0aeed3e9SJustin Hibbits } _PackedType t_QmIpcPortalInitParams; 110*0aeed3e9SJustin Hibbits 111*0aeed3e9SJustin Hibbits typedef _Packed struct t_QmIpcRevisionInfo { 112*0aeed3e9SJustin Hibbits uint8_t majorRev; /**< OUT: Major revision */ 113*0aeed3e9SJustin Hibbits uint8_t minorRev; /**< OUT: Minor revision */ 114*0aeed3e9SJustin Hibbits } _PackedType t_QmIpcRevisionInfo; 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 QM_IPC_grp group */ 122*0aeed3e9SJustin Hibbits /** @} */ /* end of QM_grp group */ 123*0aeed3e9SJustin Hibbits 124*0aeed3e9SJustin Hibbits 125*0aeed3e9SJustin Hibbits #endif /* __QM_IPC_H */ 126