OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [virtio_pci.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/*
2
 * Virtio PCI driver
3
 *
4
 * This module allows virtio devices to be used over a virtual PCI device.
5
 * This can be used with QEMU based VMMs like KVM or Xen.
6
 *
7
 * Copyright IBM Corp. 2007
8
 *
9
 * Authors:
10
 *  Anthony Liguori  <aliguori@us.ibm.com>
11
 *
12
 * This header is BSD licensed so anyone can use the definitions to implement
13
 * compatible drivers/servers.
14
 *
15
 * Redistribution and use in source and binary forms, with or without
16
 * modification, are permitted provided that the following conditions
17
 * are met:
18
 * 1. Redistributions of source code must retain the above copyright
19
 *    notice, this list of conditions and the following disclaimer.
20
 * 2. Redistributions in binary form must reproduce the above copyright
21
 *    notice, this list of conditions and the following disclaimer in the
22
 *    documentation and/or other materials provided with the distribution.
23
 * 3. Neither the name of IBM nor the names of its contributors
24
 *    may be used to endorse or promote products derived from this software
25
 *    without specific prior written permission.
26
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
27
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29
 * ARE DISCLAIMED.  IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
30
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36
 * SUCH DAMAGE.
37
 */
38
 
39
#ifndef _LINUX_VIRTIO_PCI_H
40
#define _LINUX_VIRTIO_PCI_H
41
 
42
#include <linux/virtio_config.h>
43
 
44
/* A 32-bit r/o bitmask of the features supported by the host */
45
#define VIRTIO_PCI_HOST_FEATURES        0
46
 
47
/* A 32-bit r/w bitmask of features activated by the guest */
48
#define VIRTIO_PCI_GUEST_FEATURES       4
49
 
50
/* A 32-bit r/w PFN for the currently selected queue */
51
#define VIRTIO_PCI_QUEUE_PFN            8
52
 
53
/* A 16-bit r/o queue size for the currently selected queue */
54
#define VIRTIO_PCI_QUEUE_NUM            12
55
 
56
/* A 16-bit r/w queue selector */
57
#define VIRTIO_PCI_QUEUE_SEL            14
58
 
59
/* A 16-bit r/w queue notifier */
60
#define VIRTIO_PCI_QUEUE_NOTIFY         16
61
 
62
/* An 8-bit device status register.  */
63
#define VIRTIO_PCI_STATUS               18
64
 
65
/* An 8-bit r/o interrupt status register.  Reading the value will return the
66
 * current contents of the ISR and will also clear it.  This is effectively
67
 * a read-and-acknowledge. */
68
#define VIRTIO_PCI_ISR                  19
69
 
70
/* The bit of the ISR which indicates a device configuration change. */
71
#define VIRTIO_PCI_ISR_CONFIG           0x2
72
 
73
/* MSI-X registers: only enabled if MSI-X is enabled. */
74
/* A 16-bit vector for configuration changes. */
75
#define VIRTIO_MSI_CONFIG_VECTOR        20
76
/* A 16-bit vector for selected queue notifications. */
77
#define VIRTIO_MSI_QUEUE_VECTOR         22
78
/* Vector value used to disable MSI for queue */
79
#define VIRTIO_MSI_NO_VECTOR            0xffff
80
 
81
/* The remaining space is defined by each driver as the per-driver
82
 * configuration space */
83
#define VIRTIO_PCI_CONFIG_OFF(msix_enabled)     ((msix_enabled) ? 24 : 20)
84
/* Deprecated: please use VIRTIO_PCI_CONFIG_OFF instead */
85
#define VIRTIO_PCI_CONFIG(dev)  VIRTIO_PCI_CONFIG_OFF((dev)->msix_enabled)
86
 
87
/* Virtio ABI version, this must match exactly */
88
#define VIRTIO_PCI_ABI_VERSION          0
89
 
90
/* How many bits to shift physical queue address written to QUEUE_PFN.
91
 * 12 is historical, and due to x86 page size. */
92
#define VIRTIO_PCI_QUEUE_ADDR_SHIFT     12
93
 
94
/* The alignment to use between consumer and producer parts of vring.
95
 * x86 pagesize again. */
96
#define VIRTIO_PCI_VRING_ALIGN          4096
97
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.