MmRpc: updated to new Linux rpmsg_rpc.h API 3.10.00.08 3.20.00.00_eng
authorRamsey Harris <ramsey@ti.com>
Thu, 5 Sep 2013 19:51:40 +0000 (12:51 -0700)
committerChris Ring <cring@ti.com>
Thu, 5 Sep 2013 20:10:43 +0000 (13:10 -0700)
Two structures changed a field name from reserved to fd.

Also aligned the QNX copy of this header to match.

packages/ti/ipc/mm/MmRpc.c
qnx/src/ipc3x_dev/ti/syslink/inc/ti/ipc/rpmsg_rpc.h

index b9c7e61bfdae7d38e3d5e61abffa90169be44791..d33a13b84b6eb6cfc299b93d0435297b5b9ff3b8 100644 (file)
@@ -214,7 +214,7 @@ int MmRpc_call(MmRpc_Handle handle, MmRpc_FxnCtx *ctx, int32_t *ret)
                 rpfxn->params[i].size = param->param.scalar.size;
                 rpfxn->params[i].data = param->param.scalar.data;
                 rpfxn->params[i].base = 0;
-                rpfxn->params[i].reserved = 0;
+                rpfxn->params[i].fd = 0;
                 break;
 
             case MmRpc_ParamType_Ptr:
@@ -222,7 +222,7 @@ int MmRpc_call(MmRpc_Handle handle, MmRpc_FxnCtx *ctx, int32_t *ret)
                 rpfxn->params[i].size = param->param.ptr.size;
                 rpfxn->params[i].data = param->param.ptr.addr;
                 rpfxn->params[i].base = param->param.ptr.addr;
-                rpfxn->params[i].reserved = param->param.ptr.handle;
+                rpfxn->params[i].fd = (size_t)param->param.ptr.handle;
                 break;
 
             case MmRpc_ParamType_OffPtr:
@@ -231,7 +231,7 @@ int MmRpc_call(MmRpc_Handle handle, MmRpc_FxnCtx *ctx, int32_t *ret)
                 rpfxn->params[i].data = param->param.offPtr.base +
                         param->param.offPtr.offset;
                 rpfxn->params[i].base = param->param.offPtr.base;
-                rpfxn->params[i].reserved = param->param.offPtr.handle;
+                rpfxn->params[i].fd = (size_t)param->param.offPtr.handle;
                 break;
 
             default:
@@ -247,10 +247,10 @@ int MmRpc_call(MmRpc_Handle handle, MmRpc_FxnCtx *ctx, int32_t *ret)
 
     for (i = 0; i < ctx->num_xlts; i++) {
         /* pack the pointer translation entry */
-        rpfxn->translations[i].index    = ctx->xltAry[i].index;
-        rpfxn->translations[i].offset   = ctx->xltAry[i].offset;
-        rpfxn->translations[i].base     = ctx->xltAry[i].base;
-        rpfxn->translations[i].reserved = ctx->xltAry[i].handle;
+        rpfxn->translations[i].index = ctx->xltAry[i].index;
+        rpfxn->translations[i].offset = ctx->xltAry[i].offset;
+        rpfxn->translations[i].base = ctx->xltAry[i].base;
+        rpfxn->translations[i].fd = (int32_t)ctx->xltAry[i].handle;
     }
 
     /* send message for remote execution */
index f5da53193b2d5c545896a31a12fcf1116c92780c..e37c74f0ab0817c8498c1cfcbe43ee42e5792987 100644 (file)
@@ -68,7 +68,7 @@ struct rppc_buf_fds {
  * @RPPC_PARAM_TYPE_UNKNOWN: unrecognized parameter
  * @RPPC_PARAM_TYPE_ATOMIC: an atomic data type, 1 byte to architecture limit
  *                         sized bytes
- * @RPPC_PARAM_TYPE_PTR: a pointer to shared memory. The reserved field in the
+ * @RPPC_PARAM_TYPE_PTR: a pointer to shared memory. The fd field in the
  *                      structures rppc_param and rppc_param_translation must
  *                      contain the file descriptor of the associated dma_buf
  * @RPPC_PARAM_TYPE_STRUCT: (unsupported) a structure type. Will be architecture
@@ -87,37 +87,43 @@ enum rppc_param_type {
 /**
  * struct rppc_param_translation - pointer translation helper structure
  * @index: index of the parameter where the translation needs to be done in.
- *        used for indicating the base pointer
- * @offset: offset from the base address to the pointer to translate
+ *        used for computing the primary offset and mapping into kernel
+ *        the page from the buffer referred to in the correspoding parameter
+ * @offset: offset from the primary base pointer to the pointer to translate.
+ *         This is the secondary offset, and used either for mentioning the
+ *         offset from an structure array element base, or within a single
+ *         structure which itself is at an offset in an allocated buffer
  * @base: the base user virtual address of the pointer to translate (used to
- *       calculate translated pointer offset).
- * @reserved: reserved field, expected to contain the dma_buf file descriptor.
+ *       calculate translated pointer offset)
+ * @fd: dma_buf file descriptor of the allocated buffer pointer within which
+ *     the translated pointer is present
  */
 struct rppc_param_translation {
        uint32_t index;
        ptrdiff_t offset;
        size_t base;
-       size_t reserved;
+       int32_t fd;
 };
 
 /**
  * struct rppc_param - descriptor structure for each parameter
  * @type: type of the parameter, as dictated by enum rppc_param_type
- * @size: size of the data
+ * @size: size of the data (for atomic types) or size of the containing
+ *       structure in which translations are performed
  * @data: either the parameter value itself (for atomic type) or
  *       the actual user space pointer address to the data (for pointer type)
  * @base: the base user space pointer address of the original allocated buffer,
  *       providing a reference if data has the pointer that is at an offset
  *       from the original pointer
- * @reserved: file descriptor of the exported allocation (will be used to
- *           import the associated dma_buf within the driver).
+ * @fd: file descriptor of the exported allocation (will be used to
+ *     import the associated dma_buf within the driver).
  */
 struct rppc_param {
        uint32_t type;
        size_t size;
        size_t data;
        size_t base;
-       size_t reserved;
+       int32_t fd;
 };
 
 /**
@@ -128,7 +134,7 @@ struct rppc_param {
  * @num_translations: number of in-place translations to be performed within
  *                   the arguments.
  * @translations: an open array of the translation descriptor structures, whose
- *               length is passed in num_translations. Used for translating
+ *               length is given in @num_translations. Used for translating
  *               the pointers within the function data.
  *
  * This is the primary descriptor structure passed down from the userspace,
@@ -181,7 +187,9 @@ struct rppc_function_return {
  * This is actually a condensed structure of the Remote Command Messaging
  * (RCM) structure. The initial fields of the structure are used by the
  * remote-side server to schedule the execution of the function. The actual
- * variable payload data starts from the .data field.
+ * variable payload data starts from the .data field. This marshalled packet
+ * is the payload for a rpmsg message.
+ *
  * XXX: remove or mask unneeded fields, some fields can be stripped down
  */
 struct rppc_packet {