Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f17bb74f authored by Carl van Schaik's avatar Carl van Schaik Committed by Prakruthi Deepak Heragu
Browse files

driver: vservices: Add the vservices framework and core



Adds the Virtual Services framework and core protocol code.

The Virtual Services framework provides a bus for generic inter-vm
communications using a high level abstract model. The vservices
bus provides support for both HLOS and embedded C clients and servers,
allowing VMs to communicate in a common OS independent manner.

The vservices bus and services over it are hot-plug capable and
can support a wide variety of use cases, including device virtualization
using virtual device protocol (classes) and drivers, similar in
concept to USB or virtio.

Change-Id: I7a696354f59730e0ad340fb92dc85661a7376dee
Signed-off-by: default avatarCarl van Schaik <carl@cog.systems>
Git-commit: 42814676e8bf5fb34060ee80e05e2175ae146292
Git-repo: https://github.com/CogSystems/linux-msm/commits/msm-4.9-hyp


[mnalajal@codeaurora: Resolve trivial merge conflicts]
Signed-off-by: default avatarMurali Nalajala <mnalajal@codeaurora.org>
Signed-off-by: default avatarPrakruthi Deepak Heragu <pheragu@codeaurora.org>
parent 438a81b2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -137,6 +137,8 @@ source "drivers/hv/Kconfig"

source "drivers/xen/Kconfig"

source "drivers/vservices/Kconfig"

source "drivers/staging/Kconfig"

source "drivers/platform/Kconfig"
+2 −0
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@ obj-y += bus/

obj-$(CONFIG_GENERIC_PHY)	+= phy/

obj-$(CONFIG_VSERVICES_SUPPORT)	+= vservices/

# GPIO must come after pinctrl as gpios may need to mux pins etc
obj-$(CONFIG_PINCTRL)		+= pinctrl/
obj-$(CONFIG_GPIOLIB)		+= gpio/
+81 −0
Original line number Diff line number Diff line
#
# OKL4 Virtual Services framework
#

menuconfig VSERVICES_SUPPORT
	tristate "OKL4 Virtual Services support"
	default OKL4_GUEST || OKL4_VIRTUALISATION
	select HOTPLUG
	help
	  This option adds core support for OKL4 Virtual Services. The Virtual
	  Services framework is an inter-OS device/service sharing
	  protocol which is supported on OKL4 Microvisor virtualization
	  platforms. You will also need drivers from the following menu in
	  order to make use of it.

if VSERVICES_SUPPORT

config VSERVICES_CHAR_DEV
	bool "Virtual Services user-space service API"
	default y
	help
	  Select this if you want to use user-space service drivers. You will
	  also need udev rules that create device nodes, and protocol code
	  generated by the OK Mill tool.

config VSERVICES_DEBUG
	bool "Virtual Services debugging support"
	help
	  Select this if you want to enable Virtual Services core framework
	  debugging. The debug messages for various components of the Virtual
	  Services core framework can be toggled at runtime on a per-session
	  basis via sysfs. When Virtual Services debugging is enabled here,
	  but disabled at runtime it has a minimal performance impact.

config VSERVICES_LOCK_DEBUG
	bool "Debug Virtual Services state locks"
	default DEBUG_KERNEL
	help
	  This option enables some runtime checks that Virtual Services
	  state lock functions are used correctly in service drivers.

config VSERVICES_SERVER
	tristate "Virtual Services server support"
	depends on SYSFS
	default y
	help
	  This option adds support for Virtual Services servers, which allows
	  exporting of services from this Linux to other environments. Servers
	  are created at runtime by writing to files in
	  /sys/bus/vservices-server.

config VSERVICES_CLIENT
	tristate "Virtual Services client support"
	default y
	help
	  This option adds support for Virtual Services clients, which allows
	  connecting to services exported from other environments.

config VSERVICES_SKELETON_DRIVER
	tristate "Virtual Services skeleton driver"
	depends on VSERVICES_SERVER || VSERVICES_CLIENT
	default n
	help
	  This option adds support for a skeleton virtual service driver. This
	  driver can be used for templating or testing of virtual service
	  drivers. If unsure say N.

config VSERVICES_NAMED_DEVICE
	bool "Virtual Services use named device node in /dev"
	default n
	help
	  Select this if you want to use a named device name over a numeric
	  device name in /dev

source "drivers/vservices/transport/Kconfig"

source "drivers/vservices/protocol/Kconfig"

source "drivers/vservices/Kconfig.stacks"

endif # VSERVICES_SUPPORT
+7 −0
Original line number Diff line number Diff line
#
# vServices drivers configuration
#

menu "Client and Server drivers"

endmenu
+14 −0
Original line number Diff line number Diff line
ccflags-y += -Werror
ccflags-$(CONFIG_VSERVICES_DEBUG) += -DDEBUG

obj-$(CONFIG_VSERVICES_SUPPORT)	+= vservices.o
vservices-objs-$(CONFIG_VSERVICES_CHAR_DEV) += devio.o
vservices-objs = session.o $(vservices-objs-y)

obj-$(CONFIG_VSERVICES_CLIENT) += core_client.o
obj-$(CONFIG_VSERVICES_SERVER) += core_server.o

obj-$(CONFIG_VSERVICES_SKELETON_DRIVER) += vservices_skeleton_driver.o
vservices_skeleton_driver-objs = skeleton_driver.o

obj-$(CONFIG_VSERVICES_SUPPORT) += protocol/
Loading