acrn-hypervisor/hypervisor
Junjie Mao 16152fad79 HV: debug: stop using ## __VA_ARGS__
It is an extension of GCC CPP to:

* allow omitting a variable macro argument entirely, and
* use ## __VA_ARGS__ to remove the the comma before ## __VA_ARGS__ when
  __VA_ARGS__ is empty.

The only use of ## _VA_ARGS__ is to define the pr_xxx() macros, with the first
argument being the format string and the rest the to-be-formatted arguments. The
format string is explicitly spelled out because another macro pr_fmt() is used
to add to the format string a prefix which is customizable by defining what
pr_fmt() expands to.

For C99 compliance, this patch changes the pr_xxx() macros in the following
pattern.

    - #define pr_fatal(fmt, ...)				\
    -     do_logmsg(LOG_FATAL, pr_fmt(fmt), ## __VA_ARGS__);	\
    + #define pr_fatal(...)					\
    +     do_logmsg(LOG_FATAL, pr_prefix __VA_ARGS__);		\

Reference:

* https://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html#Variadic-Macros

Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
2018-05-29 14:13:44 +08:00
..
.travis-dockerfiles Add 'findutils' to Fedora-based Docker images 2018-05-15 17:25:26 +08:00
arch/x86 HV: debug: stop using ## __VA_ARGS__ 2018-05-29 14:13:44 +08:00
boot HV: further cleanup of header inclusions 2018-05-25 10:45:56 +08:00
bsp hv: handle the case of empty hypervisor cmdline 2018-05-28 17:36:54 +08:00
common treewide: remove unnecessary unnamed structs/unions 2018-05-29 14:12:15 +08:00
debug HV: further cleanup of header inclusions 2018-05-25 10:45:56 +08:00
Documentation UEFI: update acrn.conf and Document 2018-05-15 17:25:26 +08:00
include HV: debug: stop using ## __VA_ARGS__ 2018-05-29 14:13:44 +08:00
lib HV: further cleanup of header inclusions 2018-05-25 10:45:56 +08:00
.travis.yml Travis CI: enable Ubuntu 16.04 and Fedora 26 testing 2018-05-15 17:25:24 +08:00
MAINTAINERS update home page information 2018-05-15 17:19:39 +08:00
Makefile hypervisor: install acrn.32.out to /usr/lib/acrn/acrn.sbl 2018-05-24 19:34:49 +08:00
README.rst initial import 2018-05-11 14:44:28 +08:00

Embedded-Hypervisor
###################

This open source embedded hypervisor defines a software architecture for
running multiple software subsystems managed securely on a consolidated
system (by means of a virtual machine manager), and defines a reference
framework Device Model implementation for devices emulation

This embedded hypervisor is type-1 reference hypervisor, running
directly on the system hardware. It can be used for building software
defined cockpit (SDC) or In-Vehicle Experience (IVE) solutions running
on Intel Architecture Apollo Lake platforms. As a reference
implementation, it provides the basis for embedded hypervisor vendors to
build solutions with an open source reference I/O mediation solution,
and provides auto makers a reference software stack for SDC usage.

This embedded hypervisor is able to support both Linux* and Android* as
a Guest OS, managed by the hypervisor, where applications can run.

This embedded hypervisor is a partitioning hypervisor reference stack,
also suitable for non-automotive IoT & embedded device solutions. It
will be addressing the gap that currently exists between datacenter
hypervisors, hard partitioning hypervisors, and select industrial
applications.  Extending the scope of this open source embedded
hypervisor relies on the involvement of community developers like you!