mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-17 21:26:13 -07:00
include: update Linux headers to 4.21-rc1/5.0-rc1
This is simply running the newly-updated script on Linux, in order to obtain the new header files and all the other updates from the recent Linux merge window. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
a0a6ef91a4
commit
da054c646c
25 changed files with 2243 additions and 1589 deletions
|
|
@ -91,10 +91,6 @@
|
|||
* %ETHTOOL_GSET to get the current values before making specific
|
||||
* changes and then applying them with %ETHTOOL_SSET.
|
||||
*
|
||||
* Drivers that implement set_settings() should validate all fields
|
||||
* other than @cmd that are not described as read-only or deprecated,
|
||||
* and must ignore all fields described as read-only.
|
||||
*
|
||||
* Deprecated fields should be ignored by both users and drivers.
|
||||
*/
|
||||
struct ethtool_cmd {
|
||||
|
|
@ -886,7 +882,7 @@ struct ethtool_rx_flow_spec {
|
|||
uint32_t location;
|
||||
};
|
||||
|
||||
/* How rings are layed out when accessing virtual functions or
|
||||
/* How rings are laid out when accessing virtual functions or
|
||||
* offloaded queues is device specific. To allow users to do flow
|
||||
* steering and specify these queues the ring cookie is partitioned
|
||||
* into a 32bit queue index with an 8 bit virtual function id.
|
||||
|
|
@ -895,7 +891,7 @@ struct ethtool_rx_flow_spec {
|
|||
* devices start supporting PCIe w/ARI. However at the moment I
|
||||
* do not know of any devices that support this so I do not reserve
|
||||
* space for this at this time. If a future patch consumes the next
|
||||
* byte it should be aware of this possiblity.
|
||||
* byte it should be aware of this possibility.
|
||||
*/
|
||||
#define ETHTOOL_RX_FLOW_SPEC_RING 0x00000000FFFFFFFFLL
|
||||
#define ETHTOOL_RX_FLOW_SPEC_RING_VF 0x000000FF00000000LL
|
||||
|
|
@ -1800,14 +1796,9 @@ enum ethtool_reset_flags {
|
|||
* rejected.
|
||||
*
|
||||
* Deprecated %ethtool_cmd fields transceiver, maxtxpkt and maxrxpkt
|
||||
* are not available in %ethtool_link_settings. Until all drivers are
|
||||
* converted to ignore them or to the new %ethtool_link_settings API,
|
||||
* for both queries and changes, users should always try
|
||||
* %ETHTOOL_GLINKSETTINGS first, and if it fails with -ENOTSUPP stick
|
||||
* only to %ETHTOOL_GSET and %ETHTOOL_SSET consistently. If it
|
||||
* succeeds, then users should stick to %ETHTOOL_GLINKSETTINGS and
|
||||
* %ETHTOOL_SLINKSETTINGS (which would support drivers implementing
|
||||
* either %ethtool_cmd or %ethtool_link_settings).
|
||||
* are not available in %ethtool_link_settings. These fields will be
|
||||
* always set to zero in %ETHTOOL_GSET reply and %ETHTOOL_SSET will
|
||||
* fail if any of them is set to non-zero value.
|
||||
*
|
||||
* Users should assume that all fields not marked read-only are
|
||||
* writable and subject to validation by the driver. They should use
|
||||
|
|
|
|||
|
|
@ -708,6 +708,14 @@
|
|||
#define REL_DIAL 0x07
|
||||
#define REL_WHEEL 0x08
|
||||
#define REL_MISC 0x09
|
||||
/*
|
||||
* 0x0a is reserved and should not be used in input drivers.
|
||||
* It was used by HID as REL_MISC+1 and userspace needs to detect if
|
||||
* the next REL_* event is correct or is just REL_MISC + n.
|
||||
* We define here REL_RESERVED so userspace can rely on it and detect
|
||||
* the situation described above.
|
||||
*/
|
||||
#define REL_RESERVED 0x0a
|
||||
#define REL_MAX 0x0f
|
||||
#define REL_CNT (REL_MAX+1)
|
||||
|
||||
|
|
@ -744,6 +752,15 @@
|
|||
|
||||
#define ABS_MISC 0x28
|
||||
|
||||
/*
|
||||
* 0x2e is reserved and should not be used in input drivers.
|
||||
* It was used by HID as ABS_MISC+6 and userspace needs to detect if
|
||||
* the next ABS_* event is correct or is just ABS_MISC + n.
|
||||
* We define here ABS_RESERVED so userspace can rely on it and detect
|
||||
* the situation described above.
|
||||
*/
|
||||
#define ABS_RESERVED 0x2e
|
||||
|
||||
#define ABS_MT_SLOT 0x2f /* MT slot being modified */
|
||||
#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */
|
||||
#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@
|
|||
#define PCI_COMMAND_INTX_DISABLE 0x400 /* INTx Emulation Disable */
|
||||
|
||||
#define PCI_STATUS 0x06 /* 16 bits */
|
||||
#define PCI_STATUS_IMM_READY 0x01 /* Immediate Readiness */
|
||||
#define PCI_STATUS_INTERRUPT 0x08 /* Interrupt status */
|
||||
#define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */
|
||||
#define PCI_STATUS_66MHZ 0x20 /* Support 66 MHz PCI 2.1 bus */
|
||||
|
|
|
|||
128
include/standard-headers/linux/vhost_types.h
Normal file
128
include/standard-headers/linux/vhost_types.h
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef _LINUX_VHOST_TYPES_H
|
||||
#define _LINUX_VHOST_TYPES_H
|
||||
/* Userspace interface for in-kernel virtio accelerators. */
|
||||
|
||||
/* vhost is used to reduce the number of system calls involved in virtio.
|
||||
*
|
||||
* Existing virtio net code is used in the guest without modification.
|
||||
*
|
||||
* This header includes interface used by userspace hypervisor for
|
||||
* device configuration.
|
||||
*/
|
||||
|
||||
#include "standard-headers/linux/types.h"
|
||||
|
||||
#include "standard-headers/linux/virtio_config.h"
|
||||
#include "standard-headers/linux/virtio_ring.h"
|
||||
|
||||
struct vhost_vring_state {
|
||||
unsigned int index;
|
||||
unsigned int num;
|
||||
};
|
||||
|
||||
struct vhost_vring_file {
|
||||
unsigned int index;
|
||||
int fd; /* Pass -1 to unbind from file. */
|
||||
|
||||
};
|
||||
|
||||
struct vhost_vring_addr {
|
||||
unsigned int index;
|
||||
/* Option flags. */
|
||||
unsigned int flags;
|
||||
/* Flag values: */
|
||||
/* Whether log address is valid. If set enables logging. */
|
||||
#define VHOST_VRING_F_LOG 0
|
||||
|
||||
/* Start of array of descriptors (virtually contiguous) */
|
||||
uint64_t desc_user_addr;
|
||||
/* Used structure address. Must be 32 bit aligned */
|
||||
uint64_t used_user_addr;
|
||||
/* Available structure address. Must be 16 bit aligned */
|
||||
uint64_t avail_user_addr;
|
||||
/* Logging support. */
|
||||
/* Log writes to used structure, at offset calculated from specified
|
||||
* address. Address must be 32 bit aligned. */
|
||||
uint64_t log_guest_addr;
|
||||
};
|
||||
|
||||
/* no alignment requirement */
|
||||
struct vhost_iotlb_msg {
|
||||
uint64_t iova;
|
||||
uint64_t size;
|
||||
uint64_t uaddr;
|
||||
#define VHOST_ACCESS_RO 0x1
|
||||
#define VHOST_ACCESS_WO 0x2
|
||||
#define VHOST_ACCESS_RW 0x3
|
||||
uint8_t perm;
|
||||
#define VHOST_IOTLB_MISS 1
|
||||
#define VHOST_IOTLB_UPDATE 2
|
||||
#define VHOST_IOTLB_INVALIDATE 3
|
||||
#define VHOST_IOTLB_ACCESS_FAIL 4
|
||||
uint8_t type;
|
||||
};
|
||||
|
||||
#define VHOST_IOTLB_MSG 0x1
|
||||
#define VHOST_IOTLB_MSG_V2 0x2
|
||||
|
||||
struct vhost_msg {
|
||||
int type;
|
||||
union {
|
||||
struct vhost_iotlb_msg iotlb;
|
||||
uint8_t padding[64];
|
||||
};
|
||||
};
|
||||
|
||||
struct vhost_msg_v2 {
|
||||
uint32_t type;
|
||||
uint32_t reserved;
|
||||
union {
|
||||
struct vhost_iotlb_msg iotlb;
|
||||
uint8_t padding[64];
|
||||
};
|
||||
};
|
||||
|
||||
struct vhost_memory_region {
|
||||
uint64_t guest_phys_addr;
|
||||
uint64_t memory_size; /* bytes */
|
||||
uint64_t userspace_addr;
|
||||
uint64_t flags_padding; /* No flags are currently specified. */
|
||||
};
|
||||
|
||||
/* All region addresses and sizes must be 4K aligned. */
|
||||
#define VHOST_PAGE_SIZE 0x1000
|
||||
|
||||
struct vhost_memory {
|
||||
uint32_t nregions;
|
||||
uint32_t padding;
|
||||
struct vhost_memory_region regions[0];
|
||||
};
|
||||
|
||||
/* VHOST_SCSI specific definitions */
|
||||
|
||||
/*
|
||||
* Used by QEMU userspace to ensure a consistent vhost-scsi ABI.
|
||||
*
|
||||
* ABI Rev 0: July 2012 version starting point for v3.6-rc merge candidate +
|
||||
* RFC-v2 vhost-scsi userspace. Add GET_ABI_VERSION ioctl usage
|
||||
* ABI Rev 1: January 2013. Ignore vhost_tpgt field in struct vhost_scsi_target.
|
||||
* All the targets under vhost_wwpn can be seen and used by guset.
|
||||
*/
|
||||
|
||||
#define VHOST_SCSI_ABI_VERSION 1
|
||||
|
||||
struct vhost_scsi_target {
|
||||
int abi_version;
|
||||
char vhost_wwpn[224]; /* TRANSPORT_IQN_LEN */
|
||||
unsigned short vhost_tpgt;
|
||||
unsigned short reserved;
|
||||
};
|
||||
|
||||
/* Feature bits */
|
||||
/* Log all write descriptors. Can be changed while device is active. */
|
||||
#define VHOST_F_LOG_ALL 26
|
||||
/* vhost-net should add virtio_net_hdr for RX, and strip for TX packets. */
|
||||
#define VHOST_NET_F_VIRTIO_NET_HDR 27
|
||||
|
||||
#endif
|
||||
|
|
@ -34,15 +34,23 @@
|
|||
#define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */
|
||||
#define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */
|
||||
#define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */
|
||||
#define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */
|
||||
#define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */
|
||||
|
||||
/* Size of a PFN in the balloon interface. */
|
||||
#define VIRTIO_BALLOON_PFN_SHIFT 12
|
||||
|
||||
#define VIRTIO_BALLOON_CMD_ID_STOP 0
|
||||
#define VIRTIO_BALLOON_CMD_ID_DONE 1
|
||||
struct virtio_balloon_config {
|
||||
/* Number of pages host wants Guest to give up. */
|
||||
uint32_t num_pages;
|
||||
/* Number of pages we've actually got in balloon. */
|
||||
uint32_t actual;
|
||||
/* Free page report command id, readonly by guest */
|
||||
uint32_t free_page_report_cmd_id;
|
||||
/* Stores PAGE_POISON if page poisoning is in use */
|
||||
uint32_t poison_val;
|
||||
};
|
||||
|
||||
#define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */
|
||||
|
|
|
|||
|
|
@ -112,6 +112,12 @@ struct virtio_blk_config {
|
|||
/* Get device ID command */
|
||||
#define VIRTIO_BLK_T_GET_ID 8
|
||||
|
||||
/* Discard command */
|
||||
#define VIRTIO_BLK_T_DISCARD 11
|
||||
|
||||
/* Write zeroes command */
|
||||
#define VIRTIO_BLK_T_WRITE_ZEROES 13
|
||||
|
||||
#ifndef VIRTIO_BLK_NO_LEGACY
|
||||
/* Barrier before this op. */
|
||||
#define VIRTIO_BLK_T_BARRIER 0x80000000
|
||||
|
|
|
|||
|
|
@ -75,6 +75,9 @@
|
|||
*/
|
||||
#define VIRTIO_F_IOMMU_PLATFORM 33
|
||||
|
||||
/* This feature indicates support for the packed virtqueue layout. */
|
||||
#define VIRTIO_F_RING_PACKED 34
|
||||
|
||||
/*
|
||||
* Does the device support Single Root I/O Virtualization?
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@
|
|||
#include "standard-headers/linux/types.h"
|
||||
|
||||
#define VIRTIO_GPU_F_VIRGL 0
|
||||
#define VIRTIO_GPU_F_EDID 1
|
||||
|
||||
enum virtio_gpu_ctrl_type {
|
||||
VIRTIO_GPU_UNDEFINED = 0,
|
||||
|
|
@ -56,6 +57,7 @@ enum virtio_gpu_ctrl_type {
|
|||
VIRTIO_GPU_CMD_RESOURCE_DETACH_BACKING,
|
||||
VIRTIO_GPU_CMD_GET_CAPSET_INFO,
|
||||
VIRTIO_GPU_CMD_GET_CAPSET,
|
||||
VIRTIO_GPU_CMD_GET_EDID,
|
||||
|
||||
/* 3d commands */
|
||||
VIRTIO_GPU_CMD_CTX_CREATE = 0x0200,
|
||||
|
|
@ -76,6 +78,7 @@ enum virtio_gpu_ctrl_type {
|
|||
VIRTIO_GPU_RESP_OK_DISPLAY_INFO,
|
||||
VIRTIO_GPU_RESP_OK_CAPSET_INFO,
|
||||
VIRTIO_GPU_RESP_OK_CAPSET,
|
||||
VIRTIO_GPU_RESP_OK_EDID,
|
||||
|
||||
/* error responses */
|
||||
VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200,
|
||||
|
|
@ -291,6 +294,21 @@ struct virtio_gpu_resp_capset {
|
|||
uint8_t capset_data[];
|
||||
};
|
||||
|
||||
/* VIRTIO_GPU_CMD_GET_EDID */
|
||||
struct virtio_gpu_cmd_get_edid {
|
||||
struct virtio_gpu_ctrl_hdr hdr;
|
||||
uint32_t scanout;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
/* VIRTIO_GPU_RESP_OK_EDID */
|
||||
struct virtio_gpu_resp_edid {
|
||||
struct virtio_gpu_ctrl_hdr hdr;
|
||||
uint32_t size;
|
||||
uint32_t padding;
|
||||
uint8_t edid[1024];
|
||||
};
|
||||
|
||||
#define VIRTIO_GPU_EVENT_DISPLAY (1 << 0)
|
||||
|
||||
struct virtio_gpu_config {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,13 @@
|
|||
/* This means the buffer contains a list of buffer descriptors. */
|
||||
#define VRING_DESC_F_INDIRECT 4
|
||||
|
||||
/*
|
||||
* Mark a descriptor as available or used in packed ring.
|
||||
* Notice: they are defined as shifts instead of shifted values.
|
||||
*/
|
||||
#define VRING_PACKED_DESC_F_AVAIL 7
|
||||
#define VRING_PACKED_DESC_F_USED 15
|
||||
|
||||
/* The Host uses this in used->flags to advise the Guest: don't kick me when
|
||||
* you add a buffer. It's unreliable, so it's simply an optimization. Guest
|
||||
* will still kick if it's out of buffers. */
|
||||
|
|
@ -51,6 +58,23 @@
|
|||
* optimization. */
|
||||
#define VRING_AVAIL_F_NO_INTERRUPT 1
|
||||
|
||||
/* Enable events in packed ring. */
|
||||
#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0
|
||||
/* Disable events in packed ring. */
|
||||
#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1
|
||||
/*
|
||||
* Enable events for a specific descriptor in packed ring.
|
||||
* (as specified by Descriptor Ring Change Event Offset/Wrap Counter).
|
||||
* Only valid if VIRTIO_RING_F_EVENT_IDX has been negotiated.
|
||||
*/
|
||||
#define VRING_PACKED_EVENT_FLAG_DESC 0x2
|
||||
|
||||
/*
|
||||
* Wrap counter bit shift in event suppression structure
|
||||
* of packed ring.
|
||||
*/
|
||||
#define VRING_PACKED_EVENT_F_WRAP_CTR 15
|
||||
|
||||
/* We support indirect buffer descriptors */
|
||||
#define VIRTIO_RING_F_INDIRECT_DESC 28
|
||||
|
||||
|
|
@ -169,4 +193,32 @@ static inline int vring_need_event(uint16_t event_idx, uint16_t new_idx, uint16_
|
|||
return (uint16_t)(new_idx - event_idx - 1) < (uint16_t)(new_idx - old);
|
||||
}
|
||||
|
||||
struct vring_packed_desc_event {
|
||||
/* Descriptor Ring Change Event Offset/Wrap Counter. */
|
||||
uint16_t off_wrap;
|
||||
/* Descriptor Ring Change Event Flags. */
|
||||
uint16_t flags;
|
||||
};
|
||||
|
||||
struct vring_packed_desc {
|
||||
/* Buffer Address. */
|
||||
uint64_t addr;
|
||||
/* Buffer Length. */
|
||||
uint32_t len;
|
||||
/* Buffer ID. */
|
||||
uint16_t id;
|
||||
/* The flags depending on descriptor type. */
|
||||
uint16_t flags;
|
||||
};
|
||||
|
||||
struct vring_packed {
|
||||
unsigned int num;
|
||||
|
||||
struct vring_packed_desc *desc;
|
||||
|
||||
struct vring_packed_desc_event *driver;
|
||||
|
||||
struct vring_packed_desc_event *device;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_VIRTIO_RING_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue