]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ipc/ipcdev.git/blob - src/ti/ipc/rpmsg/Rpmsg.h
OPBU Merge: Added MessageQCopy from omapzoom sysbios-rpmsg repo.
[ipc/ipcdev.git] / src / ti / ipc / rpmsg / Rpmsg.h
1 /*
2  * Copyright (c) 2012-2013, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * *  Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  *
12  * *  Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * *  Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /** ============================================================================
33  *  @file       Rpmsg.h
34  *
35  *  @brief      Rpmsg and related structures.
36  *
37  */
40 #ifndef ti_ipc_Rpmsg__include
41 #define ti_ipc_Rpmsg__include
43 #if defined (__cplusplus)
44 extern "C" {
45 #endif
48 enum Rpmsg_nsFlags {
49     RPMSG_NS_CREATE = 0,
50     RPMSG_NS_DESTROY = 1
51 };
53 #define RPMSG_NAME_SIZE 32
56 typedef struct Rpmsg_NsMsg {
57     char name[RPMSG_NAME_SIZE]; /* name of service including 0 */
58     UInt32 addr;                /* address of the service */
59     UInt32 flags;               /* see below */
60 } Rpmsg_NsMsg;
63 #define RPMSG_NAMESERVICE_PORT   53
65 /* Message Header: Must match rp_msg_hdr in virtio_rp_msg.h on Linux side. */
66 typedef struct Rpmsg_Header {
67     Bits32 srcAddr;                 /* source endpoint addr               */
68     Bits32 dstAddr;                 /* destination endpoint addr          */
69     Bits32 reserved;                /* reserved                           */
70     Bits16 dataLen;                 /* data length                        */
71     Bits16 flags;                   /* bitmask of different flags         */
72     UInt8  payload[];               /* Data payload                       */
73 } Rpmsg_Header;
75 typedef Rpmsg_Header *Rpmsg_Msg;
78 #if defined (__cplusplus)
79 }
80 #endif /* defined (__cplusplus) */
81 #endif /* ti_ipc_Rpmsg__include */