Skip to content

OpenXT-Extras/libpciemu

Repository files navigation

### Current status
DEFUNCT

### Dependencies
libevent
xenctrl (libxc)
ioreq (Xen component)

### Usage
Previously linked with Surfman to surface a virtual PCI device in the guest,
with some help for IOEMU.

### Feature
Exports an interface to trigger callbacks on read & write PIO and MMIO for the
exposed device (including config. space). It does not support access to ROM,
capability list handling and D-state power management.

This library will allocate an event channel and register to the ioreq server
through the xenctrl interface (xc_hvm_register_ioreq_server()).

A copy of Linux config. space macro offsets is shipped with the library to help
deal with config. space access.

********** Library PCI Emulation Documentation **************

This library contains helpers to simply create a virtual PCI device.
It's part of device disaggregation and can only be use on the top of XenClient XT
superior to 3.0.0 for the moment.

* Compilation

42sh> ./configure
42sh> make
42sh> make install

* Limitations

For the moment the library is unable to handle:
  * 64 bits BARs;
  * status register;
  * rom;
  * capabilities

* Demo application
In order to understand how to use libpciemu, a skeleton was created in app/.
/!\ This app compile buts doesn't work. it miss synchronisation with the manager.

42sh> make -C app