1/*
2 * OMX offloading remote processor driver
3 */
4
5#ifndef RPMSG_OMX_DEFS_H
6#define RPMSG_OMX_DEFS_H
7
8#include <linux/rpmsg_omx.h>
9
10//AD - from SDO
11/*
12 *  ======== OMX_Packet ========
13 *
14 *  OMX_Packet.desc: the package descriptor field. Note that the
15 *  format is different for out-bound and in-bound messages.
16 *
17 *  out-bound message descriptor
18 *
19 *  Bits    Description
20 *  --------------------------------------------------------------------
21 *  [15:12] reserved
22 *  [11:8]  omx message type
23 *  [7:0]   omx client protocol version
24 *
25 *
26 *  in-bound message descriptor
27 *
28 *  Bits    Description
29 *  --------------------------------------------------------------------
30 *  [15:12] reserved
31 *  [11:8]  omx server status code
32 *  [7:0]   omx server protocol version
33 */
34/* message type values */
35#define OMX_DESC_MSG        0x1       // exec sync command
36#define OMX_DESC_SYM_ADD    0x3       // symbol add message
37#define OMX_DESC_SYM_IDX    0x4       // query symbox index
38#define OMX_DESC_CMD        0x5       // exec non-blocking command.
39#define OMX_DESC_TYPE_MASK  0x0F00    // field mask
40#define OMX_DESC_TYPE_SHIFT 8         // field shift width
41
42/* omx server status codes must be 0 - 15, it has to fit in a 4-bit field */
43#define OMXSERVER_STATUS_SUCCESS          ((uint16_t)0) // success
44#define OMXSERVER_STATUS_INVALID_FXN      ((uint16_t)1) // invalid fxn index
45#define OMXSERVER_STATUS_SYMBOL_NOT_FOUND ((uint16_t)2) // symbol not found
46#define OMXSERVER_STATUS_INVALID_MSG_TYPE ((uint16_t)3) // invalid msg type
47#define OMXSERVER_STATUS_MSG_FXN_ERR      ((uint16_t)4) // msg function error
48#define OMXSERVER_STATUS_ERROR            ((uint16_t)5) // general failure
49#define OMXSERVER_STATUS_UNPROCESSED      ((uint16_t)6) // unprocessed message
50
51#define OMX_POOLID_JOBID_DEFAULT (0x00008000)
52#define OMX_INVALIDFXNIDX ((uint32_t)(0xFFFFFFFF))
53
54#endif /* RPMSG_OMX_DEFS_H */
55