rpmsg: rpc: introduce a new rpmsg_rpc driver
authorSuman Anna <s-anna@ti.com>
Wed, 14 Feb 2018 00:01:40 +0000 (18:01 -0600)
committerSuman Anna <s-anna@ti.com>
Fri, 1 Feb 2019 00:27:43 +0000 (18:27 -0600)
commit1b5a3b2ef344bdd695ae410893fab7f4665dd55e
tree54329db60dd8f84665888aeb03f1f407fe592fcc
parent5b1aaaa3c92a2c7977679910f40171d731f69f29
rpmsg: rpc: introduce a new rpmsg_rpc driver

The new rpmsg client driver, rpmsg_rpc, is introduced to provide a
framework for userspace applications to execute functions on different
remote processors.

The functions themselves are published by the remote processors by
different libraries. Each set of functions are published and supported
by a corresponding rpmsg server channel, and is exposed to the user-space
as its own device. User-space applications can open this character device,
and execute any of the published functions associated with the device.

The rpmsg-rpc driver allows any function upto 10 arguments with in-built
pointer translation. The kernel-userspace interaction allows any buffer
pointers to be replaced in the marshalled packet, provided the buffers
are obtained from allocators backed by dma_buf framework.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Erik Rainey <erik.rainey@ti.com>
drivers/rpmsg/Kconfig
drivers/rpmsg/Makefile
drivers/rpmsg/rpmsg_rpc.c [new file with mode: 0644]
drivers/rpmsg/rpmsg_rpc_dmabuf.c [new file with mode: 0644]
drivers/rpmsg/rpmsg_rpc_internal.h [new file with mode: 0644]
drivers/rpmsg/rpmsg_rpc_sysfs.c [new file with mode: 0644]
include/linux/rpmsg_rpc.h [new file with mode: 0644]
include/uapi/linux/rpmsg_rpc.h [new file with mode: 0644]