diff options
Diffstat (limited to 'middleware/multicore/open-amp/rpmsg/rpmsg.h')
-rw-r--r-- | middleware/multicore/open-amp/rpmsg/rpmsg.h | 55 |
1 files changed, 37 insertions, 18 deletions
diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg.h b/middleware/multicore/open-amp/rpmsg/rpmsg.h index 746b792..b0bc9b7 100644 --- a/middleware/multicore/open-amp/rpmsg/rpmsg.h +++ b/middleware/multicore/open-amp/rpmsg/rpmsg.h @@ -4,6 +4,7 @@ * Copyright (C) 2011 Texas Instruments, Inc. * Copyright (C) 2011 Google, Inc. * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -41,6 +42,9 @@ #define VIRTIO_RPMSG_F_NS 0 /* RP supports name service notifications */ #define RPMSG_NAME_SIZE 32 +#if defined(__IAR_SYSTEMS_ICC__) +__packed +#endif /** * struct rpmsg_hdr - common header for all rpmsg messages * @src: source address @@ -53,14 +57,33 @@ * Every message sent(/received) on the rpmsg bus begins with this header. */ struct rpmsg_hdr { - unsigned long src; - unsigned long dst; - unsigned long reserved; - unsigned short len; - unsigned short flags; - unsigned char data[0]; -} /*__attribute__((packed))*/; + unsigned long src; + unsigned long dst; + unsigned long reserved; + unsigned short len; + unsigned short flags; + unsigned char data[1]; +#if defined(__IAR_SYSTEMS_ICC__) +}; +#else +}__attribute__((packed)); +#endif + +#define RPMSG_DROP_HDR_FLAG 1 + + +struct rpmsg_hdr_reserved +{ + short int idx; + short int totlen; +}; + +#define RPMSG_BUF_HELD (1U << 31) + +#if defined(__IAR_SYSTEMS_ICC__) +__packed +#endif /** * struct rpmsg_ns_msg - dynamic name service announcement message * @name: name of remote service that is published @@ -77,7 +100,11 @@ struct rpmsg_ns_msg { char name[RPMSG_NAME_SIZE]; unsigned long addr; unsigned long flags; -} /*__attribute__((packed))*/; +#if defined(__IAR_SYSTEMS_ICC__) +}; +#else +}__attribute__((packed)); +#endif /** * enum rpmsg_ns_flags - dynamic name service announcement flags @@ -262,8 +289,9 @@ static inline int rpmsg_trysend(struct rpmsg_channel *rpdev, void *data, int len) { - if (!rpdev || !data) + if (!rpdev || !data) { return RPMSG_ERR_PARAM; + } return rpmsg_send_offchannel_raw(rpdev, rpdev->src, rpdev->dst, (char *)data, len, RPMSG_FALSE); } @@ -399,13 +427,4 @@ struct rpmsg_channel *rpmsg_create_channel(struct remote_device *rdev, char *nam */ void rpmsg_delete_channel(struct rpmsg_channel *rp_chnl); -/** - * - * rpmsg_handler - * - * Provide platform specific interrupt handler to application layer - * - */ -void rpmsg_handler(void); - #endif /* _RPMSG_H_ */ |