Home
last modified time | relevance | path

Searched +full:virtio +full:- +full:device (Results 1 – 25 of 165) sorted by relevance

1234567

/linux/Documentation/driver-api/virtio/
H A Dvirtio.rst1 .. SPDX-License-Identifier: GPL-2.0
6 Virtio on Linux
12 Virtio is an open standard that defines a protocol for communication
13 between drivers and devices of different types, see Chapter 5 ("Device
14 Types") of the virtio spec (`[1]`_). Originally developed as a standard
16 to interface any compliant device (real or emulated) with a driver.
20 devices provided by the hypervisor, which exposes them as virtio devices
24 Device - Driver communication: virtqueues
27 Although the virtio devices are really an abstraction layer in the
29 using a specific transport method -- PCI, MMIO or CCW -- that is
[all …]
H A Dwriting_virtio_drivers.rst1 .. SPDX-License-Identifier: GPL-2.0
6 Writing Virtio Drivers
13 need to hack a new virtio driver or understand the essentials of the
14 existing ones. See :ref:`Virtio on Linux <virtio>` for a general
15 overview of virtio.
21 As a bare minimum, a virtio driver needs to register in the virtio bus
22 and configure the virtqueues for the device according to its spec, the
24 virtqueue definitions in the device. A basic driver skeleton could look
27 #include <linux/virtio.h>
32 /* device private data (one per device) */
[all …]
/linux/drivers/crypto/virtio/
H A Dvirtio_crypto_mgr.c1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /* Management for virtio crypto devices (refer to adf_dev_mgr.c)
24 * virtcrypto_devmgr_add_dev() - Add vcrypto_dev to the acceleration
26 * @vcrypto_dev: Pointer to virtio crypto device.
28 * Function adds virtio crypto device to the global list.
29 * To be used by virtio crypto device specific drivers.
42 return -EFAULT; in virtcrypto_devmgr_add_dev()
51 return -EEXIST; in virtcrypto_devmgr_add_dev()
54 atomic_set(&vcrypto_dev->ref_count, 0); in virtcrypto_devmgr_add_dev()
55 list_add_tail(&vcrypto_dev->list, &virtio_crypto_table); in virtcrypto_devmgr_add_dev()
[all …]
/linux/drivers/virtio/
H A Dvirtio_pci_legacy_dev.c1 // SPDX-License-Identifier: GPL-2.0-or-later
10 * vp_legacy_probe: probe the legacy virtio pci device, note that the
11 * caller is required to enable PCI device before calling this function.
12 * @ldev: the legacy virtio-pci device
18 struct pci_dev *pci_dev = ldev->pci_dev; in vp_legacy_probe()
22 if (pci_dev->device < 0x1000 || pci_dev->device > 0x103f) in vp_legacy_probe()
23 return -ENODEV; in vp_legacy_probe()
25 if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) in vp_legacy_probe()
26 return -ENODEV; in vp_legacy_probe()
28 rc = dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(64)); in vp_legacy_probe()
[all …]
H A Dvirtio_pci_modern_dev.c1 // SPDX-License-Identifier: GPL-2.0-or-later
9 * vp_modern_map_capability - map a part of virtio pci capability
10 * @mdev: the modern virtio-pci device
26 struct pci_dev *dev = mdev->pci_dev; in vp_modern_map_capability()
40 if (bar >= PCI_STD_NUM_BARS || !(mdev->modern_bars & (1 << bar))) { in vp_modern_map_capability()
41 dev_err(&dev->dev, in vp_modern_map_capability()
47 dev_err(&dev->dev, in vp_modern_map_capability()
53 if (length - start < minlen) { in vp_modern_map_capability()
54 dev_err(&dev->dev, in vp_modern_map_capability()
60 length -= start; in vp_modern_map_capability()
[all …]
H A Dvirtio.c1 // SPDX-License-Identifier: GPL-2.0-only
2 #include <linux/virtio.h>
11 /* Unique numbering for virtio devices. */
14 static ssize_t device_show(struct device *_d, in device_show()
18 return sysfs_emit(buf, "0x%04x\n", dev->id.device); in device_show()
20 static DEVICE_ATTR_RO(device);
22 static ssize_t vendor_show(struct device *_d, in vendor_show()
26 return sysfs_emit(buf, "0x%04x\n", dev->id.vendor); in vendor_show()
30 static ssize_t status_show(struct device *_d, in status_show()
34 return sysfs_emit(buf, "0x%08x\n", dev->config->get_status(dev)); in status_show()
[all …]
/linux/Documentation/devicetree/bindings/virtio/
H A Dvirtio-device.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/virtio/virtio-device.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Virtio device
10 - Viresh Kumar <viresh.kumar@linaro.org>
13 These bindings are applicable to virtio devices irrespective of the bus they
16 # We need a select here so we don't match all nodes with 'virtio,mmio'
19 pattern: "^virtio,device[0-9a-f]{1,8}$"
20 description: Virtio device nodes.
[all …]
H A Dmmio.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/virtio/mmio.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: virtio memory mapped devices
10 - Jean-Philippe Brucker <jean-philippe@linaro.org>
13 See https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio for
18 const: virtio,mmio
23 dma-coherent: true
28 '#iommu-cells':
[all …]
H A Dpci-iommu.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/virtio/pci-iommu.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: virtio-iommu device using the virtio-pci transport
10 - Jean-Philippe Brucker <jean-philippe@linaro.org>
13 When virtio-iommu uses the PCI transport, its programming interface is
15 device tree statically describes the relation between IOMMU and DMA
16 masters. Therefore, the PCI root complex that hosts the virtio-iommu
17 contains a child node representing the IOMMU device explicitly.
[all …]
/linux/tools/virtio/virtio-trace/
H A DREADME1 Trace Agent for virtio-trace
6 - splice a page of ring-buffer to read_pipe without memory copying
7 - splice the page from write_pipe to virtio-console without memory copying
8 - write trace data to stdout by using -o option
9 - controlled by start/stop orders from a Host
18 5) The read/write threads start to read trace data from ring-buffers and
19 write the data to virtio-serial.
28 Makefile: Makefile of trace agent for virtio-trace
29 trace-agent.c: includes main function, sets up for operating trace agent
30 trace-agent.h: includes all structures and some macros
[all …]
/linux/sound/virtio/
H A Dvirtio_card.h1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * virtio-snd: Virtio sound device
10 #include <linux/virtio.h>
17 #define VIRTIO_SND_CARD_DRIVER "virtio-snd"
18 #define VIRTIO_SND_CARD_NAME "VirtIO SoundCard"
19 #define VIRTIO_SND_PCM_NAME "VirtIO PCM"
25 * struct virtio_snd_queue - Virtqueue wrapper structure.
35 * struct virtio_kctl - VirtIO control element.
45 * struct virtio_snd - VirtIO sound card device.
46 * @vdev: Underlying virtio device.
[all …]
H A Dvirtio_pcm.h1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * virtio-snd: Virtio sound device
12 #include <sound/pcm-indirect.h>
18 * struct virtio_pcm_substream - VirtIO PCM substream.
19 * @snd: VirtIO sound device.
23 * @features: Stream VirtIO feature bit map (1 << VIRTIO_SND_PCM_F_XXX).
32 * @xfer_enabled: Data transfer state (0 - off, 1 - on).
33 * @xfer_xrun: Data underflow/overflow state (0 - no xrun, 1 - xrun).
34 * @stopped: True if the substream is stopped and must be released on the device
37 * the device side at resume.
[all …]
H A Dvirtio_card.c1 // SPDX-License-Identifier: GPL-2.0+
3 * virtio-snd: Virtio sound device
21 * virtsnd_event_send() - Add an event to the event queue.
24 * @notify: Indicates whether or not to send a notification to the device.
49 * virtsnd_event_dispatch() - Dispatch an event from the device side.
50 * @snd: VirtIO sound device.
51 * @event: VirtIO sound event.
58 switch (le32_to_cpu(event->hdr.code)) { in virtsnd_event_dispatch()
74 * virtsnd_event_notify_cb() - Dispatch all reported events from the event queue.
78 * device.
[all …]
H A Dvirtio_jack.c1 // SPDX-License-Identifier: GPL-2.0+
3 * virtio-snd: Virtio sound device
16 * receive notifications about a plugged in/out device.
23 * struct virtio_jack - VirtIO jack.
26 * @features: Jack virtio feature bit map (1 << VIRTIO_SND_JACK_F_XXX).
43 * virtsnd_jack_get_label() - Get the name string for the jack.
44 * @vjack: VirtIO jack.
54 unsigned int defconf = vjack->defconf; in virtsnd_jack_get_label()
55 unsigned int device = in virtsnd_jack_get_label() local
60 switch (device) { in virtsnd_jack_get_label()
[all …]
H A Dvirtio_pcm.c1 // SPDX-License-Identifier: GPL-2.0+
3 * virtio-snd: Virtio sound device
31 /* Map for converting VirtIO format to ALSA format. */
61 /* Map for converting VirtIO frame rate to ALSA frame rate. */
84 * virtsnd_pcm_build_hw() - Parse substream config and build HW descriptor.
85 * @vss: VirtIO substream.
86 * @info: VirtIO substream information entry.
89 * Return: 0 on success, -EINVAL if configuration is invalid.
94 struct virtio_device *vdev = vss->snd->vdev; in virtsnd_pcm_build_hw()
100 vss->features = le32_to_cpu(info->features); in virtsnd_pcm_build_hw()
[all …]
/linux/include/uapi/linux/
H A Dvirtio_ids.h4 * Virtio IDs
32 #define VIRTIO_ID_NET 1 /* virtio net */
33 #define VIRTIO_ID_BLOCK 2 /* virtio block */
34 #define VIRTIO_ID_CONSOLE 3 /* virtio console */
35 #define VIRTIO_ID_RNG 4 /* virtio rng */
36 #define VIRTIO_ID_BALLOON 5 /* virtio balloon */
37 #define VIRTIO_ID_IOMEM 6 /* virtio ioMemory */
38 #define VIRTIO_ID_RPMSG 7 /* virtio remote processor messaging */
39 #define VIRTIO_ID_SCSI 8 /* virtio scsi */
40 #define VIRTIO_ID_9P 9 /* 9p virtio console */
[all …]
H A Dvirtio_mem.h1 /* SPDX-License-Identifier: BSD-3-Clause */
3 * Virtio Mem Device
47 * Each virtio-mem device manages a dedicated region in physical address
48 * space. Each device ca
[all...]
/linux/Documentation/devicetree/bindings/i2c/
H A Di2c-virtio.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/i2c/i2c-virtio.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Virtio I2C Adapter
10 - Viresh Kumar <viresh.kumar@linaro.org>
13 - $ref: /schemas/i2c/i2c-controller.yaml#
14 - $ref: /schemas/virtio/virtio-device.yaml#
17 Virtio I2C device, see /schemas/virtio/virtio-device.yaml for more details.
24 const: virtio,device22
[all …]
/linux/Documentation/staging/
H A Dremoteproc.rst10 of operating system, whether it's Linux or any other flavor of real-time OS.
12 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP.
13 In a typical configuration, the dual cortex-A9 is running Linux in a SMP
20 duplicated. In addition, this framework also adds rpmsg virtio devices
22 platform-specific remoteproc drivers only need to provide a few low-level
24 (for more information about the virtio-based rpmsg bus and its drivers,
26 Registration of other types of virtio devices is now also possible. Firmwares
27 just need to publish what kind of virtio devices do they support, and then
29 existing virtio drivers with remote processor backends at a minimal development
57 without really powering off the device.
[all …]
/linux/Documentation/networking/
H A Dnet_failover.rst1 .. SPDX-License-Identifier: GPL-2.0
15 The failover netdev acts a master device and controls 2 slave devices. The
17 a passthru/vf device with the same MAC gets registered as 'primary' slave
19 'pci' device. The user accesses the network interface via 'failover' netdev.
28 virtio-net accelerated datapath: STANDBY mode
31 net_failover enables hypervisor controlled accelerated datapath to virtio-net
35 feature on the virtio-net interface and assign the same MAC address to both
36 virtio-net and VF interfaces.
45 <model type='virtio'/>
49 <alias name='ua-backup0'/>
[all …]
/linux/drivers/vdpa/
H A DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
6 Enable this module to support vDPA device that uses a
7 datapath which complies with virtio specifications with
13 tristate "vDPA device simulator core"
18 Enable this module to support vDPA device simulators. These devices
22 tristate "vDPA simulator for networking device"
26 vDPA networking device simulator which loops TX traffic back to RX.
29 tristate "vDPA simulator for block device"
32 vDPA block device simulator which terminates IO request in a
36 tristate "VDUSE (vDPA Device in Userspace) support"
[all …]
/linux/Documentation/devicetree/bindings/gpio/
H A Dgpio-virtio.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/gpio/gpio-virtio.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Virtio GPIO controller
10 - Viresh Kumar <viresh.kumar@linaro.org>
13 - $ref: /schemas/virtio/virtio-device.yaml#
16 Virtio GPIO controller, see /schemas/virtio/virtio-device.yaml for more
24 const: virtio,device29
26 gpio-controller: true
[all …]
/linux/Documentation/filesystems/
H A Dvirtiofs.rst1 .. SPDX-License-Identifier: GPL-2.0
6 virtiofs: virtio-fs host<->guest shared file system
9 - Copyright (C) 2019 Red Hat, Inc.
14 VIRTIO "virtio-fs" device for guest<->host file system sharing. It allows a
24 expose the storage network to the guest. The virtio-fs device was designed to
27 Furthermore the virtio-fs device takes advantage of the co-location of the
35 .. code-block:: sh
37 guest# mount -t virtiofs myfs /mnt
39 Please see https://virtio-fs.gitlab.io/ for details on how to configure QEMU
43 -------------
[all …]
/linux/Documentation/userspace-api/
H A Dvduse.rst2 VDUSE - "vDPA Device in Userspace"
5 vDPA (virtio data path acceleration) device is a device that uses a
6 datapath which complies with the virtio specifications with vendor
9 possible to implement software-emulated vDPA devices in userspace. And
10 to make the device emulation more secure, the emulated vDPA device's
14 Note that only virtio block device is supported by VDUSE framework now,
16 the data path is run by an unprivileged user. The support for other device
17 types can be added after the security issue of corresponding device driver
21 ----------------------------
49 .. code-block:: c
[all …]
/linux/include/linux/
H A Dremoteproc.h40 #include <linux/virtio.h>
47 * struct resource_table - firmware resource table header
81 * struct fw_rsc_hdr - firmware resource entry header
95 * enum fw_resource_type - types of resource entries
99 * @RSC_DEVMEM: request to iommu_map a memory-based peripheral.
102 * @RSC_VDEV: declare support for a virtio device, and serve as its
103 * virtio header.
126 #define FW_RSC_ADDR_ANY (-1)
129 * struct fw_rsc_carveout - physically contiguous memory request
130 * @da: device address
[all …]

1234567