Virtual Device Reference

This chapter presents the virtual devices (vdevs) delivered with QNX hypervisors, and describes how to configure these vdevs.

Note:
  • For general information about configuring VMs which include vdevs, including syntax, see Assembling and configuring VMs in the Configuration chapter.
  • For information about options available to all vdevs, see the next section, Common vdev options.
  • For information about options available to specific vdevs, see the remaining sections in this chapter.

Implicit vdevs

An implicit vdev is a vdev that is in the qvm process code, so it is present in the VM assembled by that process even if you don't specify it. You need to specify such a vdev only if you want to use non-default values for its options. Implicit vdevs are marked as such in the individual vdev descriptions in this chapter.

Syntax

All vdevs specified in a VM configuration are preceded by the vdev option, which identifies the component as a virtual device. Its mandatory name argument specifies the device type:
vdev name
For example, the following creates a vdev that emulates an Intel 8254 timer chip:
vdev timer8254
    intr myioapic:0
Note:
The qvm configuration parsing and validation allows colons (:) in the name argument, because they may be used with some vdevs. However, this character is not supported for Programmable Interrupt Controller (PIC) vdevs (e.g., the gic or ioapic vdev). If you use a colon in a PIC device name, you will get an error when you attempt to refer to it in the configuration for another vdev (e.g., in an intr option).

Multiple listings of a vdev

If you specify the same vdev more than once in a VM configuration, the shared object (vdev-*.so) file that implements the vdev is still loaded by the associated qvm process instance only once. In this case, then, the shared object must manage as many distinct device instances as the guest will need to access for its purposes, just as you would have to connect multiple hardware devices of the same type to support multiple use cases by an OS in a non-virtualized system.

To manage multiple device instances, the vdev must arrange its data to avoid interference between the instances. For information on doing so, refer to the vdev_s and vdev_factory entries in the Virtual Device Developer's API Reference.

Page updated: