linux-headers: Update to 4.2-rc1
This updates linux-headers against master 4.2-rc1 (commit d770e558e21961ad6cfdf0ff7df0eb5d7d4f0754). This is the result of ./scripts/update-linux-headers.sh work. Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
7edd8e4660
commit
25b8b39b6d
@ -367,7 +367,8 @@ struct input_keymap_entry {
|
|||||||
#define KEY_MSDOS 151
|
#define KEY_MSDOS 151
|
||||||
#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */
|
#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */
|
||||||
#define KEY_SCREENLOCK KEY_COFFEE
|
#define KEY_SCREENLOCK KEY_COFFEE
|
||||||
#define KEY_DIRECTION 153
|
#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */
|
||||||
|
#define KEY_DIRECTION KEY_ROTATE_DISPLAY
|
||||||
#define KEY_CYCLEWINDOWS 154
|
#define KEY_CYCLEWINDOWS 154
|
||||||
#define KEY_MAIL 155
|
#define KEY_MAIL 155
|
||||||
#define KEY_BOOKMARKS 156 /* AC Bookmarks */
|
#define KEY_BOOKMARKS 156 /* AC Bookmarks */
|
||||||
@ -700,6 +701,10 @@ struct input_keymap_entry {
|
|||||||
#define KEY_NUMERIC_9 0x209
|
#define KEY_NUMERIC_9 0x209
|
||||||
#define KEY_NUMERIC_STAR 0x20a
|
#define KEY_NUMERIC_STAR 0x20a
|
||||||
#define KEY_NUMERIC_POUND 0x20b
|
#define KEY_NUMERIC_POUND 0x20b
|
||||||
|
#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */
|
||||||
|
#define KEY_NUMERIC_B 0x20d
|
||||||
|
#define KEY_NUMERIC_C 0x20e
|
||||||
|
#define KEY_NUMERIC_D 0x20f
|
||||||
|
|
||||||
#define KEY_CAMERA_FOCUS 0x210
|
#define KEY_CAMERA_FOCUS 0x210
|
||||||
#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */
|
#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */
|
||||||
@ -971,7 +976,8 @@ struct input_keymap_entry {
|
|||||||
*/
|
*/
|
||||||
#define MT_TOOL_FINGER 0
|
#define MT_TOOL_FINGER 0
|
||||||
#define MT_TOOL_PEN 1
|
#define MT_TOOL_PEN 1
|
||||||
#define MT_TOOL_MAX 1
|
#define MT_TOOL_PALM 2
|
||||||
|
#define MT_TOOL_MAX 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Values describing the status of a force-feedback effect
|
* Values describing the status of a force-feedback effect
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE. */
|
* SUCH DAMAGE. */
|
||||||
#include "standard-headers/linux/types.h"
|
#include "standard-headers/linux/types.h"
|
||||||
|
#include "standard-headers/linux/virtio_types.h"
|
||||||
#include "standard-headers/linux/virtio_ids.h"
|
#include "standard-headers/linux/virtio_ids.h"
|
||||||
#include "standard-headers/linux/virtio_config.h"
|
#include "standard-headers/linux/virtio_config.h"
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@
|
|||||||
#ifndef VIRTIO_GPU_HW_H
|
#ifndef VIRTIO_GPU_HW_H
|
||||||
#define VIRTIO_GPU_HW_H
|
#define VIRTIO_GPU_HW_H
|
||||||
|
|
||||||
|
#include "standard-headers/linux/types.h"
|
||||||
|
|
||||||
enum virtio_gpu_ctrl_type {
|
enum virtio_gpu_ctrl_type {
|
||||||
VIRTIO_GPU_UNDEFINED = 0,
|
VIRTIO_GPU_UNDEFINED = 0,
|
||||||
|
|
||||||
|
@ -199,6 +199,17 @@
|
|||||||
#define HV_X64_MSR_STIMER3_CONFIG 0x400000B6
|
#define HV_X64_MSR_STIMER3_CONFIG 0x400000B6
|
||||||
#define HV_X64_MSR_STIMER3_COUNT 0x400000B7
|
#define HV_X64_MSR_STIMER3_COUNT 0x400000B7
|
||||||
|
|
||||||
|
/* Hyper-V guest crash notification MSR's */
|
||||||
|
#define HV_X64_MSR_CRASH_P0 0x40000100
|
||||||
|
#define HV_X64_MSR_CRASH_P1 0x40000101
|
||||||
|
#define HV_X64_MSR_CRASH_P2 0x40000102
|
||||||
|
#define HV_X64_MSR_CRASH_P3 0x40000103
|
||||||
|
#define HV_X64_MSR_CRASH_P4 0x40000104
|
||||||
|
#define HV_X64_MSR_CRASH_CTL 0x40000105
|
||||||
|
#define HV_X64_MSR_CRASH_CTL_NOTIFY (1ULL << 63)
|
||||||
|
#define HV_X64_MSR_CRASH_PARAMS \
|
||||||
|
(1 + (HV_X64_MSR_CRASH_P4 - HV_X64_MSR_CRASH_P0))
|
||||||
|
|
||||||
#define HV_X64_MSR_HYPERCALL_ENABLE 0x00000001
|
#define HV_X64_MSR_HYPERCALL_ENABLE 0x00000001
|
||||||
#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT 12
|
#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT 12
|
||||||
#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_MASK \
|
#define HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_MASK \
|
||||||
|
@ -897,7 +897,7 @@ struct kvm_xen_hvm_config {
|
|||||||
*
|
*
|
||||||
* KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
|
* KVM_IRQFD_FLAG_RESAMPLE indicates resamplefd is valid and specifies
|
||||||
* the irqfd to operate in resampling mode for level triggered interrupt
|
* the irqfd to operate in resampling mode for level triggered interrupt
|
||||||
* emlation. See Documentation/virtual/kvm/api.txt.
|
* emulation. See Documentation/virtual/kvm/api.txt.
|
||||||
*/
|
*/
|
||||||
#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
|
#define KVM_IRQFD_FLAG_RESAMPLE (1 << 1)
|
||||||
|
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
/* Two-stage IOMMU */
|
/* Two-stage IOMMU */
|
||||||
#define VFIO_TYPE1_NESTING_IOMMU 6 /* Implies v2 */
|
#define VFIO_TYPE1_NESTING_IOMMU 6 /* Implies v2 */
|
||||||
|
|
||||||
|
#define VFIO_SPAPR_TCE_v2_IOMMU 7
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The IOCTL interface is designed for extensibility by embedding the
|
* The IOCTL interface is designed for extensibility by embedding the
|
||||||
* structure length (argsz) and flags into structures passed between
|
* structure length (argsz) and flags into structures passed between
|
||||||
@ -442,6 +444,23 @@ struct vfio_iommu_type1_dma_unmap {
|
|||||||
|
|
||||||
/* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */
|
/* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The SPAPR TCE DDW info struct provides the information about
|
||||||
|
* the details of Dynamic DMA window capability.
|
||||||
|
*
|
||||||
|
* @pgsizes contains a page size bitmask, 4K/64K/16M are supported.
|
||||||
|
* @max_dynamic_windows_supported tells the maximum number of windows
|
||||||
|
* which the platform can create.
|
||||||
|
* @levels tells the maximum number of levels in multi-level IOMMU tables;
|
||||||
|
* this allows splitting a table into smaller chunks which reduces
|
||||||
|
* the amount of physically contiguous memory required for the table.
|
||||||
|
*/
|
||||||
|
struct vfio_iommu_spapr_tce_ddw_info {
|
||||||
|
__u64 pgsizes; /* Bitmap of supported page sizes */
|
||||||
|
__u32 max_dynamic_windows_supported;
|
||||||
|
__u32 levels;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The SPAPR TCE info struct provides the information about the PCI bus
|
* The SPAPR TCE info struct provides the information about the PCI bus
|
||||||
* address ranges available for DMA, these values are programmed into
|
* address ranges available for DMA, these values are programmed into
|
||||||
@ -452,14 +471,17 @@ struct vfio_iommu_type1_dma_unmap {
|
|||||||
* addresses too so the window works as a filter rather than an offset
|
* addresses too so the window works as a filter rather than an offset
|
||||||
* for IOVA addresses.
|
* for IOVA addresses.
|
||||||
*
|
*
|
||||||
* A flag will need to be added if other page sizes are supported,
|
* Flags supported:
|
||||||
* so as defined here, it is always 4k.
|
* - VFIO_IOMMU_SPAPR_INFO_DDW: informs the userspace that dynamic DMA windows
|
||||||
|
* (DDW) support is present. @ddw is only supported when DDW is present.
|
||||||
*/
|
*/
|
||||||
struct vfio_iommu_spapr_tce_info {
|
struct vfio_iommu_spapr_tce_info {
|
||||||
__u32 argsz;
|
__u32 argsz;
|
||||||
__u32 flags; /* reserved for future use */
|
__u32 flags;
|
||||||
|
#define VFIO_IOMMU_SPAPR_INFO_DDW (1 << 0) /* DDW supported */
|
||||||
__u32 dma32_window_start; /* 32 bit window start (bytes) */
|
__u32 dma32_window_start; /* 32 bit window start (bytes) */
|
||||||
__u32 dma32_window_size; /* 32 bit window size (bytes) */
|
__u32 dma32_window_size; /* 32 bit window size (bytes) */
|
||||||
|
struct vfio_iommu_spapr_tce_ddw_info ddw;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define VFIO_IOMMU_SPAPR_TCE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)
|
#define VFIO_IOMMU_SPAPR_TCE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)
|
||||||
@ -470,12 +492,23 @@ struct vfio_iommu_spapr_tce_info {
|
|||||||
* - unfreeze IO/DMA for frozen PE;
|
* - unfreeze IO/DMA for frozen PE;
|
||||||
* - read PE state;
|
* - read PE state;
|
||||||
* - reset PE;
|
* - reset PE;
|
||||||
* - configure PE.
|
* - configure PE;
|
||||||
|
* - inject EEH error.
|
||||||
*/
|
*/
|
||||||
|
struct vfio_eeh_pe_err {
|
||||||
|
__u32 type;
|
||||||
|
__u32 func;
|
||||||
|
__u64 addr;
|
||||||
|
__u64 mask;
|
||||||
|
};
|
||||||
|
|
||||||
struct vfio_eeh_pe_op {
|
struct vfio_eeh_pe_op {
|
||||||
__u32 argsz;
|
__u32 argsz;
|
||||||
__u32 flags;
|
__u32 flags;
|
||||||
__u32 op;
|
__u32 op;
|
||||||
|
union {
|
||||||
|
struct vfio_eeh_pe_err err;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#define VFIO_EEH_PE_DISABLE 0 /* Disable EEH functionality */
|
#define VFIO_EEH_PE_DISABLE 0 /* Disable EEH functionality */
|
||||||
@ -492,9 +525,70 @@ struct vfio_eeh_pe_op {
|
|||||||
#define VFIO_EEH_PE_RESET_HOT 6 /* Assert hot reset */
|
#define VFIO_EEH_PE_RESET_HOT 6 /* Assert hot reset */
|
||||||
#define VFIO_EEH_PE_RESET_FUNDAMENTAL 7 /* Assert fundamental reset */
|
#define VFIO_EEH_PE_RESET_FUNDAMENTAL 7 /* Assert fundamental reset */
|
||||||
#define VFIO_EEH_PE_CONFIGURE 8 /* PE configuration */
|
#define VFIO_EEH_PE_CONFIGURE 8 /* PE configuration */
|
||||||
|
#define VFIO_EEH_PE_INJECT_ERR 9 /* Inject EEH error */
|
||||||
|
|
||||||
#define VFIO_EEH_PE_OP _IO(VFIO_TYPE, VFIO_BASE + 21)
|
#define VFIO_EEH_PE_OP _IO(VFIO_TYPE, VFIO_BASE + 21)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* VFIO_IOMMU_SPAPR_REGISTER_MEMORY - _IOW(VFIO_TYPE, VFIO_BASE + 17, struct vfio_iommu_spapr_register_memory)
|
||||||
|
*
|
||||||
|
* Registers user space memory where DMA is allowed. It pins
|
||||||
|
* user pages and does the locked memory accounting so
|
||||||
|
* subsequent VFIO_IOMMU_MAP_DMA/VFIO_IOMMU_UNMAP_DMA calls
|
||||||
|
* get faster.
|
||||||
|
*/
|
||||||
|
struct vfio_iommu_spapr_register_memory {
|
||||||
|
__u32 argsz;
|
||||||
|
__u32 flags;
|
||||||
|
__u64 vaddr; /* Process virtual address */
|
||||||
|
__u64 size; /* Size of mapping (bytes) */
|
||||||
|
};
|
||||||
|
#define VFIO_IOMMU_SPAPR_REGISTER_MEMORY _IO(VFIO_TYPE, VFIO_BASE + 17)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY - _IOW(VFIO_TYPE, VFIO_BASE + 18, struct vfio_iommu_spapr_register_memory)
|
||||||
|
*
|
||||||
|
* Unregisters user space memory registered with
|
||||||
|
* VFIO_IOMMU_SPAPR_REGISTER_MEMORY.
|
||||||
|
* Uses vfio_iommu_spapr_register_memory for parameters.
|
||||||
|
*/
|
||||||
|
#define VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY _IO(VFIO_TYPE, VFIO_BASE + 18)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* VFIO_IOMMU_SPAPR_TCE_CREATE - _IOWR(VFIO_TYPE, VFIO_BASE + 19, struct vfio_iommu_spapr_tce_create)
|
||||||
|
*
|
||||||
|
* Creates an additional TCE table and programs it (sets a new DMA window)
|
||||||
|
* to every IOMMU group in the container. It receives page shift, window
|
||||||
|
* size and number of levels in the TCE table being created.
|
||||||
|
*
|
||||||
|
* It allocates and returns an offset on a PCI bus of the new DMA window.
|
||||||
|
*/
|
||||||
|
struct vfio_iommu_spapr_tce_create {
|
||||||
|
__u32 argsz;
|
||||||
|
__u32 flags;
|
||||||
|
/* in */
|
||||||
|
__u32 page_shift;
|
||||||
|
__u64 window_size;
|
||||||
|
__u32 levels;
|
||||||
|
/* out */
|
||||||
|
__u64 start_addr;
|
||||||
|
};
|
||||||
|
#define VFIO_IOMMU_SPAPR_TCE_CREATE _IO(VFIO_TYPE, VFIO_BASE + 19)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* VFIO_IOMMU_SPAPR_TCE_REMOVE - _IOW(VFIO_TYPE, VFIO_BASE + 20, struct vfio_iommu_spapr_tce_remove)
|
||||||
|
*
|
||||||
|
* Unprograms a TCE table from all groups in the container and destroys it.
|
||||||
|
* It receives a PCI bus offset as a window id.
|
||||||
|
*/
|
||||||
|
struct vfio_iommu_spapr_tce_remove {
|
||||||
|
__u32 argsz;
|
||||||
|
__u32 flags;
|
||||||
|
/* in */
|
||||||
|
__u64 start_addr;
|
||||||
|
};
|
||||||
|
#define VFIO_IOMMU_SPAPR_TCE_REMOVE _IO(VFIO_TYPE, VFIO_BASE + 20)
|
||||||
|
|
||||||
/* ***************************************************************** */
|
/* ***************************************************************** */
|
||||||
|
|
||||||
#endif /* VFIO_H */
|
#endif /* VFIO_H */
|
||||||
|
@ -1,192 +0,0 @@
|
|||||||
/*
|
|
||||||
* Virtio PCI driver
|
|
||||||
*
|
|
||||||
* This module allows virtio devices to be used over a virtual PCI device.
|
|
||||||
* This can be used with QEMU based VMMs like KVM or Xen.
|
|
||||||
*
|
|
||||||
* Copyright IBM Corp. 2007
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Anthony Liguori <aliguori@us.ibm.com>
|
|
||||||
*
|
|
||||||
* This header is BSD licensed so anyone can use the definitions to implement
|
|
||||||
* compatible drivers/servers.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of IBM nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
||||||
* ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
|
|
||||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
||||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
||||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _LINUX_VIRTIO_PCI_H
|
|
||||||
#define _LINUX_VIRTIO_PCI_H
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
|
||||||
|
|
||||||
#ifndef VIRTIO_PCI_NO_LEGACY
|
|
||||||
|
|
||||||
/* A 32-bit r/o bitmask of the features supported by the host */
|
|
||||||
#define VIRTIO_PCI_HOST_FEATURES 0
|
|
||||||
|
|
||||||
/* A 32-bit r/w bitmask of features activated by the guest */
|
|
||||||
#define VIRTIO_PCI_GUEST_FEATURES 4
|
|
||||||
|
|
||||||
/* A 32-bit r/w PFN for the currently selected queue */
|
|
||||||
#define VIRTIO_PCI_QUEUE_PFN 8
|
|
||||||
|
|
||||||
/* A 16-bit r/o queue size for the currently selected queue */
|
|
||||||
#define VIRTIO_PCI_QUEUE_NUM 12
|
|
||||||
|
|
||||||
/* A 16-bit r/w queue selector */
|
|
||||||
#define VIRTIO_PCI_QUEUE_SEL 14
|
|
||||||
|
|
||||||
/* A 16-bit r/w queue notifier */
|
|
||||||
#define VIRTIO_PCI_QUEUE_NOTIFY 16
|
|
||||||
|
|
||||||
/* An 8-bit device status register. */
|
|
||||||
#define VIRTIO_PCI_STATUS 18
|
|
||||||
|
|
||||||
/* An 8-bit r/o interrupt status register. Reading the value will return the
|
|
||||||
* current contents of the ISR and will also clear it. This is effectively
|
|
||||||
* a read-and-acknowledge. */
|
|
||||||
#define VIRTIO_PCI_ISR 19
|
|
||||||
|
|
||||||
/* MSI-X registers: only enabled if MSI-X is enabled. */
|
|
||||||
/* A 16-bit vector for configuration changes. */
|
|
||||||
#define VIRTIO_MSI_CONFIG_VECTOR 20
|
|
||||||
/* A 16-bit vector for selected queue notifications. */
|
|
||||||
#define VIRTIO_MSI_QUEUE_VECTOR 22
|
|
||||||
|
|
||||||
/* The remaining space is defined by each driver as the per-driver
|
|
||||||
* configuration space */
|
|
||||||
#define VIRTIO_PCI_CONFIG_OFF(msix_enabled) ((msix_enabled) ? 24 : 20)
|
|
||||||
/* Deprecated: please use VIRTIO_PCI_CONFIG_OFF instead */
|
|
||||||
#define VIRTIO_PCI_CONFIG(dev) VIRTIO_PCI_CONFIG_OFF((dev)->msix_enabled)
|
|
||||||
|
|
||||||
/* Virtio ABI version, this must match exactly */
|
|
||||||
#define VIRTIO_PCI_ABI_VERSION 0
|
|
||||||
|
|
||||||
/* How many bits to shift physical queue address written to QUEUE_PFN.
|
|
||||||
* 12 is historical, and due to x86 page size. */
|
|
||||||
#define VIRTIO_PCI_QUEUE_ADDR_SHIFT 12
|
|
||||||
|
|
||||||
/* The alignment to use between consumer and producer parts of vring.
|
|
||||||
* x86 pagesize again. */
|
|
||||||
#define VIRTIO_PCI_VRING_ALIGN 4096
|
|
||||||
|
|
||||||
#endif /* VIRTIO_PCI_NO_LEGACY */
|
|
||||||
|
|
||||||
/* The bit of the ISR which indicates a device configuration change. */
|
|
||||||
#define VIRTIO_PCI_ISR_CONFIG 0x2
|
|
||||||
/* Vector value used to disable MSI for queue */
|
|
||||||
#define VIRTIO_MSI_NO_VECTOR 0xffff
|
|
||||||
|
|
||||||
#ifndef VIRTIO_PCI_NO_MODERN
|
|
||||||
|
|
||||||
/* IDs for different capabilities. Must all exist. */
|
|
||||||
|
|
||||||
/* Common configuration */
|
|
||||||
#define VIRTIO_PCI_CAP_COMMON_CFG 1
|
|
||||||
/* Notifications */
|
|
||||||
#define VIRTIO_PCI_CAP_NOTIFY_CFG 2
|
|
||||||
/* ISR access */
|
|
||||||
#define VIRTIO_PCI_CAP_ISR_CFG 3
|
|
||||||
/* Device specific confiuration */
|
|
||||||
#define VIRTIO_PCI_CAP_DEVICE_CFG 4
|
|
||||||
|
|
||||||
/* This is the PCI capability header: */
|
|
||||||
struct virtio_pci_cap {
|
|
||||||
__u8 cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */
|
|
||||||
__u8 cap_next; /* Generic PCI field: next ptr. */
|
|
||||||
__u8 cap_len; /* Generic PCI field: capability length */
|
|
||||||
__u8 cfg_type; /* Identifies the structure. */
|
|
||||||
__u8 bar; /* Where to find it. */
|
|
||||||
__u8 padding[3]; /* Pad to full dword. */
|
|
||||||
__le32 offset; /* Offset within bar. */
|
|
||||||
__le32 length; /* Length of the structure, in bytes. */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct virtio_pci_notify_cap {
|
|
||||||
struct virtio_pci_cap cap;
|
|
||||||
__le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Fields in VIRTIO_PCI_CAP_COMMON_CFG: */
|
|
||||||
struct virtio_pci_common_cfg {
|
|
||||||
/* About the whole device. */
|
|
||||||
__le32 device_feature_select; /* read-write */
|
|
||||||
__le32 device_feature; /* read-only */
|
|
||||||
__le32 guest_feature_select; /* read-write */
|
|
||||||
__le32 guest_feature; /* read-write */
|
|
||||||
__le16 msix_config; /* read-write */
|
|
||||||
__le16 num_queues; /* read-only */
|
|
||||||
__u8 device_status; /* read-write */
|
|
||||||
__u8 config_generation; /* read-only */
|
|
||||||
|
|
||||||
/* About a specific virtqueue. */
|
|
||||||
__le16 queue_select; /* read-write */
|
|
||||||
__le16 queue_size; /* read-write, power of 2. */
|
|
||||||
__le16 queue_msix_vector; /* read-write */
|
|
||||||
__le16 queue_enable; /* read-write */
|
|
||||||
__le16 queue_notify_off; /* read-only */
|
|
||||||
__le32 queue_desc_lo; /* read-write */
|
|
||||||
__le32 queue_desc_hi; /* read-write */
|
|
||||||
__le32 queue_avail_lo; /* read-write */
|
|
||||||
__le32 queue_avail_hi; /* read-write */
|
|
||||||
__le32 queue_used_lo; /* read-write */
|
|
||||||
__le32 queue_used_hi; /* read-write */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Macro versions of offsets for the Old Timers! */
|
|
||||||
#define VIRTIO_PCI_CAP_VNDR 0
|
|
||||||
#define VIRTIO_PCI_CAP_NEXT 1
|
|
||||||
#define VIRTIO_PCI_CAP_LEN 2
|
|
||||||
#define VIRTIO_PCI_CAP_CFG_TYPE 3
|
|
||||||
#define VIRTIO_PCI_CAP_BAR 4
|
|
||||||
#define VIRTIO_PCI_CAP_OFFSET 8
|
|
||||||
#define VIRTIO_PCI_CAP_LENGTH 12
|
|
||||||
|
|
||||||
#define VIRTIO_PCI_NOTIFY_CAP_MULT 16
|
|
||||||
|
|
||||||
|
|
||||||
#define VIRTIO_PCI_COMMON_DFSELECT 0
|
|
||||||
#define VIRTIO_PCI_COMMON_DF 4
|
|
||||||
#define VIRTIO_PCI_COMMON_GFSELECT 8
|
|
||||||
#define VIRTIO_PCI_COMMON_GF 12
|
|
||||||
#define VIRTIO_PCI_COMMON_MSIX 16
|
|
||||||
#define VIRTIO_PCI_COMMON_NUMQ 18
|
|
||||||
#define VIRTIO_PCI_COMMON_STATUS 20
|
|
||||||
#define VIRTIO_PCI_COMMON_CFGGENERATION 21
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_SELECT 22
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_SIZE 24
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_MSIX 26
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_ENABLE 28
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_NOFF 30
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_DESCLO 32
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_DESCHI 36
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_AVAILLO 40
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_AVAILHI 44
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_USEDLO 48
|
|
||||||
#define VIRTIO_PCI_COMMON_Q_USEDHI 52
|
|
||||||
|
|
||||||
#endif /* VIRTIO_PCI_NO_MODERN */
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue
Block a user