Update Linux headers to 5.13-rc4
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <20210603191541.2862286-1-ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
18e53dff93
commit
278f064e45
@ -70,30 +70,6 @@ enum pvrdma_mtu {
|
||||
PVRDMA_MTU_4096 = 5,
|
||||
};
|
||||
|
||||
static inline int pvrdma_mtu_enum_to_int(enum pvrdma_mtu mtu)
|
||||
{
|
||||
switch (mtu) {
|
||||
case PVRDMA_MTU_256: return 256;
|
||||
case PVRDMA_MTU_512: return 512;
|
||||
case PVRDMA_MTU_1024: return 1024;
|
||||
case PVRDMA_MTU_2048: return 2048;
|
||||
case PVRDMA_MTU_4096: return 4096;
|
||||
default: return -1;
|
||||
}
|
||||
}
|
||||
|
||||
static inline enum pvrdma_mtu pvrdma_mtu_int_to_enum(int mtu)
|
||||
{
|
||||
switch (mtu) {
|
||||
case 256: return PVRDMA_MTU_256;
|
||||
case 512: return PVRDMA_MTU_512;
|
||||
case 1024: return PVRDMA_MTU_1024;
|
||||
case 2048: return PVRDMA_MTU_2048;
|
||||
case 4096:
|
||||
default: return PVRDMA_MTU_4096;
|
||||
}
|
||||
}
|
||||
|
||||
enum pvrdma_port_state {
|
||||
PVRDMA_PORT_NOP = 0,
|
||||
PVRDMA_PORT_DOWN = 1,
|
||||
@ -138,17 +114,6 @@ enum pvrdma_port_width {
|
||||
PVRDMA_WIDTH_12X = 8,
|
||||
};
|
||||
|
||||
static inline int pvrdma_width_enum_to_int(enum pvrdma_port_width width)
|
||||
{
|
||||
switch (width) {
|
||||
case PVRDMA_WIDTH_1X: return 1;
|
||||
case PVRDMA_WIDTH_4X: return 4;
|
||||
case PVRDMA_WIDTH_8X: return 8;
|
||||
case PVRDMA_WIDTH_12X: return 12;
|
||||
default: return -1;
|
||||
}
|
||||
}
|
||||
|
||||
enum pvrdma_port_speed {
|
||||
PVRDMA_SPEED_SDR = 1,
|
||||
PVRDMA_SPEED_DDR = 2,
|
||||
|
@ -526,6 +526,25 @@ extern "C" {
|
||||
*/
|
||||
#define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7)
|
||||
|
||||
/*
|
||||
* Intel Color Control Surface with Clear Color (CCS) for Gen-12 render
|
||||
* compression.
|
||||
*
|
||||
* The main surface is Y-tiled and is at plane index 0 whereas CCS is linear
|
||||
* and at index 1. The clear color is stored at index 2, and the pitch should
|
||||
* be ignored. The clear color structure is 256 bits. The first 128 bits
|
||||
* represents Raw Clear Color Red, Green, Blue and Alpha color each represented
|
||||
* by 32 bits. The raw clear color is consumed by the 3d engine and generates
|
||||
* the converted clear color of size 64 bits. The first 32 bits store the Lower
|
||||
* Converted Clear Color value and the next 32 bits store the Higher Converted
|
||||
* Clear Color value when applicable. The Converted Clear Color values are
|
||||
* consumed by the DE. The last 64 bits are used to store Color Discard Enable
|
||||
* and Depth Clear Value Valid which are ignored by the DE. A CCS cache line
|
||||
* corresponds to an area of 4x1 tiles in the main surface. The main surface
|
||||
* pitch is required to be a multiple of 4 tile widths.
|
||||
*/
|
||||
#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8)
|
||||
|
||||
/*
|
||||
* Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
|
||||
*
|
||||
@ -1035,9 +1054,9 @@ drm_fourcc_canonicalize_nvidia_format_mod(uint64_t modifier)
|
||||
* Not all combinations are valid, and different SoCs may support different
|
||||
* combinations of layout and options.
|
||||
*/
|
||||
#define __fourcc_mod_amlogic_layout_mask 0xf
|
||||
#define __fourcc_mod_amlogic_layout_mask 0xff
|
||||
#define __fourcc_mod_amlogic_options_shift 8
|
||||
#define __fourcc_mod_amlogic_options_mask 0xf
|
||||
#define __fourcc_mod_amlogic_options_mask 0xff
|
||||
|
||||
#define DRM_FORMAT_MOD_AMLOGIC_FBC(__layout, __options) \
|
||||
fourcc_mod_code(AMLOGIC, \
|
||||
|
@ -26,6 +26,14 @@
|
||||
* have the same layout for 32-bit and 64-bit userland.
|
||||
*/
|
||||
|
||||
/* Note on reserved space.
|
||||
* Reserved fields must not be accessed directly by user space because
|
||||
* they may be replaced by a different field in the future. They must
|
||||
* be initialized to zero before making the request, e.g. via memset
|
||||
* of the entire structure or implicitly by not being set in a structure
|
||||
* initializer.
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct ethtool_cmd - DEPRECATED, link control and status
|
||||
* This structure is DEPRECATED, please use struct ethtool_link_settings.
|
||||
@ -67,6 +75,7 @@
|
||||
* and other link features that the link partner advertised
|
||||
* through autonegotiation; 0 if unknown or not applicable.
|
||||
* Read-only.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* The link speed in Mbps is split between @speed and @speed_hi. Use
|
||||
* the ethtool_cmd_speed() and ethtool_cmd_speed_set() functions to
|
||||
@ -155,6 +164,7 @@ static inline uint32_t ethtool_cmd_speed(const struct ethtool_cmd *ep)
|
||||
* @bus_info: Device bus address. This should match the dev_name()
|
||||
* string for the underlying bus device, if there is one. May be
|
||||
* an empty string.
|
||||
* @reserved2: Reserved for future use; see the note on reserved space.
|
||||
* @n_priv_flags: Number of flags valid for %ETHTOOL_GPFLAGS and
|
||||
* %ETHTOOL_SPFLAGS commands; also the number of strings in the
|
||||
* %ETH_SS_PRIV_FLAGS set
|
||||
@ -356,6 +366,7 @@ struct ethtool_eeprom {
|
||||
* @tx_lpi_timer: Time in microseconds the interface delays prior to asserting
|
||||
* its tx lpi (after reaching 'idle' state). Effective only when eee
|
||||
* was negotiated and tx_lpi_enabled was set.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
*/
|
||||
struct ethtool_eee {
|
||||
uint32_t cmd;
|
||||
@ -374,6 +385,7 @@ struct ethtool_eee {
|
||||
* @cmd: %ETHTOOL_GMODULEINFO
|
||||
* @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx
|
||||
* @eeprom_len: Length of the eeprom
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* This structure is used to return the information to
|
||||
* properly size memory for a subsequent call to %ETHTOOL_GMODULEEEPROM.
|
||||
@ -579,9 +591,7 @@ struct ethtool_pauseparam {
|
||||
uint32_t tx_pause;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_state - link extended state
|
||||
*/
|
||||
/* Link extended state */
|
||||
enum ethtool_link_ext_state {
|
||||
ETHTOOL_LINK_EXT_STATE_AUTONEG,
|
||||
ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE,
|
||||
@ -595,10 +605,7 @@ enum ethtool_link_ext_state {
|
||||
ETHTOOL_LINK_EXT_STATE_OVERHEAT,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_autoneg - more information in addition to
|
||||
* ETHTOOL_LINK_EXT_STATE_AUTONEG.
|
||||
*/
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_AUTONEG. */
|
||||
enum ethtool_link_ext_substate_autoneg {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED,
|
||||
@ -608,9 +615,7 @@ enum ethtool_link_ext_substate_autoneg {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_link_training - more information in addition to
|
||||
* ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_link_training {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
|
||||
@ -619,9 +624,7 @@ enum ethtool_link_ext_substate_link_training {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_logical_mismatch - more information in addition
|
||||
* to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_link_logical_mismatch {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
|
||||
@ -631,19 +634,14 @@ enum ethtool_link_ext_substate_link_logical_mismatch {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_bad_signal_integrity - more information in
|
||||
* addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_bad_signal_integrity {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_cable_issue - more information in
|
||||
* addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE.
|
||||
*/
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. */
|
||||
enum ethtool_link_ext_substate_cable_issue {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
|
||||
@ -661,6 +659,7 @@ enum ethtool_link_ext_substate_cable_issue {
|
||||
* now deprecated
|
||||
* @ETH_SS_FEATURES: Device feature names
|
||||
* @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
|
||||
* @ETH_SS_TUNABLES: tunable names
|
||||
* @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
|
||||
* @ETH_SS_PHY_TUNABLES: PHY tunable names
|
||||
* @ETH_SS_LINK_MODES: link mode names
|
||||
@ -670,6 +669,13 @@ enum ethtool_link_ext_substate_cable_issue {
|
||||
* @ETH_SS_TS_TX_TYPES: timestamping Tx types
|
||||
* @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
|
||||
* @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
|
||||
* @ETH_SS_STATS_STD: standardized stats
|
||||
* @ETH_SS_STATS_ETH_PHY: names of IEEE 802.3 PHY statistics
|
||||
* @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics
|
||||
* @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics
|
||||
* @ETH_SS_STATS_RMON: names of RMON statistics
|
||||
*
|
||||
* @ETH_SS_COUNT: number of defined string sets
|
||||
*/
|
||||
enum ethtool_stringset {
|
||||
ETH_SS_TEST = 0,
|
||||
@ -688,6 +694,11 @@ enum ethtool_stringset {
|
||||
ETH_SS_TS_TX_TYPES,
|
||||
ETH_SS_TS_RX_FILTERS,
|
||||
ETH_SS_UDP_TUNNEL_TYPES,
|
||||
ETH_SS_STATS_STD,
|
||||
ETH_SS_STATS_ETH_PHY,
|
||||
ETH_SS_STATS_ETH_MAC,
|
||||
ETH_SS_STATS_ETH_CTRL,
|
||||
ETH_SS_STATS_RMON,
|
||||
|
||||
/* add new constants above here */
|
||||
ETH_SS_COUNT
|
||||
@ -715,6 +726,7 @@ struct ethtool_gstrings {
|
||||
/**
|
||||
* struct ethtool_sset_info - string set information
|
||||
* @cmd: Command number = %ETHTOOL_GSSET_INFO
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
* @sset_mask: On entry, a bitmask of string sets to query, with bits
|
||||
* numbered according to &enum ethtool_stringset. On return, a
|
||||
* bitmask of those string sets queried that are supported.
|
||||
@ -759,6 +771,7 @@ enum ethtool_test_flags {
|
||||
* @flags: A bitmask of flags from &enum ethtool_test_flags. Some
|
||||
* flags may be set by the user on entry; others may be set by
|
||||
* the driver on return.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
* @len: On return, the number of test results
|
||||
* @data: Array of test results
|
||||
*
|
||||
@ -959,6 +972,7 @@ union ethtool_flow_union {
|
||||
* @vlan_etype: VLAN EtherType
|
||||
* @vlan_tci: VLAN tag control information
|
||||
* @data: user defined data
|
||||
* @padding: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT
|
||||
* is set in &struct ethtool_rx_flow_spec @flow_type.
|
||||
@ -1134,7 +1148,8 @@ struct ethtool_rxfh_indir {
|
||||
* hardware hash key.
|
||||
* @hfunc: Defines the current RSS hash function used by HW (or to be set to).
|
||||
* Valid values are one of the %ETH_RSS_HASH_*.
|
||||
* @rsvd: Reserved for future extensions.
|
||||
* @rsvd8: Reserved for future use; see the note on reserved space.
|
||||
* @rsvd32: Reserved for future use; see the note on reserved space.
|
||||
* @rss_config: RX ring/queue index for each hash value i.e., indirection table
|
||||
* of @indir_size uint32_t elements, followed by hash key of @key_size
|
||||
* bytes.
|
||||
@ -1302,7 +1317,9 @@ struct ethtool_sfeatures {
|
||||
* @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags
|
||||
* @phc_index: device index of the associated PHC, or -1 if there is none
|
||||
* @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values
|
||||
* @tx_reserved: Reserved for future use; see the note on reserved space.
|
||||
* @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values
|
||||
* @rx_reserved: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* The bits in the 'tx_types' and 'rx_filters' fields correspond to
|
||||
* the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values,
|
||||
@ -1376,15 +1393,33 @@ struct ethtool_per_queue_op {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_fecparam - Ethernet forward error correction(fec) parameters
|
||||
* struct ethtool_fecparam - Ethernet Forward Error Correction parameters
|
||||
* @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM
|
||||
* @active_fec: FEC mode which is active on porte
|
||||
* @fec: Bitmask of supported/configured FEC modes
|
||||
* @rsvd: Reserved for future extensions. i.e FEC bypass feature.
|
||||
* @active_fec: FEC mode which is active on the port, single bit set, GET only.
|
||||
* @fec: Bitmask of configured FEC modes.
|
||||
* @reserved: Reserved for future extensions, ignore on GET, write 0 for SET.
|
||||
*
|
||||
* Drivers should reject a non-zero setting of @autoneg when
|
||||
* autoneogotiation is disabled (or not supported) for the link.
|
||||
* Note that @reserved was never validated on input and ethtool user space
|
||||
* left it uninitialized when calling SET. Hence going forward it can only be
|
||||
* used to return a value to userspace with GET.
|
||||
*
|
||||
* FEC modes supported by the device can be read via %ETHTOOL_GLINKSETTINGS.
|
||||
* FEC settings are configured by link autonegotiation whenever it's enabled.
|
||||
* With autoneg on %ETHTOOL_GFECPARAM can be used to read the current mode.
|
||||
*
|
||||
* When autoneg is disabled %ETHTOOL_SFECPARAM controls the FEC settings.
|
||||
* It is recommended that drivers only accept a single bit set in @fec.
|
||||
* When multiple bits are set in @fec drivers may pick mode in an implementation
|
||||
* dependent way. Drivers should reject mixing %ETHTOOL_FEC_AUTO_BIT with other
|
||||
* FEC modes, because it's unclear whether in this case other modes constrain
|
||||
* AUTO or are independent choices.
|
||||
* Drivers must reject SET requests if they support none of the requested modes.
|
||||
*
|
||||
* If device does not support FEC drivers may use %ETHTOOL_FEC_NONE instead
|
||||
* of returning %EOPNOTSUPP from %ETHTOOL_GFECPARAM.
|
||||
*
|
||||
* See enum ethtool_fec_config_bits for definition of valid bits for both
|
||||
* @fec and @active_fec.
|
||||
*/
|
||||
struct ethtool_fecparam {
|
||||
uint32_t cmd;
|
||||
@ -1396,11 +1431,16 @@ struct ethtool_fecparam {
|
||||
|
||||
/**
|
||||
* enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration
|
||||
* @ETHTOOL_FEC_NONE: FEC mode configuration is not supported
|
||||
* @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver
|
||||
* @ETHTOOL_FEC_OFF: No FEC Mode
|
||||
* @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode
|
||||
* @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode
|
||||
* @ETHTOOL_FEC_NONE_BIT: FEC mode configuration is not supported. Should not
|
||||
* be used together with other bits. GET only.
|
||||
* @ETHTOOL_FEC_AUTO_BIT: Select default/best FEC mode automatically, usually
|
||||
* based link mode and SFP parameters read from module's
|
||||
* EEPROM. This bit does _not_ mean autonegotiation.
|
||||
* @ETHTOOL_FEC_OFF_BIT: No FEC Mode
|
||||
* @ETHTOOL_FEC_RS_BIT: Reed-Solomon FEC Mode
|
||||
* @ETHTOOL_FEC_BASER_BIT: Base-R/Reed-Solomon FEC Mode
|
||||
* @ETHTOOL_FEC_LLRS_BIT: Low Latency Reed Solomon FEC Mode (25G/50G Ethernet
|
||||
* Consortium)
|
||||
*/
|
||||
enum ethtool_fec_config_bits {
|
||||
ETHTOOL_FEC_NONE_BIT,
|
||||
@ -1958,6 +1998,11 @@ enum ethtool_reset_flags {
|
||||
* autonegotiation; 0 if unknown or not applicable. Read-only.
|
||||
* @transceiver: Used to distinguish different possible PHY types,
|
||||
* reported consistently by PHYLIB. Read-only.
|
||||
* @master_slave_cfg: Master/slave port mode.
|
||||
* @master_slave_state: Master/slave port state.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
* @reserved1: Reserved for future use; see the note on reserved space.
|
||||
* @link_mode_masks: Variable length bitmaps.
|
||||
*
|
||||
* If autonegotiation is disabled, the speed and @duplex represent the
|
||||
* fixed link mode and are writable if the driver supports multiple
|
||||
|
@ -179,6 +179,8 @@
|
||||
* 7.33
|
||||
* - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID
|
||||
* - add FUSE_OPEN_KILL_SUIDGID
|
||||
* - extend fuse_setxattr_in, add FUSE_SETXATTR_EXT
|
||||
* - add FUSE_SETXATTR_ACL_KILL_SGID
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_FUSE_H
|
||||
@ -326,6 +328,7 @@ struct fuse_file_lock {
|
||||
* does not have CAP_FSETID. Additionally upon
|
||||
* write/truncate sgid is killed only if file has group
|
||||
* execute permission. (Same as Linux VFS behavior).
|
||||
* FUSE_SETXATTR_EXT: Server supports extended struct fuse_setxattr_in
|
||||
*/
|
||||
#define FUSE_ASYNC_READ (1 << 0)
|
||||
#define FUSE_POSIX_LOCKS (1 << 1)
|
||||
@ -356,6 +359,7 @@ struct fuse_file_lock {
|
||||
#define FUSE_MAP_ALIGNMENT (1 << 26)
|
||||
#define FUSE_SUBMOUNTS (1 << 27)
|
||||
#define FUSE_HANDLE_KILLPRIV_V2 (1 << 28)
|
||||
#define FUSE_SETXATTR_EXT (1 << 29)
|
||||
|
||||
/**
|
||||
* CUSE INIT request/reply flags
|
||||
@ -447,6 +451,12 @@ struct fuse_file_lock {
|
||||
*/
|
||||
#define FUSE_OPEN_KILL_SUIDGID (1 << 0)
|
||||
|
||||
/**
|
||||
* setxattr flags
|
||||
* FUSE_SETXATTR_ACL_KILL_SGID: Clear SGID when system.posix_acl_access is set
|
||||
*/
|
||||
#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
|
||||
|
||||
enum fuse_opcode {
|
||||
FUSE_LOOKUP = 1,
|
||||
FUSE_FORGET = 2, /* no reply */
|
||||
@ -677,9 +687,13 @@ struct fuse_fsync_in {
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
#define FUSE_COMPAT_SETXATTR_IN_SIZE 8
|
||||
|
||||
struct fuse_setxattr_in {
|
||||
uint32_t size;
|
||||
uint32_t flags;
|
||||
uint32_t setxattr_flags;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_getxattr_in {
|
||||
@ -899,7 +913,8 @@ struct fuse_notify_retrieve_in {
|
||||
};
|
||||
|
||||
/* Device ioctls: */
|
||||
#define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t)
|
||||
#define FUSE_DEV_IOC_MAGIC 229
|
||||
#define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
|
||||
|
||||
struct fuse_lseek_in {
|
||||
uint64_t fh;
|
||||
|
@ -81,7 +81,7 @@ struct input_id {
|
||||
* in units per radian.
|
||||
* When INPUT_PROP_ACCELEROMETER is set the resolution changes.
|
||||
* The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in
|
||||
* in units per g (units/g) and in units per degree per second
|
||||
* units per g (units/g) and in units per degree per second
|
||||
* (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ).
|
||||
*/
|
||||
struct input_absinfo {
|
||||
|
31
include/standard-headers/linux/virtio_bt.h
Normal file
31
include/standard-headers/linux/virtio_bt.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause */
|
||||
|
||||
#ifndef _LINUX_VIRTIO_BT_H
|
||||
#define _LINUX_VIRTIO_BT_H
|
||||
|
||||
#include "standard-headers/linux/virtio_types.h"
|
||||
|
||||
/* Feature bits */
|
||||
#define VIRTIO_BT_F_VND_HCI 0 /* Indicates vendor command support */
|
||||
#define VIRTIO_BT_F_MSFT_EXT 1 /* Indicates MSFT vendor support */
|
||||
#define VIRTIO_BT_F_AOSP_EXT 2 /* Indicates AOSP vendor support */
|
||||
|
||||
enum virtio_bt_config_type {
|
||||
VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
|
||||
VIRTIO_BT_CONFIG_TYPE_AMP = 1,
|
||||
};
|
||||
|
||||
enum virtio_bt_config_vendor {
|
||||
VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
|
||||
VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1,
|
||||
VIRTIO_BT_CONFIG_VENDOR_INTEL = 2,
|
||||
VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3,
|
||||
};
|
||||
|
||||
struct virtio_bt_config {
|
||||
uint8_t type;
|
||||
uint16_t vendor;
|
||||
uint16_t msft_opcode;
|
||||
} QEMU_PACKED;
|
||||
|
||||
#endif /* _LINUX_VIRTIO_BT_H */
|
@ -51,8 +51,10 @@
|
||||
#define VIRTIO_ID_PSTORE 22 /* virtio pstore device */
|
||||
#define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */
|
||||
#define VIRTIO_ID_MEM 24 /* virtio mem */
|
||||
#define VIRTIO_ID_SOUND 25 /* virtio sound */
|
||||
#define VIRTIO_ID_FS 26 /* virtio filesystem */
|
||||
#define VIRTIO_ID_PMEM 27 /* virtio pmem */
|
||||
#define VIRTIO_ID_BT 28 /* virtio bluetooth */
|
||||
#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */
|
||||
|
||||
#endif /* _LINUX_VIRTIO_IDS_H */
|
||||
|
334
include/standard-headers/linux/virtio_snd.h
Normal file
334
include/standard-headers/linux/virtio_snd.h
Normal file
@ -0,0 +1,334 @@
|
||||
/* SPDX-License-Identifier: BSD-3-Clause */
|
||||
/*
|
||||
* Copyright (C) 2021 OpenSynergy GmbH
|
||||
*/
|
||||
#ifndef VIRTIO_SND_IF_H
|
||||
#define VIRTIO_SND_IF_H
|
||||
|
||||
#include "standard-headers/linux/virtio_types.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* CONFIGURATION SPACE
|
||||
*/
|
||||
struct virtio_snd_config {
|
||||
/* # of available physical jacks */
|
||||
uint32_t jacks;
|
||||
/* # of available PCM streams */
|
||||
uint32_t streams;
|
||||
/* # of available channel maps */
|
||||
uint32_t chmaps;
|
||||
};
|
||||
|
||||
enum {
|
||||
/* device virtqueue indexes */
|
||||
VIRTIO_SND_VQ_CONTROL = 0,
|
||||
VIRTIO_SND_VQ_EVENT,
|
||||
VIRTIO_SND_VQ_TX,
|
||||
VIRTIO_SND_VQ_RX,
|
||||
/* # of device virtqueues */
|
||||
VIRTIO_SND_VQ_MAX
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* COMMON DEFINITIONS
|
||||
*/
|
||||
|
||||
/* supported dataflow directions */
|
||||
enum {
|
||||
VIRTIO_SND_D_OUTPUT = 0,
|
||||
VIRTIO_SND_D_INPUT
|
||||
};
|
||||
|
||||
enum {
|
||||
/* jack control request types */
|
||||
VIRTIO_SND_R_JACK_INFO = 1,
|
||||
VIRTIO_SND_R_JACK_REMAP,
|
||||
|
||||
/* PCM control request types */
|
||||
VIRTIO_SND_R_PCM_INFO = 0x0100,
|
||||
VIRTIO_SND_R_PCM_SET_PARAMS,
|
||||
VIRTIO_SND_R_PCM_PREPARE,
|
||||
VIRTIO_SND_R_PCM_RELEASE,
|
||||
VIRTIO_SND_R_PCM_START,
|
||||
VIRTIO_SND_R_PCM_STOP,
|
||||
|
||||
/* channel map control request types */
|
||||
VIRTIO_SND_R_CHMAP_INFO = 0x0200,
|
||||
|
||||
/* jack event types */
|
||||
VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
|
||||
VIRTIO_SND_EVT_JACK_DISCONNECTED,
|
||||
|
||||
/* PCM event types */
|
||||
VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
|
||||
VIRTIO_SND_EVT_PCM_XRUN,
|
||||
|
||||
/* common status codes */
|
||||
VIRTIO_SND_S_OK = 0x8000,
|
||||
VIRTIO_SND_S_BAD_MSG,
|
||||
VIRTIO_SND_S_NOT_SUPP,
|
||||
VIRTIO_SND_S_IO_ERR
|
||||
};
|
||||
|
||||
/* common header */
|
||||
struct virtio_snd_hdr {
|
||||
uint32_t code;
|
||||
};
|
||||
|
||||
/* event notification */
|
||||
struct virtio_snd_event {
|
||||
/* VIRTIO_SND_EVT_XXX */
|
||||
struct virtio_snd_hdr hdr;
|
||||
/* optional event data */
|
||||
uint32_t data;
|
||||
};
|
||||
|
||||
/* common control request to query an item information */
|
||||
struct virtio_snd_query_info {
|
||||
/* VIRTIO_SND_R_XXX_INFO */
|
||||
struct virtio_snd_hdr hdr;
|
||||
/* item start identifier */
|
||||
uint32_t start_id;
|
||||
/* item count to query */
|
||||
uint32_t count;
|
||||
/* item information size in bytes */
|
||||
uint32_t size;
|
||||
};
|
||||
|
||||
/* common item information header */
|
||||
struct virtio_snd_info {
|
||||
/* function group node id (High Definition Audio Specification 7.1.2) */
|
||||
uint32_t hda_fn_nid;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* JACK CONTROL MESSAGES
|
||||
*/
|
||||
struct virtio_snd_jack_hdr {
|
||||
/* VIRTIO_SND_R_JACK_XXX */
|
||||
struct virtio_snd_hdr hdr;
|
||||
/* 0 ... virtio_snd_config::jacks - 1 */
|
||||
uint32_t jack_id;
|
||||
};
|
||||
|
||||
/* supported jack features */
|
||||
enum {
|
||||
VIRTIO_SND_JACK_F_REMAP = 0
|
||||
};
|
||||
|
||||
struct virtio_snd_jack_info {
|
||||
/* common header */
|
||||
struct virtio_snd_info hdr;
|
||||
/* supported feature bit map (1 << VIRTIO_SND_JACK_F_XXX) */
|
||||
uint32_t features;
|
||||
/* pin configuration (High Definition Audio Specification 7.3.3.31) */
|
||||
uint32_t hda_reg_defconf;
|
||||
/* pin capabilities (High Definition Audio Specification 7.3.4.9) */
|
||||
uint32_t hda_reg_caps;
|
||||
/* current jack connection status (0: disconnected, 1: connected) */
|
||||
uint8_t connected;
|
||||
|
||||
uint8_t padding[7];
|
||||
};
|
||||
|
||||
/* jack remapping control request */
|
||||
struct virtio_snd_jack_remap {
|
||||
/* .code = VIRTIO_SND_R_JACK_REMAP */
|
||||
struct virtio_snd_jack_hdr hdr;
|
||||
/* selected association number */
|
||||
uint32_t association;
|
||||
/* selected sequence number */
|
||||
uint32_t sequence;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* PCM CONTROL MESSAGES
|
||||
*/
|
||||
struct virtio_snd_pcm_hdr {
|
||||
/* VIRTIO_SND_R_PCM_XXX */
|
||||
struct virtio_snd_hdr hdr;
|
||||
/* 0 ... virtio_snd_config::streams - 1 */
|
||||
uint32_t stream_id;
|
||||
};
|
||||
|
||||
/* supported PCM stream features */
|
||||
enum {
|
||||
VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
|
||||
VIRTIO_SND_PCM_F_SHMEM_GUEST,
|
||||
VIRTIO_SND_PCM_F_MSG_POLLING,
|
||||
VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
|
||||
VIRTIO_SND_PCM_F_EVT_XRUNS
|
||||
};
|
||||
|
||||
/* supported PCM sample formats */
|
||||
enum {
|
||||
/* analog formats (width / physical width) */
|
||||
VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0, /* 4 / 4 bits */
|
||||
VIRTIO_SND_PCM_FMT_MU_LAW, /* 8 / 8 bits */
|
||||
VIRTIO_SND_PCM_FMT_A_LAW, /* 8 / 8 bits */
|
||||
VIRTIO_SND_PCM_FMT_S8, /* 8 / 8 bits */
|
||||
VIRTIO_SND_PCM_FMT_U8, /* 8 / 8 bits */
|
||||
VIRTIO_SND_PCM_FMT_S16, /* 16 / 16 bits */
|
||||
VIRTIO_SND_PCM_FMT_U16, /* 16 / 16 bits */
|
||||
VIRTIO_SND_PCM_FMT_S18_3, /* 18 / 24 bits */
|
||||
VIRTIO_SND_PCM_FMT_U18_3, /* 18 / 24 bits */
|
||||
VIRTIO_SND_PCM_FMT_S20_3, /* 20 / 24 bits */
|
||||
VIRTIO_SND_PCM_FMT_U20_3, /* 20 / 24 bits */
|
||||
VIRTIO_SND_PCM_FMT_S24_3, /* 24 / 24 bits */
|
||||
VIRTIO_SND_PCM_FMT_U24_3, /* 24 / 24 bits */
|
||||
VIRTIO_SND_PCM_FMT_S20, /* 20 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_U20, /* 20 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_S24, /* 24 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_U24, /* 24 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_S32, /* 32 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_U32, /* 32 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_FLOAT, /* 32 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_FLOAT64, /* 64 / 64 bits */
|
||||
/* digital formats (width / physical width) */
|
||||
VIRTIO_SND_PCM_FMT_DSD_U8, /* 8 / 8 bits */
|
||||
VIRTIO_SND_PCM_FMT_DSD_U16, /* 16 / 16 bits */
|
||||
VIRTIO_SND_PCM_FMT_DSD_U32, /* 32 / 32 bits */
|
||||
VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME /* 32 / 32 bits */
|
||||
};
|
||||
|
||||
/* supported PCM frame rates */
|
||||
enum {
|
||||
VIRTIO_SND_PCM_RATE_5512 = 0,
|
||||
VIRTIO_SND_PCM_RATE_8000,
|
||||
VIRTIO_SND_PCM_RATE_11025,
|
||||
VIRTIO_SND_PCM_RATE_16000,
|
||||
VIRTIO_SND_PCM_RATE_22050,
|
||||
VIRTIO_SND_PCM_RATE_32000,
|
||||
VIRTIO_SND_PCM_RATE_44100,
|
||||
VIRTIO_SND_PCM_RATE_48000,
|
||||
VIRTIO_SND_PCM_RATE_64000,
|
||||
VIRTIO_SND_PCM_RATE_88200,
|
||||
VIRTIO_SND_PCM_RATE_96000,
|
||||
VIRTIO_SND_PCM_RATE_176400,
|
||||
VIRTIO_SND_PCM_RATE_192000,
|
||||
VIRTIO_SND_PCM_RATE_384000
|
||||
};
|
||||
|
||||
struct virtio_snd_pcm_info {
|
||||
/* common header */
|
||||
struct virtio_snd_info hdr;
|
||||
/* supported feature bit map (1 << VIRTIO_SND_PCM_F_XXX) */
|
||||
uint32_t features;
|
||||
/* supported sample format bit map (1 << VIRTIO_SND_PCM_FMT_XXX) */
|
||||
uint64_t formats;
|
||||
/* supported frame rate bit map (1 << VIRTIO_SND_PCM_RATE_XXX) */
|
||||
uint64_t rates;
|
||||
/* dataflow direction (VIRTIO_SND_D_XXX) */
|
||||
uint8_t direction;
|
||||
/* minimum # of supported channels */
|
||||
uint8_t channels_min;
|
||||
/* maximum # of supported channels */
|
||||
uint8_t channels_max;
|
||||
|
||||
uint8_t padding[5];
|
||||
};
|
||||
|
||||
/* set PCM stream format */
|
||||
struct virtio_snd_pcm_set_params {
|
||||
/* .code = VIRTIO_SND_R_PCM_SET_PARAMS */
|
||||
struct virtio_snd_pcm_hdr hdr;
|
||||
/* size of the hardware buffer */
|
||||
uint32_t buffer_bytes;
|
||||
/* size of the hardware period */
|
||||
uint32_t period_bytes;
|
||||
/* selected feature bit map (1 << VIRTIO_SND_PCM_F_XXX) */
|
||||
uint32_t features;
|
||||
/* selected # of channels */
|
||||
uint8_t channels;
|
||||
/* selected sample format (VIRTIO_SND_PCM_FMT_XXX) */
|
||||
uint8_t format;
|
||||
/* selected frame rate (VIRTIO_SND_PCM_RATE_XXX) */
|
||||
uint8_t rate;
|
||||
|
||||
uint8_t padding;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* PCM I/O MESSAGES
|
||||
*/
|
||||
|
||||
/* I/O request header */
|
||||
struct virtio_snd_pcm_xfer {
|
||||
/* 0 ... virtio_snd_config::streams - 1 */
|
||||
uint32_t stream_id;
|
||||
};
|
||||
|
||||
/* I/O request status */
|
||||
struct virtio_snd_pcm_status {
|
||||
/* VIRTIO_SND_S_XXX */
|
||||
uint32_t status;
|
||||
/* current device latency */
|
||||
uint32_t latency_bytes;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* CHANNEL MAP CONTROL MESSAGES
|
||||
*/
|
||||
struct virtio_snd_chmap_hdr {
|
||||
/* VIRTIO_SND_R_CHMAP_XXX */
|
||||
struct virtio_snd_hdr hdr;
|
||||
/* 0 ... virtio_snd_config::chmaps - 1 */
|
||||
uint32_t chmap_id;
|
||||
};
|
||||
|
||||
/* standard channel position definition */
|
||||
enum {
|
||||
VIRTIO_SND_CHMAP_NONE = 0, /* undefined */
|
||||
VIRTIO_SND_CHMAP_NA, /* silent */
|
||||
VIRTIO_SND_CHMAP_MONO, /* mono stream */
|
||||
VIRTIO_SND_CHMAP_FL, /* front left */
|
||||
VIRTIO_SND_CHMAP_FR, /* front right */
|
||||
VIRTIO_SND_CHMAP_RL, /* rear left */
|
||||
VIRTIO_SND_CHMAP_RR, /* rear right */
|
||||
VIRTIO_SND_CHMAP_FC, /* front center */
|
||||
VIRTIO_SND_CHMAP_LFE, /* low frequency (LFE) */
|
||||
VIRTIO_SND_CHMAP_SL, /* side left */
|
||||
VIRTIO_SND_CHMAP_SR, /* side right */
|
||||
VIRTIO_SND_CHMAP_RC, /* rear center */
|
||||
VIRTIO_SND_CHMAP_FLC, /* front left center */
|
||||
VIRTIO_SND_CHMAP_FRC, /* front right center */
|
||||
VIRTIO_SND_CHMAP_RLC, /* rear left center */
|
||||
VIRTIO_SND_CHMAP_RRC, /* rear right center */
|
||||
VIRTIO_SND_CHMAP_FLW, /* front left wide */
|
||||
VIRTIO_SND_CHMAP_FRW, /* front right wide */
|
||||
VIRTIO_SND_CHMAP_FLH, /* front left high */
|
||||
VIRTIO_SND_CHMAP_FCH, /* front center high */
|
||||
VIRTIO_SND_CHMAP_FRH, /* front right high */
|
||||
VIRTIO_SND_CHMAP_TC, /* top center */
|
||||
VIRTIO_SND_CHMAP_TFL, /* top front left */
|
||||
VIRTIO_SND_CHMAP_TFR, /* top front right */
|
||||
VIRTIO_SND_CHMAP_TFC, /* top front center */
|
||||
VIRTIO_SND_CHMAP_TRL, /* top rear left */
|
||||
VIRTIO_SND_CHMAP_TRR, /* top rear right */
|
||||
VIRTIO_SND_CHMAP_TRC, /* top rear center */
|
||||
VIRTIO_SND_CHMAP_TFLC, /* top front left center */
|
||||
VIRTIO_SND_CHMAP_TFRC, /* top front right center */
|
||||
VIRTIO_SND_CHMAP_TSL, /* top side left */
|
||||
VIRTIO_SND_CHMAP_TSR, /* top side right */
|
||||
VIRTIO_SND_CHMAP_LLFE, /* left LFE */
|
||||
VIRTIO_SND_CHMAP_RLFE, /* right LFE */
|
||||
VIRTIO_SND_CHMAP_BC, /* bottom center */
|
||||
VIRTIO_SND_CHMAP_BLC, /* bottom left center */
|
||||
VIRTIO_SND_CHMAP_BRC /* bottom right center */
|
||||
};
|
||||
|
||||
/* maximum possible number of channels */
|
||||
#define VIRTIO_SND_CHMAP_MAX_SIZE 18
|
||||
|
||||
struct virtio_snd_chmap_info {
|
||||
/* common header */
|
||||
struct virtio_snd_info hdr;
|
||||
/* dataflow direction (VIRTIO_SND_D_XXX) */
|
||||
uint8_t direction;
|
||||
/* # of valid channel position values */
|
||||
uint8_t channels;
|
||||
/* channel position values (VIRTIO_SND_CHMAP_XXX) */
|
||||
uint8_t positions[VIRTIO_SND_CHMAP_MAX_SIZE];
|
||||
};
|
||||
|
||||
#endif /* VIRTIO_SND_IF_H */
|
@ -133,6 +133,13 @@ enum pvrdma_wc_flags {
|
||||
PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_NETWORK_HDR_TYPE,
|
||||
};
|
||||
|
||||
enum pvrdma_network_type {
|
||||
PVRDMA_NETWORK_IB,
|
||||
PVRDMA_NETWORK_ROCE_V1 = PVRDMA_NETWORK_IB,
|
||||
PVRDMA_NETWORK_IPV4,
|
||||
PVRDMA_NETWORK_IPV6
|
||||
};
|
||||
|
||||
struct pvrdma_alloc_ucontext_resp {
|
||||
uint32_t qp_tab_size;
|
||||
uint32_t reserved;
|
||||
|
@ -861,9 +861,20 @@ __SYSCALL(__NR_faccessat2, sys_faccessat2)
|
||||
__SYSCALL(__NR_process_madvise, sys_process_madvise)
|
||||
#define __NR_epoll_pwait2 441
|
||||
__SC_COMP(__NR_epoll_pwait2, sys_epoll_pwait2, compat_sys_epoll_pwait2)
|
||||
#define __NR_mount_setattr 442
|
||||
__SYSCALL(__NR_mount_setattr, sys_mount_setattr)
|
||||
#define __NR_quotactl_path 443
|
||||
__SYSCALL(__NR_quotactl_path, sys_quotactl_path)
|
||||
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
__SYSCALL(__NR_landlock_create_ruleset, sys_landlock_create_ruleset)
|
||||
#define __NR_landlock_add_rule 445
|
||||
__SYSCALL(__NR_landlock_add_rule, sys_landlock_add_rule)
|
||||
#define __NR_landlock_restrict_self 446
|
||||
__SYSCALL(__NR_landlock_restrict_self, sys_landlock_restrict_self)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls 442
|
||||
#define __NR_syscalls 447
|
||||
|
||||
/*
|
||||
* 32 bit systems traditionally used different
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef _ASM_MIPS_UNISTD_N32_H
|
||||
#define _ASM_MIPS_UNISTD_N32_H
|
||||
#ifndef _ASM_UNISTD_N32_H
|
||||
#define _ASM_UNISTD_N32_H
|
||||
|
||||
#define __NR_read (__NR_Linux + 0)
|
||||
#define __NR_write (__NR_Linux + 1)
|
||||
@ -371,6 +371,9 @@
|
||||
#define __NR_faccessat2 (__NR_Linux + 439)
|
||||
#define __NR_process_madvise (__NR_Linux + 440)
|
||||
#define __NR_epoll_pwait2 (__NR_Linux + 441)
|
||||
#define __NR_mount_setattr (__NR_Linux + 442)
|
||||
#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
||||
#define __NR_landlock_add_rule (__NR_Linux + 445)
|
||||
#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
||||
|
||||
|
||||
#endif /* _ASM_MIPS_UNISTD_N32_H */
|
||||
#endif /* _ASM_UNISTD_N32_H */
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef _ASM_MIPS_UNISTD_N64_H
|
||||
#define _ASM_MIPS_UNISTD_N64_H
|
||||
#ifndef _ASM_UNISTD_N64_H
|
||||
#define _ASM_UNISTD_N64_H
|
||||
|
||||
#define __NR_read (__NR_Linux + 0)
|
||||
#define __NR_write (__NR_Linux + 1)
|
||||
@ -347,6 +347,9 @@
|
||||
#define __NR_faccessat2 (__NR_Linux + 439)
|
||||
#define __NR_process_madvise (__NR_Linux + 440)
|
||||
#define __NR_epoll_pwait2 (__NR_Linux + 441)
|
||||
#define __NR_mount_setattr (__NR_Linux + 442)
|
||||
#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
||||
#define __NR_landlock_add_rule (__NR_Linux + 445)
|
||||
#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
||||
|
||||
|
||||
#endif /* _ASM_MIPS_UNISTD_N64_H */
|
||||
#endif /* _ASM_UNISTD_N64_H */
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef _ASM_MIPS_UNISTD_O32_H
|
||||
#define _ASM_MIPS_UNISTD_O32_H
|
||||
#ifndef _ASM_UNISTD_O32_H
|
||||
#define _ASM_UNISTD_O32_H
|
||||
|
||||
#define __NR_syscall (__NR_Linux + 0)
|
||||
#define __NR_exit (__NR_Linux + 1)
|
||||
@ -417,6 +417,9 @@
|
||||
#define __NR_faccessat2 (__NR_Linux + 439)
|
||||
#define __NR_process_madvise (__NR_Linux + 440)
|
||||
#define __NR_epoll_pwait2 (__NR_Linux + 441)
|
||||
#define __NR_mount_setattr (__NR_Linux + 442)
|
||||
#define __NR_landlock_create_ruleset (__NR_Linux + 444)
|
||||
#define __NR_landlock_add_rule (__NR_Linux + 445)
|
||||
#define __NR_landlock_restrict_self (__NR_Linux + 446)
|
||||
|
||||
|
||||
#endif /* _ASM_MIPS_UNISTD_O32_H */
|
||||
#endif /* _ASM_UNISTD_O32_H */
|
||||
|
@ -644,6 +644,8 @@ struct kvm_ppc_cpu_char {
|
||||
#define KVM_REG_PPC_MMCR3 (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc1)
|
||||
#define KVM_REG_PPC_SIER2 (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc2)
|
||||
#define KVM_REG_PPC_SIER3 (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc3)
|
||||
#define KVM_REG_PPC_DAWR1 (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc4)
|
||||
#define KVM_REG_PPC_DAWRX1 (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc5)
|
||||
|
||||
/* Transactional Memory checkpointed state:
|
||||
* This is all GPRs, all VSX regs and a subset of SPRs
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef _ASM_POWERPC_UNISTD_32_H
|
||||
#define _ASM_POWERPC_UNISTD_32_H
|
||||
#ifndef _ASM_UNISTD_32_H
|
||||
#define _ASM_UNISTD_32_H
|
||||
|
||||
#define __NR_restart_syscall 0
|
||||
#define __NR_exit 1
|
||||
@ -424,6 +424,10 @@
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
|
||||
|
||||
#endif /* _ASM_POWERPC_UNISTD_32_H */
|
||||
#endif /* _ASM_UNISTD_32_H */
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef _ASM_POWERPC_UNISTD_64_H
|
||||
#define _ASM_POWERPC_UNISTD_64_H
|
||||
#ifndef _ASM_UNISTD_64_H
|
||||
#define _ASM_UNISTD_64_H
|
||||
|
||||
#define __NR_restart_syscall 0
|
||||
#define __NR_exit 1
|
||||
@ -396,6 +396,10 @@
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
|
||||
|
||||
#endif /* _ASM_POWERPC_UNISTD_64_H */
|
||||
#endif /* _ASM_UNISTD_64_H */
|
||||
|
@ -414,5 +414,9 @@
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
|
||||
#endif /* _ASM_S390_UNISTD_32_H */
|
||||
|
@ -362,5 +362,9 @@
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
|
||||
#endif /* _ASM_S390_UNISTD_64_H */
|
||||
|
@ -112,6 +112,7 @@ struct kvm_ioapic_state {
|
||||
#define KVM_NR_IRQCHIPS 3
|
||||
|
||||
#define KVM_RUN_X86_SMM (1 << 0)
|
||||
#define KVM_RUN_X86_BUS_LOCK (1 << 1)
|
||||
|
||||
/* for KVM_GET_REGS and KVM_SET_REGS */
|
||||
struct kvm_regs {
|
||||
@ -436,6 +437,8 @@ struct kvm_vmx_nested_state_hdr {
|
||||
__u16 flags;
|
||||
} smm;
|
||||
|
||||
__u16 pad;
|
||||
|
||||
__u32 flags;
|
||||
__u64 preemption_timer_deadline;
|
||||
};
|
||||
|
@ -432,6 +432,10 @@
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
|
||||
|
||||
#endif /* _ASM_X86_UNISTD_32_H */
|
||||
|
@ -354,6 +354,10 @@
|
||||
#define __NR_faccessat2 439
|
||||
#define __NR_process_madvise 440
|
||||
#define __NR_epoll_pwait2 441
|
||||
#define __NR_mount_setattr 442
|
||||
#define __NR_landlock_create_ruleset 444
|
||||
#define __NR_landlock_add_rule 445
|
||||
#define __NR_landlock_restrict_self 446
|
||||
|
||||
|
||||
#endif /* _ASM_X86_UNISTD_64_H */
|
||||
|
@ -307,6 +307,10 @@
|
||||
#define __NR_faccessat2 (__X32_SYSCALL_BIT + 439)
|
||||
#define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
|
||||
#define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
|
||||
#define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
|
||||
#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
|
||||
#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
|
||||
#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
|
||||
#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
|
||||
#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
|
||||
#define __NR_ioctl (__X32_SYSCALL_BIT + 514)
|
||||
|
@ -8,6 +8,7 @@
|
||||
* Note: you must update KVM_API_VERSION if you change this interface.
|
||||
*/
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
@ -216,6 +217,20 @@ struct kvm_hyperv_exit {
|
||||
} u;
|
||||
};
|
||||
|
||||
struct kvm_xen_exit {
|
||||
#define KVM_EXIT_XEN_HCALL 1
|
||||
__u32 type;
|
||||
union {
|
||||
struct {
|
||||
__u32 longmode;
|
||||
__u32 cpl;
|
||||
__u64 input;
|
||||
__u64 result;
|
||||
__u64 params[6];
|
||||
} hcall;
|
||||
} u;
|
||||
};
|
||||
|
||||
#define KVM_S390_GET_SKEYS_NONE 1
|
||||
#define KVM_S390_SKEYS_MAX 1048576
|
||||
|
||||
@ -251,6 +266,9 @@ struct kvm_hyperv_exit {
|
||||
#define KVM_EXIT_X86_RDMSR 29
|
||||
#define KVM_EXIT_X86_WRMSR 30
|
||||
#define KVM_EXIT_DIRTY_RING_FULL 31
|
||||
#define KVM_EXIT_AP_RESET_HOLD 32
|
||||
#define KVM_EXIT_X86_BUS_LOCK 33
|
||||
#define KVM_EXIT_XEN 34
|
||||
|
||||
/* For KVM_EXIT_INTERNAL_ERROR */
|
||||
/* Emulate instruction failed. */
|
||||
@ -427,6 +445,8 @@ struct kvm_run {
|
||||
__u32 index; /* kernel -> user */
|
||||
__u64 data; /* kernel <-> user */
|
||||
} msr;
|
||||
/* KVM_EXIT_XEN */
|
||||
struct kvm_xen_exit xen;
|
||||
/* Fix the size of the union. */
|
||||
char padding[256];
|
||||
};
|
||||
@ -573,6 +593,7 @@ struct kvm_vapic_addr {
|
||||
#define KVM_MP_STATE_CHECK_STOP 6
|
||||
#define KVM_MP_STATE_OPERATING 7
|
||||
#define KVM_MP_STATE_LOAD 8
|
||||
#define KVM_MP_STATE_AP_RESET_HOLD 9
|
||||
|
||||
struct kvm_mp_state {
|
||||
__u32 mp_state;
|
||||
@ -1056,6 +1077,12 @@ struct kvm_ppc_resize_hpt {
|
||||
#define KVM_CAP_ENFORCE_PV_FEATURE_CPUID 190
|
||||
#define KVM_CAP_SYS_HYPERV_CPUID 191
|
||||
#define KVM_CAP_DIRTY_LOG_RING 192
|
||||
#define KVM_CAP_X86_BUS_LOCK_EXIT 193
|
||||
#define KVM_CAP_PPC_DAWR1 194
|
||||
#define KVM_CAP_SET_GUEST_DEBUG2 195
|
||||
#define KVM_CAP_SGX_ATTRIBUTE 196
|
||||
#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
|
||||
#define KVM_CAP_PTP_KVM 198
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@ -1129,6 +1156,11 @@ struct kvm_x86_mce {
|
||||
#endif
|
||||
|
||||
#ifdef KVM_CAP_XEN_HVM
|
||||
#define KVM_XEN_HVM_CONFIG_HYPERCALL_MSR (1 << 0)
|
||||
#define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
|
||||
#define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
|
||||
#define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
|
||||
|
||||
struct kvm_xen_hvm_config {
|
||||
__u32 flags;
|
||||
__u32 msr;
|
||||
@ -1563,6 +1595,57 @@ struct kvm_pv_cmd {
|
||||
/* Available with KVM_CAP_DIRTY_LOG_RING */
|
||||
#define KVM_RESET_DIRTY_RINGS _IO(KVMIO, 0xc7)
|
||||
|
||||
/* Per-VM Xen attributes */
|
||||
#define KVM_XEN_HVM_GET_ATTR _IOWR(KVMIO, 0xc8, struct kvm_xen_hvm_attr)
|
||||
#define KVM_XEN_HVM_SET_ATTR _IOW(KVMIO, 0xc9, struct kvm_xen_hvm_attr)
|
||||
|
||||
struct kvm_xen_hvm_attr {
|
||||
__u16 type;
|
||||
__u16 pad[3];
|
||||
union {
|
||||
__u8 long_mode;
|
||||
__u8 vector;
|
||||
struct {
|
||||
__u64 gfn;
|
||||
} shared_info;
|
||||
__u64 pad[8];
|
||||
} u;
|
||||
};
|
||||
|
||||
/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_SHARED_INFO */
|
||||
#define KVM_XEN_ATTR_TYPE_LONG_MODE 0x0
|
||||
#define KVM_XEN_ATTR_TYPE_SHARED_INFO 0x1
|
||||
#define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
|
||||
|
||||
/* Per-vCPU Xen attributes */
|
||||
#define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
|
||||
#define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
|
||||
|
||||
struct kvm_xen_vcpu_attr {
|
||||
__u16 type;
|
||||
__u16 pad[3];
|
||||
union {
|
||||
__u64 gpa;
|
||||
__u64 pad[8];
|
||||
struct {
|
||||
__u64 state;
|
||||
__u64 state_entry_time;
|
||||
__u64 time_running;
|
||||
__u64 time_runnable;
|
||||
__u64 time_blocked;
|
||||
__u64 time_offline;
|
||||
} runstate;
|
||||
} u;
|
||||
};
|
||||
|
||||
/* Available with KVM_CAP_XEN_HVM / KVM_XEN_HVM_CONFIG_SHARED_INFO */
|
||||
#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO 0x0
|
||||
#define KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO 0x1
|
||||
#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADDR 0x2
|
||||
#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT 0x3
|
||||
#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_DATA 0x4
|
||||
#define KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST 0x5
|
||||
|
||||
/* Secure Encrypted Virtualization command */
|
||||
enum sev_cmd_id {
|
||||
/* Guest initialization commands */
|
||||
@ -1593,6 +1676,8 @@ enum sev_cmd_id {
|
||||
KVM_SEV_CERT_EXPORT,
|
||||
/* Attestation report */
|
||||
KVM_SEV_GET_ATTESTATION_REPORT,
|
||||
/* Guest Migration Extension */
|
||||
KVM_SEV_SEND_CANCEL,
|
||||
|
||||
KVM_SEV_NR_MAX,
|
||||
};
|
||||
@ -1651,6 +1736,45 @@ struct kvm_sev_attestation_report {
|
||||
__u32 len;
|
||||
};
|
||||
|
||||
struct kvm_sev_send_start {
|
||||
__u32 policy;
|
||||
__u64 pdh_cert_uaddr;
|
||||
__u32 pdh_cert_len;
|
||||
__u64 plat_certs_uaddr;
|
||||
__u32 plat_certs_len;
|
||||
__u64 amd_certs_uaddr;
|
||||
__u32 amd_certs_len;
|
||||
__u64 session_uaddr;
|
||||
__u32 session_len;
|
||||
};
|
||||
|
||||
struct kvm_sev_send_update_data {
|
||||
__u64 hdr_uaddr;
|
||||
__u32 hdr_len;
|
||||
__u64 guest_uaddr;
|
||||
__u32 guest_len;
|
||||
__u64 trans_uaddr;
|
||||
__u32 trans_len;
|
||||
};
|
||||
|
||||
struct kvm_sev_receive_start {
|
||||
__u32 handle;
|
||||
__u32 policy;
|
||||
__u64 pdh_uaddr;
|
||||
__u32 pdh_len;
|
||||
__u64 session_uaddr;
|
||||
__u32 session_len;
|
||||
};
|
||||
|
||||
struct kvm_sev_receive_update_data {
|
||||
__u64 hdr_uaddr;
|
||||
__u32 hdr_len;
|
||||
__u64 guest_uaddr;
|
||||
__u32 guest_len;
|
||||
__u64 trans_uaddr;
|
||||
__u32 trans_len;
|
||||
};
|
||||
|
||||
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|
||||
#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
|
||||
#define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
|
||||
@ -1756,8 +1880,8 @@ struct kvm_hyperv_eventfd {
|
||||
* conversion after harvesting an entry. Also, it must not skip any
|
||||
* dirty bits, so that dirty bits are always harvested in sequence.
|
||||
*/
|
||||
#define KVM_DIRTY_GFN_F_DIRTY BIT(0)
|
||||
#define KVM_DIRTY_GFN_F_RESET BIT(1)
|
||||
#define KVM_DIRTY_GFN_F_DIRTY _BITUL(0)
|
||||
#define KVM_DIRTY_GFN_F_RESET _BITUL(1)
|
||||
#define KVM_DIRTY_GFN_F_MASK 0x3
|
||||
|
||||
/*
|
||||
@ -1772,4 +1896,7 @@ struct kvm_dirty_gfn {
|
||||
__u64 offset;
|
||||
};
|
||||
|
||||
#define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
|
||||
#define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
|
||||
|
||||
#endif /* __LINUX_KVM_H */
|
||||
|
@ -19,6 +19,9 @@
|
||||
* means the userland is reading).
|
||||
*/
|
||||
#define UFFD_API ((__u64)0xAA)
|
||||
#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | \
|
||||
UFFDIO_REGISTER_MODE_WP | \
|
||||
UFFDIO_REGISTER_MODE_MINOR)
|
||||
#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \
|
||||
UFFD_FEATURE_EVENT_FORK | \
|
||||
UFFD_FEATURE_EVENT_REMAP | \
|
||||
@ -27,7 +30,8 @@
|
||||
UFFD_FEATURE_MISSING_HUGETLBFS | \
|
||||
UFFD_FEATURE_MISSING_SHMEM | \
|
||||
UFFD_FEATURE_SIGBUS | \
|
||||
UFFD_FEATURE_THREAD_ID)
|
||||
UFFD_FEATURE_THREAD_ID | \
|
||||
UFFD_FEATURE_MINOR_HUGETLBFS)
|
||||
#define UFFD_API_IOCTLS \
|
||||
((__u64)1 << _UFFDIO_REGISTER | \
|
||||
(__u64)1 << _UFFDIO_UNREGISTER | \
|
||||
@ -36,10 +40,12 @@
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
(__u64)1 << _UFFDIO_COPY | \
|
||||
(__u64)1 << _UFFDIO_ZEROPAGE | \
|
||||
(__u64)1 << _UFFDIO_WRITEPROTECT)
|
||||
(__u64)1 << _UFFDIO_WRITEPROTECT | \
|
||||
(__u64)1 << _UFFDIO_CONTINUE)
|
||||
#define UFFD_API_RANGE_IOCTLS_BASIC \
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
(__u64)1 << _UFFDIO_COPY)
|
||||
(__u64)1 << _UFFDIO_COPY | \
|
||||
(__u64)1 << _UFFDIO_CONTINUE)
|
||||
|
||||
/*
|
||||
* Valid ioctl command number range with this API is from 0x00 to
|
||||
@ -55,6 +61,7 @@
|
||||
#define _UFFDIO_COPY (0x03)
|
||||
#define _UFFDIO_ZEROPAGE (0x04)
|
||||
#define _UFFDIO_WRITEPROTECT (0x06)
|
||||
#define _UFFDIO_CONTINUE (0x07)
|
||||
#define _UFFDIO_API (0x3F)
|
||||
|
||||
/* userfaultfd ioctl ids */
|
||||
@ -73,6 +80,8 @@
|
||||
struct uffdio_zeropage)
|
||||
#define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \
|
||||
struct uffdio_writeprotect)
|
||||
#define UFFDIO_CONTINUE _IOR(UFFDIO, _UFFDIO_CONTINUE, \
|
||||
struct uffdio_continue)
|
||||
|
||||
/* read() structure */
|
||||
struct uffd_msg {
|
||||
@ -127,6 +136,7 @@ struct uffd_msg {
|
||||
/* flags for UFFD_EVENT_PAGEFAULT */
|
||||
#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */
|
||||
#define UFFD_PAGEFAULT_FLAG_WP (1<<1) /* If reason is VM_UFFD_WP */
|
||||
#define UFFD_PAGEFAULT_FLAG_MINOR (1<<2) /* If reason is VM_UFFD_MINOR */
|
||||
|
||||
struct uffdio_api {
|
||||
/* userland asks for an API number and the features to enable */
|
||||
@ -171,6 +181,10 @@ struct uffdio_api {
|
||||
*
|
||||
* UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will
|
||||
* be returned, if feature is not requested 0 will be returned.
|
||||
*
|
||||
* UFFD_FEATURE_MINOR_HUGETLBFS indicates that minor faults
|
||||
* can be intercepted (via REGISTER_MODE_MINOR) for
|
||||
* hugetlbfs-backed pages.
|
||||
*/
|
||||
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
|
||||
#define UFFD_FEATURE_EVENT_FORK (1<<1)
|
||||
@ -181,6 +195,7 @@ struct uffdio_api {
|
||||
#define UFFD_FEATURE_EVENT_UNMAP (1<<6)
|
||||
#define UFFD_FEATURE_SIGBUS (1<<7)
|
||||
#define UFFD_FEATURE_THREAD_ID (1<<8)
|
||||
#define UFFD_FEATURE_MINOR_HUGETLBFS (1<<9)
|
||||
__u64 features;
|
||||
|
||||
__u64 ioctls;
|
||||
@ -195,6 +210,7 @@ struct uffdio_register {
|
||||
struct uffdio_range range;
|
||||
#define UFFDIO_REGISTER_MODE_MISSING ((__u64)1<<0)
|
||||
#define UFFDIO_REGISTER_MODE_WP ((__u64)1<<1)
|
||||
#define UFFDIO_REGISTER_MODE_MINOR ((__u64)1<<2)
|
||||
__u64 mode;
|
||||
|
||||
/*
|
||||
@ -257,6 +273,18 @@ struct uffdio_writeprotect {
|
||||
__u64 mode;
|
||||
};
|
||||
|
||||
struct uffdio_continue {
|
||||
struct uffdio_range range;
|
||||
#define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64)1<<0)
|
||||
__u64 mode;
|
||||
|
||||
/*
|
||||
* Fields below here are written by the ioctl and must be at the end:
|
||||
* the copy_from_user will not read past here.
|
||||
*/
|
||||
__s64 mapped;
|
||||
};
|
||||
|
||||
/*
|
||||
* Flags for the userfaultfd(2) system call itself.
|
||||
*/
|
||||
|
@ -46,6 +46,12 @@
|
||||
*/
|
||||
#define VFIO_NOIOMMU_IOMMU 8
|
||||
|
||||
/* Supports VFIO_DMA_UNMAP_FLAG_ALL */
|
||||
#define VFIO_UNMAP_ALL 9
|
||||
|
||||
/* Supports the vaddr flag for DMA map and unmap */
|
||||
#define VFIO_UPDATE_VADDR 10
|
||||
|
||||
/*
|
||||
* The IOCTL interface is designed for extensibility by embedding the
|
||||
* structure length (argsz) and flags into structures passed between
|
||||
@ -329,6 +335,8 @@ struct vfio_region_info_cap_type {
|
||||
/* 10de vendor PCI sub-types */
|
||||
/*
|
||||
* NVIDIA GPU NVlink2 RAM is coherent RAM mapped onto the host address space.
|
||||
*
|
||||
* Deprecated, region no longer provided
|
||||
*/
|
||||
#define VFIO_REGION_SUBTYPE_NVIDIA_NVLINK2_RAM (1)
|
||||
|
||||
@ -336,6 +344,8 @@ struct vfio_region_info_cap_type {
|
||||
/*
|
||||
* IBM NPU NVlink2 ATSD (Address Translation Shootdown) register of NPU
|
||||
* to do TLB invalidation on a GPU.
|
||||
*
|
||||
* Deprecated, region no longer provided
|
||||
*/
|
||||
#define VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD (1)
|
||||
|
||||
@ -635,6 +645,8 @@ struct vfio_device_migration_info {
|
||||
* Capability with compressed real address (aka SSA - small system address)
|
||||
* where GPU RAM is mapped on a system bus. Used by a GPU for DMA routing
|
||||
* and by the userspace to associate a NVLink bridge with a GPU.
|
||||
*
|
||||
* Deprecated, capability no longer provided
|
||||
*/
|
||||
#define VFIO_REGION_INFO_CAP_NVLINK2_SSATGT 4
|
||||
|
||||
@ -649,6 +661,8 @@ struct vfio_region_info_cap_nvlink2_ssatgt {
|
||||
* property in the device tree. The value is fixed in the hardware
|
||||
* and failing to provide the correct value results in the link
|
||||
* not working with no indication from the driver why.
|
||||
*
|
||||
* Deprecated, capability no longer provided
|
||||
*/
|
||||
#define VFIO_REGION_INFO_CAP_NVLINK2_LNKSPD 5
|
||||
|
||||
@ -1074,12 +1088,22 @@ struct vfio_iommu_type1_info_dma_avail {
|
||||
*
|
||||
* Map process virtual addresses to IO virtual addresses using the
|
||||
* provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required.
|
||||
*
|
||||
* If flags & VFIO_DMA_MAP_FLAG_VADDR, update the base vaddr for iova, and
|
||||
* unblock translation of host virtual addresses in the iova range. The vaddr
|
||||
* must have previously been invalidated with VFIO_DMA_UNMAP_FLAG_VADDR. To
|
||||
* maintain memory consistency within the user application, the updated vaddr
|
||||
* must address the same memory object as originally mapped. Failure to do so
|
||||
* will result in user memory corruption and/or device misbehavior. iova and
|
||||
* size must match those in the original MAP_DMA call. Protection is not
|
||||
* changed, and the READ & WRITE flags must be 0.
|
||||
*/
|
||||
struct vfio_iommu_type1_dma_map {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_DMA_MAP_FLAG_READ (1 << 0) /* readable from device */
|
||||
#define VFIO_DMA_MAP_FLAG_WRITE (1 << 1) /* writable from device */
|
||||
#define VFIO_DMA_MAP_FLAG_VADDR (1 << 2)
|
||||
__u64 vaddr; /* Process virtual address */
|
||||
__u64 iova; /* IO virtual address */
|
||||
__u64 size; /* Size of mapping (bytes) */
|
||||
@ -1102,6 +1126,7 @@ struct vfio_bitmap {
|
||||
* field. No guarantee is made to the user that arbitrary unmaps of iova
|
||||
* or size different from those used in the original mapping call will
|
||||
* succeed.
|
||||
*
|
||||
* VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP should be set to get the dirty bitmap
|
||||
* before unmapping IO virtual addresses. When this flag is set, the user must
|
||||
* provide a struct vfio_bitmap in data[]. User must provide zero-allocated
|
||||
@ -1111,11 +1136,21 @@ struct vfio_bitmap {
|
||||
* indicates that the page at that offset from iova is dirty. A Bitmap of the
|
||||
* pages in the range of unmapped size is returned in the user-provided
|
||||
* vfio_bitmap.data.
|
||||
*
|
||||
* If flags & VFIO_DMA_UNMAP_FLAG_ALL, unmap all addresses. iova and size
|
||||
* must be 0. This cannot be combined with the get-dirty-bitmap flag.
|
||||
*
|
||||
* If flags & VFIO_DMA_UNMAP_FLAG_VADDR, do not unmap, but invalidate host
|
||||
* virtual addresses in the iova range. Tasks that attempt to translate an
|
||||
* iova's vaddr will block. DMA to already-mapped pages continues. This
|
||||
* cannot be combined with the get-dirty-bitmap flag.
|
||||
*/
|
||||
struct vfio_iommu_type1_dma_unmap {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP (1 << 0)
|
||||
#define VFIO_DMA_UNMAP_FLAG_ALL (1 << 1)
|
||||
#define VFIO_DMA_UNMAP_FLAG_VADDR (1 << 2)
|
||||
__u64 iova; /* IO virtual address */
|
||||
__u64 size; /* Size of mapping (bytes) */
|
||||
__u8 data[];
|
||||
|
Loading…
Reference in New Issue
Block a user