mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 14:53:54 -06:00
linux-headers: update to current kvm/next
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
b40b8eb609
commit
ab0c7fb22b
23 changed files with 1120 additions and 740 deletions
|
@ -2023,6 +2023,53 @@ static inline int ethtool_validate_duplex(uint8_t duplex)
|
|||
#define IPV4_FLOW 0x10 /* hash only */
|
||||
#define IPV6_FLOW 0x11 /* hash only */
|
||||
#define ETHER_FLOW 0x12 /* spec only (ether_spec) */
|
||||
|
||||
/* Used for GTP-U IPv4 and IPv6.
|
||||
* The format of GTP packets only includes
|
||||
* elements such as TEID and GTP version.
|
||||
* It is primarily intended for data communication of the UE.
|
||||
*/
|
||||
#define GTPU_V4_FLOW 0x13 /* hash only */
|
||||
#define GTPU_V6_FLOW 0x14 /* hash only */
|
||||
|
||||
/* Use for GTP-C IPv4 and v6.
|
||||
* The format of these GTP packets does not include TEID.
|
||||
* Primarily expected to be used for communication
|
||||
* to create sessions for UE data communication,
|
||||
* commonly referred to as CSR (Create Session Request).
|
||||
*/
|
||||
#define GTPC_V4_FLOW 0x15 /* hash only */
|
||||
#define GTPC_V6_FLOW 0x16 /* hash only */
|
||||
|
||||
/* Use for GTP-C IPv4 and v6.
|
||||
* Unlike GTPC_V4_FLOW, the format of these GTP packets includes TEID.
|
||||
* After session creation, it becomes this packet.
|
||||
* This is mainly used for requests to realize UE handover.
|
||||
*/
|
||||
#define GTPC_TEID_V4_FLOW 0x17 /* hash only */
|
||||
#define GTPC_TEID_V6_FLOW 0x18 /* hash only */
|
||||
|
||||
/* Use for GTP-U and extended headers for the PSC (PDU Session Container).
|
||||
* The format of these GTP packets includes TEID and QFI.
|
||||
* In 5G communication using UPF (User Plane Function),
|
||||
* data communication with this extended header is performed.
|
||||
*/
|
||||
#define GTPU_EH_V4_FLOW 0x19 /* hash only */
|
||||
#define GTPU_EH_V6_FLOW 0x1a /* hash only */
|
||||
|
||||
/* Use for GTP-U IPv4 and v6 PSC (PDU Session Container) extended headers.
|
||||
* This differs from GTPU_EH_V(4|6)_FLOW in that it is distinguished by
|
||||
* UL/DL included in the PSC.
|
||||
* There are differences in the data included based on Downlink/Uplink,
|
||||
* and can be used to distinguish packets.
|
||||
* The functions described so far are useful when you want to
|
||||
* handle communication from the mobile network in UPF, PGW, etc.
|
||||
*/
|
||||
#define GTPU_UL_V4_FLOW 0x1b /* hash only */
|
||||
#define GTPU_UL_V6_FLOW 0x1c /* hash only */
|
||||
#define GTPU_DL_V4_FLOW 0x1d /* hash only */
|
||||
#define GTPU_DL_V6_FLOW 0x1e /* hash only */
|
||||
|
||||
/* Flag to enable additional fields in struct ethtool_rx_flow_spec */
|
||||
#define FLOW_EXT 0x80000000
|
||||
#define FLOW_MAC_EXT 0x40000000
|
||||
|
@ -2037,6 +2084,7 @@ static inline int ethtool_validate_duplex(uint8_t duplex)
|
|||
#define RXH_IP_DST (1 << 5)
|
||||
#define RXH_L4_B_0_1 (1 << 6) /* src port in case of TCP/UDP/SCTP */
|
||||
#define RXH_L4_B_2_3 (1 << 7) /* dst port in case of TCP/UDP/SCTP */
|
||||
#define RXH_GTP_TEID (1 << 8) /* teid in case of GTP */
|
||||
#define RXH_DISCARD (1 << 31)
|
||||
|
||||
#define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
|
||||
|
|
|
@ -211,6 +211,12 @@
|
|||
* 7.39
|
||||
* - add FUSE_DIRECT_IO_ALLOW_MMAP
|
||||
* - add FUSE_STATX and related structures
|
||||
*
|
||||
* 7.40
|
||||
* - add max_stack_depth to fuse_init_out, add FUSE_PASSTHROUGH init flag
|
||||
* - add backing_id to fuse_open_out, add FOPEN_PASSTHROUGH open flag
|
||||
* - add FUSE_NO_EXPORT_SUPPORT init flag
|
||||
* - add FUSE_NOTIFY_RESEND, add FUSE_HAS_RESEND init flag
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_FUSE_H
|
||||
|
@ -242,7 +248,7 @@
|
|||
#define FUSE_KERNEL_VERSION 7
|
||||
|
||||
/** Minor version number of this interface */
|
||||
#define FUSE_KERNEL_MINOR_VERSION 39
|
||||
#define FUSE_KERNEL_MINOR_VERSION 40
|
||||
|
||||
/** The node ID of the root inode */
|
||||
#define FUSE_ROOT_ID 1
|
||||
|
@ -349,6 +355,7 @@ struct fuse_file_lock {
|
|||
* FOPEN_STREAM: the file is stream-like (no file position at all)
|
||||
* FOPEN_NOFLUSH: don't flush data cache on close (unless FUSE_WRITEBACK_CACHE)
|
||||
* FOPEN_PARALLEL_DIRECT_WRITES: Allow concurrent direct writes on the same inode
|
||||
* FOPEN_PASSTHROUGH: passthrough read/write io for this open file
|
||||
*/
|
||||
#define FOPEN_DIRECT_IO (1 << 0)
|
||||
#define FOPEN_KEEP_CACHE (1 << 1)
|
||||
|
@ -357,6 +364,7 @@ struct fuse_file_lock {
|
|||
#define FOPEN_STREAM (1 << 4)
|
||||
#define FOPEN_NOFLUSH (1 << 5)
|
||||
#define FOPEN_PARALLEL_DIRECT_WRITES (1 << 6)
|
||||
#define FOPEN_PASSTHROUGH (1 << 7)
|
||||
|
||||
/**
|
||||
* INIT request/reply flags
|
||||
|
@ -406,6 +414,9 @@ struct fuse_file_lock {
|
|||
* symlink and mknod (single group that matches parent)
|
||||
* FUSE_HAS_EXPIRE_ONLY: kernel supports expiry-only entry invalidation
|
||||
* FUSE_DIRECT_IO_ALLOW_MMAP: allow shared mmap in FOPEN_DIRECT_IO mode.
|
||||
* FUSE_NO_EXPORT_SUPPORT: explicitly disable export support
|
||||
* FUSE_HAS_RESEND: kernel supports resending pending requests, and the high bit
|
||||
* of the request ID indicates resend requests
|
||||
*/
|
||||
#define FUSE_ASYNC_READ (1 << 0)
|
||||
#define FUSE_POSIX_LOCKS (1 << 1)
|
||||
|
@ -445,6 +456,9 @@ struct fuse_file_lock {
|
|||
#define FUSE_CREATE_SUPP_GROUP (1ULL << 34)
|
||||
#define FUSE_HAS_EXPIRE_ONLY (1ULL << 35)
|
||||
#define FUSE_DIRECT_IO_ALLOW_MMAP (1ULL << 36)
|
||||
#define FUSE_PASSTHROUGH (1ULL << 37)
|
||||
#define FUSE_NO_EXPORT_SUPPORT (1ULL << 38)
|
||||
#define FUSE_HAS_RESEND (1ULL << 39)
|
||||
|
||||
/* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */
|
||||
#define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP
|
||||
|
@ -631,6 +645,7 @@ enum fuse_notify_code {
|
|||
FUSE_NOTIFY_STORE = 4,
|
||||
FUSE_NOTIFY_RETRIEVE = 5,
|
||||
FUSE_NOTIFY_DELETE = 6,
|
||||
FUSE_NOTIFY_RESEND = 7,
|
||||
FUSE_NOTIFY_CODE_MAX,
|
||||
};
|
||||
|
||||
|
@ -757,7 +772,7 @@ struct fuse_create_in {
|
|||
struct fuse_open_out {
|
||||
uint64_t fh;
|
||||
uint32_t open_flags;
|
||||
uint32_t padding;
|
||||
int32_t backing_id;
|
||||
};
|
||||
|
||||
struct fuse_release_in {
|
||||
|
@ -873,7 +888,8 @@ struct fuse_init_out {
|
|||
uint16_t max_pages;
|
||||
uint16_t map_alignment;
|
||||
uint32_t flags2;
|
||||
uint32_t unused[7];
|
||||
uint32_t max_stack_depth;
|
||||
uint32_t unused[6];
|
||||
};
|
||||
|
||||
#define CUSE_INIT_INFO_MAX 4096
|
||||
|
@ -956,6 +972,14 @@ struct fuse_fallocate_in {
|
|||
uint32_t padding;
|
||||
};
|
||||
|
||||
/**
|
||||
* FUSE request unique ID flag
|
||||
*
|
||||
* Indicates whether this is a resend request. The receiver should handle this
|
||||
* request accordingly.
|
||||
*/
|
||||
#define FUSE_UNIQUE_RESEND (1ULL << 63)
|
||||
|
||||
struct fuse_in_header {
|
||||
uint32_t len;
|
||||
uint32_t opcode;
|
||||
|
@ -1045,9 +1069,18 @@ struct fuse_notify_retrieve_in {
|
|||
uint64_t dummy4;
|
||||
};
|
||||
|
||||
struct fuse_backing_map {
|
||||
int32_t fd;
|
||||
uint32_t flags;
|
||||
uint64_t padding;
|
||||
};
|
||||
|
||||
/* Device ioctls: */
|
||||
#define FUSE_DEV_IOC_MAGIC 229
|
||||
#define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
|
||||
#define FUSE_DEV_IOC_BACKING_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 1, \
|
||||
struct fuse_backing_map)
|
||||
#define FUSE_DEV_IOC_BACKING_CLOSE _IOW(FUSE_DEV_IOC_MAGIC, 2, uint32_t)
|
||||
|
||||
struct fuse_lseek_in {
|
||||
uint64_t fh;
|
||||
|
|
|
@ -602,6 +602,7 @@
|
|||
|
||||
#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */
|
||||
#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */
|
||||
#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */
|
||||
|
||||
#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */
|
||||
#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */
|
||||
|
|
|
@ -309,6 +309,8 @@ struct virtio_gpu_cmd_submit {
|
|||
|
||||
#define VIRTIO_GPU_CAPSET_VIRGL 1
|
||||
#define VIRTIO_GPU_CAPSET_VIRGL2 2
|
||||
/* 3 is reserved for gfxstream */
|
||||
#define VIRTIO_GPU_CAPSET_VENUS 4
|
||||
|
||||
/* VIRTIO_GPU_CMD_GET_CAPSET_INFO */
|
||||
struct virtio_gpu_get_capset_info {
|
||||
|
|
|
@ -240,7 +240,7 @@ struct virtio_pci_cfg_cap {
|
|||
#define VIRTIO_ADMIN_CMD_LEGACY_DEV_CFG_READ 0x5
|
||||
#define VIRTIO_ADMIN_CMD_LEGACY_NOTIFY_INFO 0x6
|
||||
|
||||
struct QEMU_PACKED virtio_admin_cmd_hdr {
|
||||
struct virtio_admin_cmd_hdr {
|
||||
uint16_t opcode;
|
||||
/*
|
||||
* 1 - SR-IOV
|
||||
|
@ -252,20 +252,20 @@ struct QEMU_PACKED virtio_admin_cmd_hdr {
|
|||
uint64_t group_member_id;
|
||||
};
|
||||
|
||||
struct QEMU_PACKED virtio_admin_cmd_status {
|
||||
struct virtio_admin_cmd_status {
|
||||
uint16_t status;
|
||||
uint16_t status_qualifier;
|
||||
/* Unused, reserved for future extensions. */
|
||||
uint8_t reserved2[4];
|
||||
};
|
||||
|
||||
struct QEMU_PACKED virtio_admin_cmd_legacy_wr_data {
|
||||
struct virtio_admin_cmd_legacy_wr_data {
|
||||
uint8_t offset; /* Starting offset of the register(s) to write. */
|
||||
uint8_t reserved[7];
|
||||
uint8_t registers[];
|
||||
};
|
||||
|
||||
struct QEMU_PACKED virtio_admin_cmd_legacy_rd_data {
|
||||
struct virtio_admin_cmd_legacy_rd_data {
|
||||
uint8_t offset; /* Starting offset of the register(s) to read. */
|
||||
};
|
||||
|
||||
|
@ -275,7 +275,7 @@ struct QEMU_PACKED virtio_admin_cmd_legacy_rd_data {
|
|||
|
||||
#define VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO 4
|
||||
|
||||
struct QEMU_PACKED virtio_admin_cmd_notify_info_data {
|
||||
struct virtio_admin_cmd_notify_info_data {
|
||||
uint8_t flags; /* 0 = end of list, 1 = owner device, 2 = member device */
|
||||
uint8_t bar; /* BAR of the member or the owner device */
|
||||
uint8_t padding[6];
|
||||
|
|
|
@ -7,6 +7,14 @@
|
|||
|
||||
#include "standard-headers/linux/virtio_types.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* FEATURE BITS
|
||||
*/
|
||||
enum {
|
||||
/* device supports control elements */
|
||||
VIRTIO_SND_F_CTLS = 0
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* CONFIGURATION SPACE
|
||||
*/
|
||||
|
@ -17,6 +25,8 @@ struct virtio_snd_config {
|
|||
uint32_t streams;
|
||||
/* # of available channel maps */
|
||||
uint32_t chmaps;
|
||||
/* # of available control elements */
|
||||
uint32_t controls;
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -55,6 +65,15 @@ enum {
|
|||
/* channel map control request types */
|
||||
VIRTIO_SND_R_CHMAP_INFO = 0x0200,
|
||||
|
||||
/* control element request types */
|
||||
VIRTIO_SND_R_CTL_INFO = 0x0300,
|
||||
VIRTIO_SND_R_CTL_ENUM_ITEMS,
|
||||
VIRTIO_SND_R_CTL_READ,
|
||||
VIRTIO_SND_R_CTL_WRITE,
|
||||
VIRTIO_SND_R_CTL_TLV_READ,
|
||||
VIRTIO_SND_R_CTL_TLV_WRITE,
|
||||
VIRTIO_SND_R_CTL_TLV_COMMAND,
|
||||
|
||||
/* jack event types */
|
||||
VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
|
||||
VIRTIO_SND_EVT_JACK_DISCONNECTED,
|
||||
|
@ -63,6 +82,9 @@ enum {
|
|||
VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
|
||||
VIRTIO_SND_EVT_PCM_XRUN,
|
||||
|
||||
/* control element event types */
|
||||
VIRTIO_SND_EVT_CTL_NOTIFY = 0x1200,
|
||||
|
||||
/* common status codes */
|
||||
VIRTIO_SND_S_OK = 0x8000,
|
||||
VIRTIO_SND_S_BAD_MSG,
|
||||
|
@ -331,4 +353,136 @@ struct virtio_snd_chmap_info {
|
|||
uint8_t positions[VIRTIO_SND_CHMAP_MAX_SIZE];
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* CONTROL ELEMENTS MESSAGES
|
||||
*/
|
||||
struct virtio_snd_ctl_hdr {
|
||||
/* VIRTIO_SND_R_CTL_XXX */
|
||||
struct virtio_snd_hdr hdr;
|
||||
/* 0 ... virtio_snd_config::controls - 1 */
|
||||
uint32_t control_id;
|
||||
};
|
||||
|
||||
/* supported roles for control elements */
|
||||
enum {
|
||||
VIRTIO_SND_CTL_ROLE_UNDEFINED = 0,
|
||||
VIRTIO_SND_CTL_ROLE_VOLUME,
|
||||
VIRTIO_SND_CTL_ROLE_MUTE,
|
||||
VIRTIO_SND_CTL_ROLE_GAIN
|
||||
};
|
||||
|
||||
/* supported value types for control elements */
|
||||
enum {
|
||||
VIRTIO_SND_CTL_TYPE_BOOLEAN = 0,
|
||||
VIRTIO_SND_CTL_TYPE_INTEGER,
|
||||
VIRTIO_SND_CTL_TYPE_INTEGER64,
|
||||
VIRTIO_SND_CTL_TYPE_ENUMERATED,
|
||||
VIRTIO_SND_CTL_TYPE_BYTES,
|
||||
VIRTIO_SND_CTL_TYPE_IEC958
|
||||
};
|
||||
|
||||
/* supported access rights for control elements */
|
||||
enum {
|
||||
VIRTIO_SND_CTL_ACCESS_READ = 0,
|
||||
VIRTIO_SND_CTL_ACCESS_WRITE,
|
||||
VIRTIO_SND_CTL_ACCESS_VOLATILE,
|
||||
VIRTIO_SND_CTL_ACCESS_INACTIVE,
|
||||
VIRTIO_SND_CTL_ACCESS_TLV_READ,
|
||||
VIRTIO_SND_CTL_ACCESS_TLV_WRITE,
|
||||
VIRTIO_SND_CTL_ACCESS_TLV_COMMAND
|
||||
};
|
||||
|
||||
struct virtio_snd_ctl_info {
|
||||
/* common header */
|
||||
struct virtio_snd_info hdr;
|
||||
/* element role (VIRTIO_SND_CTL_ROLE_XXX) */
|
||||
uint32_t role;
|
||||
/* element value type (VIRTIO_SND_CTL_TYPE_XXX) */
|
||||
uint32_t type;
|
||||
/* element access right bit map (1 << VIRTIO_SND_CTL_ACCESS_XXX) */
|
||||
uint32_t access;
|
||||
/* # of members in the element value */
|
||||
uint32_t count;
|
||||
/* index for an element with a non-unique name */
|
||||
uint32_t index;
|
||||
/* name identifier string for the element */
|
||||
uint8_t name[44];
|
||||
/* additional information about the element's value */
|
||||
union {
|
||||
/* VIRTIO_SND_CTL_TYPE_INTEGER */
|
||||
struct {
|
||||
/* minimum supported value */
|
||||
uint32_t min;
|
||||
/* maximum supported value */
|
||||
uint32_t max;
|
||||
/* fixed step size for value (0 = variable size) */
|
||||
uint32_t step;
|
||||
} integer;
|
||||
/* VIRTIO_SND_CTL_TYPE_INTEGER64 */
|
||||
struct {
|
||||
/* minimum supported value */
|
||||
uint64_t min;
|
||||
/* maximum supported value */
|
||||
uint64_t max;
|
||||
/* fixed step size for value (0 = variable size) */
|
||||
uint64_t step;
|
||||
} integer64;
|
||||
/* VIRTIO_SND_CTL_TYPE_ENUMERATED */
|
||||
struct {
|
||||
/* # of options supported for value */
|
||||
uint32_t items;
|
||||
} enumerated;
|
||||
} value;
|
||||
};
|
||||
|
||||
struct virtio_snd_ctl_enum_item {
|
||||
/* option name */
|
||||
uint8_t item[64];
|
||||
};
|
||||
|
||||
struct virtio_snd_ctl_iec958 {
|
||||
/* AES/IEC958 channel status bits */
|
||||
uint8_t status[24];
|
||||
/* AES/IEC958 subcode bits */
|
||||
uint8_t subcode[147];
|
||||
/* nothing */
|
||||
uint8_t pad;
|
||||
/* AES/IEC958 subframe bits */
|
||||
uint8_t dig_subframe[4];
|
||||
};
|
||||
|
||||
struct virtio_snd_ctl_value {
|
||||
union {
|
||||
/* VIRTIO_SND_CTL_TYPE_BOOLEAN|INTEGER value */
|
||||
uint32_t integer[128];
|
||||
/* VIRTIO_SND_CTL_TYPE_INTEGER64 value */
|
||||
uint64_t integer64[64];
|
||||
/* VIRTIO_SND_CTL_TYPE_ENUMERATED value (option indexes) */
|
||||
uint32_t enumerated[128];
|
||||
/* VIRTIO_SND_CTL_TYPE_BYTES value */
|
||||
uint8_t bytes[512];
|
||||
/* VIRTIO_SND_CTL_TYPE_IEC958 value */
|
||||
struct virtio_snd_ctl_iec958 iec958;
|
||||
} value;
|
||||
};
|
||||
|
||||
/* supported event reason types */
|
||||
enum {
|
||||
/* element's value has changed */
|
||||
VIRTIO_SND_CTL_EVT_MASK_VALUE = 0,
|
||||
/* element's information has changed */
|
||||
VIRTIO_SND_CTL_EVT_MASK_INFO,
|
||||
/* element's metadata has changed */
|
||||
VIRTIO_SND_CTL_EVT_MASK_TLV
|
||||
};
|
||||
|
||||
struct virtio_snd_ctl_event {
|
||||
/* VIRTIO_SND_EVT_CTL_NOTIFY */
|
||||
struct virtio_snd_hdr hdr;
|
||||
/* 0 ... virtio_snd_config::controls - 1 */
|
||||
uint16_t control_id;
|
||||
/* event reason bit map (1 << VIRTIO_SND_CTL_EVT_MASK_XXX) */
|
||||
uint16_t mask;
|
||||
};
|
||||
|
||||
#endif /* VIRTIO_SND_IF_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue