Project ACRN hypervisor
Go to file
Yin Fengwei ecf619cb95 DM: mevent_add/del refine for Linux
Unlike kqueue/kevent of BSD, the epoll of Linux could be
add/del by using different API on the fly.

This patch drops the notify used by mevent_add/del and
call epoll_ctl to add/delete target fd. Only keeps
global_head to track mevent added and makes the code
logic in mevent_dispatch() a littel bit simpler.

Another thing is related with epoll_ctl. If the target
fd is regular fd which doesn't support epoll, epoll_ctl
will return -1. When DM is start by systemd, the STDIO
is not mapped to terminal, epoll_ctl on STDIO could
return -1. Which block UOS boot. We only call mevent_add
after confirm STDIO is mapped to terminal.

Signed-off-by: Yin Fengwei <fengwei.yin@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2018-04-13 11:49:08 +08:00
.travis-dockerfiles Add 'findutils' to Fedora-based Docker images 2018-04-10 16:32:40 +08:00
core DM: mevent_add/del refine for Linux 2018-04-13 11:49:08 +08:00
hw DM: mevent_add/del refine for Linux 2018-04-13 11:49:08 +08:00
include DM: add init/deinit function for mevent 2018-04-13 11:49:08 +08:00
samples Remove 'noxsave' bootarg in dm sample script 2018-04-04 10:48:26 +08:00
tools replace malloc with calloc 2018-04-10 14:28:21 +08:00
.gitignore add .gitignore 2018-03-16 21:45:43 +08:00
.travis.yml Enable Travis CI testing 2018-04-06 22:30:57 +08:00
license_header initial import 2018-03-07 21:07:43 +08:00
MAINTAINERS update home page information 2018-04-02 10:15:51 +08:00
Makefile DM: fix build issue with gcc 4.8.4 on ubuntu 14.04 2018-04-12 13:27:46 +08:00
README.rst README.rst: convert to ReST and add details 2018-03-09 16:13:57 +08:00

ACRN Device Model
#################

Introduction
============
The ACRN Device Model provides **device sharing** capabilities between the Service OS and Guest OSs. It is a component that is used in conjunction with the `ACRN Hypervisor`_ and this is installed within the Service OS. You can find out more about Project ACRN on the `Project ACRN documentation`_ website.


Building the Device Model
=========================

Build dependencies
******************

* For Clear Linux

.. code-block:: console

   sudo swupd bundle-add os-clr-on-clr \
          os-utils-gui-dev

* For CentOS

.. code-block:: console

   sudo yum install gcc \
          libuuid-devel \
          openssl-devel \
          libpciaccess-devel

* For Fedora 27

.. code-block:: console

   sudo dnf install gcc \
          libuuid-devel \
          openssl-devel \
          libpciaccess-devel

Build
*****
To build the Device Model

.. code-block:: console

   make

To clean the build artefacts

.. code-block:: console

   make clean

Runtime dependencies
********************

* On CentOS

.. code-block:: console

   sudo yum install openssl-libs \
                    zlib \
                    libpciaccess \
                    libuuid

* On Fedora 27

.. code-block:: console

   sudo dnf install openssl-libs \
                    zlib \
                    libpciaccess \
                    libuuid

.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor
.. _`Project ACRN documentation`: https://projectacrn.github.io/