mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 11:48:58 -04:00
Merge drm/drm-next into drm-xe-next
Backmerge to bring in linux 6.15-rc. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
This commit is contained in:
@@ -85,6 +85,7 @@
|
||||
/* compatibility flags */
|
||||
#define MAP_FILE 0
|
||||
|
||||
#define PKEY_UNRESTRICTED 0x0
|
||||
#define PKEY_DISABLE_ACCESS 0x1
|
||||
#define PKEY_DISABLE_WRITE 0x2
|
||||
#define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\
|
||||
|
||||
@@ -849,9 +849,11 @@ __SYSCALL(__NR_getxattrat, sys_getxattrat)
|
||||
__SYSCALL(__NR_listxattrat, sys_listxattrat)
|
||||
#define __NR_removexattrat 466
|
||||
__SYSCALL(__NR_removexattrat, sys_removexattrat)
|
||||
#define __NR_open_tree_attr 467
|
||||
__SYSCALL(__NR_open_tree_attr, sys_open_tree_attr)
|
||||
|
||||
#undef __NR_syscalls
|
||||
#define __NR_syscalls 467
|
||||
#define __NR_syscalls 468
|
||||
|
||||
/*
|
||||
* 32 bit systems traditionally used different
|
||||
|
||||
170
include/uapi/cxl/features.h
Normal file
170
include/uapi/cxl/features.h
Normal file
@@ -0,0 +1,170 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2024,2025, Intel Corporation
|
||||
*
|
||||
* These are definitions for the mailbox command interface of CXL subsystem.
|
||||
*/
|
||||
#ifndef _UAPI_CXL_FEATURES_H_
|
||||
#define _UAPI_CXL_FEATURES_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#ifndef __KERNEL__
|
||||
#include <uuid/uuid.h>
|
||||
#else
|
||||
#include <linux/uuid.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* struct cxl_mbox_get_sup_feats_in - Get Supported Features input
|
||||
*
|
||||
* @count: bytes of Feature data to return in output
|
||||
* @start_idx: index of first requested Supported Feature Entry, 0 based.
|
||||
* @reserved: reserved field, must be 0s.
|
||||
*
|
||||
* Get Supported Features (0x500h) CXL r3.2 8.2.9.6.1 command.
|
||||
* Input block for Get support Feature
|
||||
*/
|
||||
struct cxl_mbox_get_sup_feats_in {
|
||||
__le32 count;
|
||||
__le16 start_idx;
|
||||
__u8 reserved[2];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/* CXL spec r3.2 Table 8-87 command effects */
|
||||
#define CXL_CMD_CONFIG_CHANGE_COLD_RESET BIT(0)
|
||||
#define CXL_CMD_CONFIG_CHANGE_IMMEDIATE BIT(1)
|
||||
#define CXL_CMD_DATA_CHANGE_IMMEDIATE BIT(2)
|
||||
#define CXL_CMD_POLICY_CHANGE_IMMEDIATE BIT(3)
|
||||
#define CXL_CMD_LOG_CHANGE_IMMEDIATE BIT(4)
|
||||
#define CXL_CMD_SECURITY_STATE_CHANGE BIT(5)
|
||||
#define CXL_CMD_BACKGROUND BIT(6)
|
||||
#define CXL_CMD_BGCMD_ABORT_SUPPORTED BIT(7)
|
||||
#define CXL_CMD_EFFECTS_VALID BIT(9)
|
||||
#define CXL_CMD_CONFIG_CHANGE_CONV_RESET BIT(10)
|
||||
#define CXL_CMD_CONFIG_CHANGE_CXL_RESET BIT(11)
|
||||
#define CXL_CMD_EFFECTS_RESERVED GENMASK(15, 12)
|
||||
|
||||
/*
|
||||
* struct cxl_feat_entry - Supported Feature Entry
|
||||
* @uuid: UUID of the Feature
|
||||
* @id: id to identify the feature. 0 based
|
||||
* @get_feat_size: max bytes required for Get Feature command for this Feature
|
||||
* @set_feat_size: max bytes required for Set Feature command for this Feature
|
||||
* @flags: attribute flags
|
||||
* @get_feat_ver: Get Feature version
|
||||
* @set_feat_ver: Set Feature version
|
||||
* @effects: Set Feature command effects
|
||||
* @reserved: reserved, must be 0
|
||||
*
|
||||
* CXL spec r3.2 Table 8-109
|
||||
* Get Supported Features Supported Feature Entry
|
||||
*/
|
||||
struct cxl_feat_entry {
|
||||
uuid_t uuid;
|
||||
__le16 id;
|
||||
__le16 get_feat_size;
|
||||
__le16 set_feat_size;
|
||||
__le32 flags;
|
||||
__u8 get_feat_ver;
|
||||
__u8 set_feat_ver;
|
||||
__le16 effects;
|
||||
__u8 reserved[18];
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/* @flags field for 'struct cxl_feat_entry' */
|
||||
#define CXL_FEATURE_F_CHANGEABLE BIT(0)
|
||||
#define CXL_FEATURE_F_PERSIST_FW_UPDATE BIT(4)
|
||||
#define CXL_FEATURE_F_DEFAULT_SEL BIT(5)
|
||||
#define CXL_FEATURE_F_SAVED_SEL BIT(6)
|
||||
|
||||
/*
|
||||
* struct cxl_mbox_get_sup_feats_out - Get Supported Features output
|
||||
* @num_entries: number of Supported Feature Entries returned
|
||||
* @supported_feats: number of supported Features
|
||||
* @reserved: reserved, must be 0s.
|
||||
* @ents: Supported Feature Entries array
|
||||
*
|
||||
* CXL spec r3.2 Table 8-108
|
||||
* Get supported Features Output Payload
|
||||
*/
|
||||
struct cxl_mbox_get_sup_feats_out {
|
||||
__struct_group(cxl_mbox_get_sup_feats_out_hdr, hdr, /* no attrs */,
|
||||
__le16 num_entries;
|
||||
__le16 supported_feats;
|
||||
__u8 reserved[4];
|
||||
);
|
||||
struct cxl_feat_entry ents[] __counted_by_le(num_entries);
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/*
|
||||
* Get Feature CXL spec r3.2 Spec 8.2.9.6.2
|
||||
*/
|
||||
|
||||
/*
|
||||
* struct cxl_mbox_get_feat_in - Get Feature input
|
||||
* @uuid: UUID for Feature
|
||||
* @offset: offset of the first byte in Feature data for output payload
|
||||
* @count: count in bytes of Feature data returned
|
||||
* @selection: 0 current value, 1 default value, 2 saved value
|
||||
*
|
||||
* CXL spec r3.2 section 8.2.9.6.2 Table 8-99
|
||||
*/
|
||||
struct cxl_mbox_get_feat_in {
|
||||
uuid_t uuid;
|
||||
__le16 offset;
|
||||
__le16 count;
|
||||
__u8 selection;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
/*
|
||||
* enum cxl_get_feat_selection - selection field of Get Feature input
|
||||
*/
|
||||
enum cxl_get_feat_selection {
|
||||
CXL_GET_FEAT_SEL_CURRENT_VALUE,
|
||||
CXL_GET_FEAT_SEL_DEFAULT_VALUE,
|
||||
CXL_GET_FEAT_SEL_SAVED_VALUE,
|
||||
CXL_GET_FEAT_SEL_MAX
|
||||
};
|
||||
|
||||
/*
|
||||
* Set Feature CXL spec r3.2 8.2.9.6.3
|
||||
*/
|
||||
|
||||
/*
|
||||
* struct cxl_mbox_set_feat_in - Set Features input
|
||||
* @uuid: UUID for Feature
|
||||
* @flags: set feature flags
|
||||
* @offset: byte offset of Feature data to update
|
||||
* @version: Feature version of the data in Feature Data
|
||||
* @rsvd: reserved, must be 0s.
|
||||
* @feat_data: raw byte stream of Features data to update
|
||||
*
|
||||
* CXL spec r3.2 section 8.2.9.6.3 Table 8-101
|
||||
*/
|
||||
struct cxl_mbox_set_feat_in {
|
||||
__struct_group(cxl_mbox_set_feat_hdr, hdr, /* no attrs */,
|
||||
uuid_t uuid;
|
||||
__le32 flags;
|
||||
__le16 offset;
|
||||
__u8 version;
|
||||
__u8 rsvd[9];
|
||||
);
|
||||
__u8 feat_data[];
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* enum cxl_set_feat_flag_data_transfer - Set Feature flags field
|
||||
*/
|
||||
enum cxl_set_feat_flag_data_transfer {
|
||||
CXL_SET_FEAT_FLAG_FULL_DATA_TRANSFER = 0,
|
||||
CXL_SET_FEAT_FLAG_INITIATE_DATA_TRANSFER,
|
||||
CXL_SET_FEAT_FLAG_CONTINUE_DATA_TRANSFER,
|
||||
CXL_SET_FEAT_FLAG_FINISH_DATA_TRANSFER,
|
||||
CXL_SET_FEAT_FLAG_ABORT_DATA_TRANSFER,
|
||||
CXL_SET_FEAT_FLAG_DATA_TRANSFER_MAX
|
||||
};
|
||||
|
||||
#define CXL_SET_FEAT_FLAG_DATA_TRANSFER_MASK GENMASK(2, 0)
|
||||
#define CXL_SET_FEAT_FLAG_DATA_SAVED_ACROSS_RESET BIT(3)
|
||||
|
||||
#endif
|
||||
1194
include/uapi/drm/asahi_drm.h
Normal file
1194
include/uapi/drm/asahi_drm.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -905,13 +905,17 @@ struct drm_syncobj_destroy {
|
||||
};
|
||||
|
||||
#define DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE (1 << 0)
|
||||
#define DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_TIMELINE (1 << 1)
|
||||
#define DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE (1 << 0)
|
||||
#define DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_TIMELINE (1 << 1)
|
||||
struct drm_syncobj_handle {
|
||||
__u32 handle;
|
||||
__u32 flags;
|
||||
|
||||
__s32 fd;
|
||||
__u32 pad;
|
||||
|
||||
__u64 point;
|
||||
};
|
||||
|
||||
struct drm_syncobj_transfer {
|
||||
|
||||
@@ -422,6 +422,7 @@ extern "C" {
|
||||
#define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
|
||||
#define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
|
||||
#define DRM_FORMAT_MOD_VENDOR_MTK 0x0b
|
||||
#define DRM_FORMAT_MOD_VENDOR_APPLE 0x0c
|
||||
|
||||
/* add more to the end as needed */
|
||||
|
||||
@@ -1494,6 +1495,50 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
|
||||
/* alias for the most common tiling format */
|
||||
#define DRM_FORMAT_MOD_MTK_16L_32S_TILE DRM_FORMAT_MOD_MTK(MTK_FMT_MOD_TILE_16L32S)
|
||||
|
||||
/*
|
||||
* Apple GPU-tiled layouts.
|
||||
*
|
||||
* Apple GPUs support nonlinear tilings with optional lossless compression.
|
||||
*
|
||||
* GPU-tiled images are divided into 16KiB tiles:
|
||||
*
|
||||
* Bytes per pixel Tile size
|
||||
* --------------- ---------
|
||||
* 1 128x128
|
||||
* 2 128x64
|
||||
* 4 64x64
|
||||
* 8 64x32
|
||||
* 16 32x32
|
||||
*
|
||||
* Tiles are raster-order. Pixels within a tile are interleaved (Morton order).
|
||||
*
|
||||
* Compressed images pad the body to 128-bytes and are immediately followed by a
|
||||
* metadata section. The metadata section rounds the image dimensions to
|
||||
* powers-of-two and contains 8 bytes for each 16x16 compression subtile.
|
||||
* Subtiles are interleaved (Morton order).
|
||||
*
|
||||
* All images are 128-byte aligned.
|
||||
*
|
||||
* These layouts fundamentally do not have meaningful strides. No matter how we
|
||||
* specify strides for these layouts, userspace unaware of Apple image layouts
|
||||
* will be unable to use correctly the specified stride for any purpose.
|
||||
* Userspace aware of the image layouts do not use strides. The most "correct"
|
||||
* convention would be setting the image stride to 0. Unfortunately, some
|
||||
* software assumes the stride is at least (width * bytes per pixel). We
|
||||
* therefore require that stride equals (width * bytes per pixel). Since the
|
||||
* stride is arbitrary here, we pick the simplest convention.
|
||||
*
|
||||
* Although containing two sections, compressed image layouts are treated in
|
||||
* software as a single plane. This is modelled after AFBC, a similar
|
||||
* scheme. Attempting to separate the sections to be "explicit" in DRM would
|
||||
* only generate more confusion, as software does not treat the image this way.
|
||||
*
|
||||
* For detailed information on the hardware image layouts, see
|
||||
* https://docs.mesa3d.org/drivers/asahi.html#image-layouts
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_APPLE_GPU_TILED fourcc_mod_code(APPLE, 1)
|
||||
#define DRM_FORMAT_MOD_APPLE_GPU_TILED_COMPRESSED fourcc_mod_code(APPLE, 2)
|
||||
|
||||
/*
|
||||
* AMD modifiers
|
||||
*
|
||||
|
||||
@@ -163,6 +163,12 @@ struct drm_virtgpu_3d_wait {
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
#define VIRTGPU_DRM_CAPSET_VIRGL 1
|
||||
#define VIRTGPU_DRM_CAPSET_VIRGL2 2
|
||||
#define VIRTGPU_DRM_CAPSET_GFXSTREAM_VULKAN 3
|
||||
#define VIRTGPU_DRM_CAPSET_VENUS 4
|
||||
#define VIRTGPU_DRM_CAPSET_CROSS_DOMAIN 5
|
||||
#define VIRTGPU_DRM_CAPSET_DRM 6
|
||||
struct drm_virtgpu_get_caps {
|
||||
__u32 cap_set_id;
|
||||
__u32 cap_set_ver;
|
||||
|
||||
56
include/uapi/fwctl/cxl.h
Normal file
56
include/uapi/fwctl/cxl.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2024-2025 Intel Corporation
|
||||
*
|
||||
* These are definitions for the mailbox command interface of CXL subsystem.
|
||||
*/
|
||||
#ifndef _UAPI_FWCTL_CXL_H_
|
||||
#define _UAPI_FWCTL_CXL_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/stddef.h>
|
||||
#include <cxl/features.h>
|
||||
|
||||
/**
|
||||
* struct fwctl_rpc_cxl - ioctl(FWCTL_RPC) input for CXL
|
||||
* @opcode: CXL mailbox command opcode
|
||||
* @flags: Flags for the command (input).
|
||||
* @op_size: Size of input payload.
|
||||
* @reserved1: Reserved. Must be 0s.
|
||||
* @get_sup_feats_in: Get Supported Features input
|
||||
* @get_feat_in: Get Feature input
|
||||
* @set_feat_in: Set Feature input
|
||||
*/
|
||||
struct fwctl_rpc_cxl {
|
||||
__struct_group(fwctl_rpc_cxl_hdr, hdr, /* no attrs */,
|
||||
__u32 opcode;
|
||||
__u32 flags;
|
||||
__u32 op_size;
|
||||
__u32 reserved1;
|
||||
);
|
||||
union {
|
||||
struct cxl_mbox_get_sup_feats_in get_sup_feats_in;
|
||||
struct cxl_mbox_get_feat_in get_feat_in;
|
||||
struct cxl_mbox_set_feat_in set_feat_in;
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fwctl_rpc_cxl_out - ioctl(FWCTL_RPC) output for CXL
|
||||
* @size: Size of the output payload
|
||||
* @retval: Return value from device
|
||||
* @get_sup_feats_out: Get Supported Features output
|
||||
* @payload: raw byte stream of payload
|
||||
*/
|
||||
struct fwctl_rpc_cxl_out {
|
||||
__struct_group(fwctl_rpc_cxl_out_hdr, hdr, /* no attrs */,
|
||||
__u32 size;
|
||||
__u32 retval;
|
||||
);
|
||||
union {
|
||||
struct cxl_mbox_get_sup_feats_out get_sup_feats_out;
|
||||
__DECLARE_FLEX_ARRAY(__u8, payload);
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
141
include/uapi/fwctl/fwctl.h
Normal file
141
include/uapi/fwctl/fwctl.h
Normal file
@@ -0,0 +1,141 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES.
|
||||
*/
|
||||
#ifndef _UAPI_FWCTL_H
|
||||
#define _UAPI_FWCTL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
#define FWCTL_TYPE 0x9A
|
||||
|
||||
/**
|
||||
* DOC: General ioctl format
|
||||
*
|
||||
* The ioctl interface follows a general format to allow for extensibility. Each
|
||||
* ioctl is passed a structure pointer as the argument providing the size of
|
||||
* the structure in the first u32. The kernel checks that any structure space
|
||||
* beyond what it understands is 0. This allows userspace to use the backward
|
||||
* compatible portion while consistently using the newer, larger, structures.
|
||||
*
|
||||
* ioctls use a standard meaning for common errnos:
|
||||
*
|
||||
* - ENOTTY: The IOCTL number itself is not supported at all
|
||||
* - E2BIG: The IOCTL number is supported, but the provided structure has
|
||||
* non-zero in a part the kernel does not understand.
|
||||
* - EOPNOTSUPP: The IOCTL number is supported, and the structure is
|
||||
* understood, however a known field has a value the kernel does not
|
||||
* understand or support.
|
||||
* - EINVAL: Everything about the IOCTL was understood, but a field is not
|
||||
* correct.
|
||||
* - ENOMEM: Out of memory.
|
||||
* - ENODEV: The underlying device has been hot-unplugged and the FD is
|
||||
* orphaned.
|
||||
*
|
||||
* As well as additional errnos, within specific ioctls.
|
||||
*/
|
||||
enum {
|
||||
FWCTL_CMD_BASE = 0,
|
||||
FWCTL_CMD_INFO = 0,
|
||||
FWCTL_CMD_RPC = 1,
|
||||
};
|
||||
|
||||
enum fwctl_device_type {
|
||||
FWCTL_DEVICE_TYPE_ERROR = 0,
|
||||
FWCTL_DEVICE_TYPE_MLX5 = 1,
|
||||
FWCTL_DEVICE_TYPE_CXL = 2,
|
||||
FWCTL_DEVICE_TYPE_PDS = 4,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fwctl_info - ioctl(FWCTL_INFO)
|
||||
* @size: sizeof(struct fwctl_info)
|
||||
* @flags: Must be 0
|
||||
* @out_device_type: Returns the type of the device from enum fwctl_device_type
|
||||
* @device_data_len: On input the length of the out_device_data memory. On
|
||||
* output the size of the kernel's device_data which may be larger or
|
||||
* smaller than the input. Maybe 0 on input.
|
||||
* @out_device_data: Pointer to a memory of device_data_len bytes. Kernel will
|
||||
* fill the entire memory, zeroing as required.
|
||||
*
|
||||
* Returns basic information about this fwctl instance, particularly what driver
|
||||
* is being used to define the device_data format.
|
||||
*/
|
||||
struct fwctl_info {
|
||||
__u32 size;
|
||||
__u32 flags;
|
||||
__u32 out_device_type;
|
||||
__u32 device_data_len;
|
||||
__aligned_u64 out_device_data;
|
||||
};
|
||||
#define FWCTL_INFO _IO(FWCTL_TYPE, FWCTL_CMD_INFO)
|
||||
|
||||
/**
|
||||
* enum fwctl_rpc_scope - Scope of access for the RPC
|
||||
*
|
||||
* Refer to fwctl.rst for a more detailed discussion of these scopes.
|
||||
*/
|
||||
enum fwctl_rpc_scope {
|
||||
/**
|
||||
* @FWCTL_RPC_CONFIGURATION: Device configuration access scope
|
||||
*
|
||||
* Read/write access to device configuration. When configuration
|
||||
* is written to the device it remains in a fully supported state.
|
||||
*/
|
||||
FWCTL_RPC_CONFIGURATION = 0,
|
||||
/**
|
||||
* @FWCTL_RPC_DEBUG_READ_ONLY: Read only access to debug information
|
||||
*
|
||||
* Readable debug information. Debug information is compatible with
|
||||
* kernel lockdown, and does not disclose any sensitive information. For
|
||||
* instance exposing any encryption secrets from this information is
|
||||
* forbidden.
|
||||
*/
|
||||
FWCTL_RPC_DEBUG_READ_ONLY = 1,
|
||||
/**
|
||||
* @FWCTL_RPC_DEBUG_WRITE: Writable access to lockdown compatible debug information
|
||||
*
|
||||
* Allows write access to data in the device which may leave a fully
|
||||
* supported state. This is intended to permit intensive and possibly
|
||||
* invasive debugging. This scope will taint the kernel.
|
||||
*/
|
||||
FWCTL_RPC_DEBUG_WRITE = 2,
|
||||
/**
|
||||
* @FWCTL_RPC_DEBUG_WRITE_FULL: Write access to all debug information
|
||||
*
|
||||
* Allows read/write access to everything. Requires CAP_SYS_RAW_IO, so
|
||||
* it is not required to follow lockdown principals. If in doubt
|
||||
* debugging should be placed in this scope. This scope will taint the
|
||||
* kernel.
|
||||
*/
|
||||
FWCTL_RPC_DEBUG_WRITE_FULL = 3,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fwctl_rpc - ioctl(FWCTL_RPC)
|
||||
* @size: sizeof(struct fwctl_rpc)
|
||||
* @scope: One of enum fwctl_rpc_scope, required scope for the RPC
|
||||
* @in_len: Length of the in memory
|
||||
* @out_len: Length of the out memory
|
||||
* @in: Request message in device specific format
|
||||
* @out: Response message in device specific format
|
||||
*
|
||||
* Deliver a Remote Procedure Call to the device FW and return the response. The
|
||||
* call's parameters and return are marshaled into linear buffers of memory. Any
|
||||
* errno indicates that delivery of the RPC to the device failed. Return status
|
||||
* originating in the device during a successful delivery must be encoded into
|
||||
* out.
|
||||
*
|
||||
* The format of the buffers matches the out_device_type from FWCTL_INFO.
|
||||
*/
|
||||
struct fwctl_rpc {
|
||||
__u32 size;
|
||||
__u32 scope;
|
||||
__u32 in_len;
|
||||
__u32 out_len;
|
||||
__aligned_u64 in;
|
||||
__aligned_u64 out;
|
||||
};
|
||||
#define FWCTL_RPC _IO(FWCTL_TYPE, FWCTL_CMD_RPC)
|
||||
|
||||
#endif
|
||||
36
include/uapi/fwctl/mlx5.h
Normal file
36
include/uapi/fwctl/mlx5.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES
|
||||
*
|
||||
* These are definitions for the command interface for mlx5 HW. mlx5 FW has a
|
||||
* User Context mechanism which allows the FW to understand a security scope.
|
||||
* FWCTL binds each FD to a FW user context and then places the User Context ID
|
||||
* (UID) in each command header. The created User Context has a capability set
|
||||
* that is appropriate for FWCTL's security model.
|
||||
*
|
||||
* Command formation should use a copy of the structs in mlx5_ifc.h following
|
||||
* the Programmers Reference Manual. A open release is available here:
|
||||
*
|
||||
* https://network.nvidia.com/files/doc-2020/ethernet-adapters-programming-manual.pdf
|
||||
*
|
||||
* The device_type for this file is FWCTL_DEVICE_TYPE_MLX5.
|
||||
*/
|
||||
#ifndef _UAPI_FWCTL_MLX5_H
|
||||
#define _UAPI_FWCTL_MLX5_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct fwctl_info_mlx5 - ioctl(FWCTL_INFO) out_device_data
|
||||
* @uid: The FW UID this FD is bound to. Each command header will force
|
||||
* this value.
|
||||
* @uctx_caps: The FW capabilities that are enabled for the uid.
|
||||
*
|
||||
* Return basic information about the FW interface available.
|
||||
*/
|
||||
struct fwctl_info_mlx5 {
|
||||
__u32 uid;
|
||||
__u32 uctx_caps;
|
||||
};
|
||||
|
||||
#endif
|
||||
62
include/uapi/fwctl/pds.h
Normal file
62
include/uapi/fwctl/pds.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* Copyright(c) Advanced Micro Devices, Inc */
|
||||
|
||||
/*
|
||||
* fwctl interface info for pds_fwctl
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_FWCTL_PDS_H_
|
||||
#define _UAPI_FWCTL_PDS_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* struct fwctl_info_pds
|
||||
* @uctx_caps: bitmap of firmware capabilities
|
||||
*
|
||||
* Return basic information about the FW interface available.
|
||||
*/
|
||||
struct fwctl_info_pds {
|
||||
__u32 uctx_caps;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum pds_fwctl_capabilities
|
||||
* @PDS_FWCTL_QUERY_CAP: firmware can be queried for information
|
||||
* @PDS_FWCTL_SEND_CAP: firmware can be sent commands
|
||||
*/
|
||||
enum pds_fwctl_capabilities {
|
||||
PDS_FWCTL_QUERY_CAP = 0,
|
||||
PDS_FWCTL_SEND_CAP,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct fwctl_rpc_pds
|
||||
* @in.op: requested operation code
|
||||
* @in.ep: firmware endpoint to operate on
|
||||
* @in.rsvd: reserved
|
||||
* @in.len: length of payload data
|
||||
* @in.payload: address of payload buffer
|
||||
* @in: rpc in parameters
|
||||
* @out.retval: operation result value
|
||||
* @out.rsvd: reserved
|
||||
* @out.len: length of result data buffer
|
||||
* @out.payload: address of payload data buffer
|
||||
* @out: rpc out parameters
|
||||
*/
|
||||
struct fwctl_rpc_pds {
|
||||
struct {
|
||||
__u32 op;
|
||||
__u32 ep;
|
||||
__u32 rsvd;
|
||||
__u32 len;
|
||||
__aligned_u64 payload;
|
||||
} in;
|
||||
struct {
|
||||
__u32 retval;
|
||||
__u32 rsvd[2];
|
||||
__u32 len;
|
||||
__aligned_u64 payload;
|
||||
} out;
|
||||
};
|
||||
#endif /* _UAPI_FWCTL_PDS_H_ */
|
||||
@@ -33,7 +33,7 @@
|
||||
* 1100 - 1199 user space trusted application messages
|
||||
* 1200 - 1299 messages internal to the audit daemon
|
||||
* 1300 - 1399 audit event messages
|
||||
* 1400 - 1499 SE Linux use
|
||||
* 1400 - 1499 access control messages
|
||||
* 1500 - 1599 kernel LSPP events
|
||||
* 1600 - 1699 kernel crypto events
|
||||
* 1700 - 1799 kernel anomaly records
|
||||
@@ -146,6 +146,8 @@
|
||||
#define AUDIT_IPE_ACCESS 1420 /* IPE denial or grant */
|
||||
#define AUDIT_IPE_CONFIG_CHANGE 1421 /* IPE config change */
|
||||
#define AUDIT_IPE_POLICY_LOAD 1422 /* IPE policy load */
|
||||
#define AUDIT_LANDLOCK_ACCESS 1423 /* Landlock denial */
|
||||
#define AUDIT_LANDLOCK_DOMAIN 1424 /* Landlock domain status */
|
||||
|
||||
#define AUDIT_FIRST_KERN_ANOM_MSG 1700
|
||||
#define AUDIT_LAST_KERN_ANOM_MSG 1799
|
||||
|
||||
@@ -342,7 +342,7 @@ enum batadv_nl_attrs {
|
||||
BATADV_ATTR_MCAST_FLAGS_PRIV,
|
||||
|
||||
/**
|
||||
* @BATADV_ATTR_VLANID: VLAN id on top of soft interface
|
||||
* @BATADV_ATTR_VLANID: VLAN id on top of mesh interface
|
||||
*/
|
||||
BATADV_ATTR_VLANID,
|
||||
|
||||
@@ -380,7 +380,7 @@ enum batadv_nl_attrs {
|
||||
/**
|
||||
* @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop
|
||||
* avoidance feature is enabled. This feature detects and avoids loops
|
||||
* between the mesh and devices bridged with the soft interface
|
||||
* between the mesh and devices bridged with the mesh interface
|
||||
*/
|
||||
BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED,
|
||||
|
||||
@@ -509,7 +509,7 @@ enum batadv_nl_commands {
|
||||
BATADV_CMD_UNSPEC,
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_GET_MESH: Get attributes from softif/mesh
|
||||
* @BATADV_CMD_GET_MESH: Get attributes from mesh(if)
|
||||
*/
|
||||
BATADV_CMD_GET_MESH,
|
||||
|
||||
@@ -535,7 +535,7 @@ enum batadv_nl_commands {
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the
|
||||
* current softif
|
||||
* current mesh(if)
|
||||
*/
|
||||
BATADV_CMD_GET_HARDIF,
|
||||
|
||||
@@ -591,25 +591,25 @@ enum batadv_nl_commands {
|
||||
BATADV_CMD_GET_MCAST_FLAGS,
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_SET_MESH: Set attributes for softif/mesh
|
||||
* @BATADV_CMD_SET_MESH: Set attributes for mesh(if)
|
||||
*/
|
||||
BATADV_CMD_SET_MESH,
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the
|
||||
* current softif
|
||||
* current mesh(if)
|
||||
*/
|
||||
BATADV_CMD_SET_HARDIF,
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the
|
||||
* current softif
|
||||
* current mesh(if)
|
||||
*/
|
||||
BATADV_CMD_GET_VLAN,
|
||||
|
||||
/**
|
||||
* @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the
|
||||
* current softif
|
||||
* current mesh(if)
|
||||
*/
|
||||
BATADV_CMD_SET_VLAN,
|
||||
|
||||
@@ -691,7 +691,7 @@ enum batadv_ifla_attrs {
|
||||
*/
|
||||
IFLA_BATADV_ALGO_NAME,
|
||||
|
||||
/* add attributes above here, update the policy in soft-interface.c */
|
||||
/* add attributes above here, update the policy in mesh-interface.c */
|
||||
|
||||
/**
|
||||
* @__IFLA_BATADV_MAX: internal use
|
||||
|
||||
@@ -4,13 +4,9 @@
|
||||
#ifndef _UAPI_LINUX_BITS_H
|
||||
#define _UAPI_LINUX_BITS_H
|
||||
|
||||
#define __GENMASK(h, l) \
|
||||
(((~_UL(0)) - (_UL(1) << (l)) + 1) & \
|
||||
(~_UL(0) >> (__BITS_PER_LONG - 1 - (h))))
|
||||
#define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (BITS_PER_LONG - 1 - (h))))
|
||||
|
||||
#define __GENMASK_ULL(h, l) \
|
||||
(((~_ULL(0)) - (_ULL(1) << (l)) + 1) & \
|
||||
(~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h))))
|
||||
#define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h))))
|
||||
|
||||
#define __GENMASK_U128(h, l) \
|
||||
((_BIT128((h)) << 1) - (_BIT128(l)))
|
||||
|
||||
44
include/uapi/linux/blk-crypto.h
Normal file
44
include/uapi/linux/blk-crypto.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef _UAPI_LINUX_BLK_CRYPTO_H
|
||||
#define _UAPI_LINUX_BLK_CRYPTO_H
|
||||
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
struct blk_crypto_import_key_arg {
|
||||
/* Raw key (input) */
|
||||
__u64 raw_key_ptr;
|
||||
__u64 raw_key_size;
|
||||
/* Long-term wrapped key blob (output) */
|
||||
__u64 lt_key_ptr;
|
||||
__u64 lt_key_size;
|
||||
__u64 reserved[4];
|
||||
};
|
||||
|
||||
struct blk_crypto_generate_key_arg {
|
||||
/* Long-term wrapped key blob (output) */
|
||||
__u64 lt_key_ptr;
|
||||
__u64 lt_key_size;
|
||||
__u64 reserved[4];
|
||||
};
|
||||
|
||||
struct blk_crypto_prepare_key_arg {
|
||||
/* Long-term wrapped key blob (input) */
|
||||
__u64 lt_key_ptr;
|
||||
__u64 lt_key_size;
|
||||
/* Ephemerally-wrapped key blob (output) */
|
||||
__u64 eph_key_ptr;
|
||||
__u64 eph_key_size;
|
||||
__u64 reserved[4];
|
||||
};
|
||||
|
||||
/*
|
||||
* These ioctls share the block device ioctl space; see uapi/linux/fs.h.
|
||||
* 140-141 are reserved for future blk-crypto ioctls; any more than that would
|
||||
* require an additional allocation from the block device ioctl space.
|
||||
*/
|
||||
#define BLKCRYPTOIMPORTKEY _IOWR(0x12, 137, struct blk_crypto_import_key_arg)
|
||||
#define BLKCRYPTOGENERATEKEY _IOWR(0x12, 138, struct blk_crypto_generate_key_arg)
|
||||
#define BLKCRYPTOPREPAREKEY _IOWR(0x12, 139, struct blk_crypto_prepare_key_arg)
|
||||
|
||||
#endif /* _UAPI_LINUX_BLK_CRYPTO_H */
|
||||
@@ -51,6 +51,9 @@
|
||||
#define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */
|
||||
#define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */
|
||||
|
||||
#define BPF_LOAD_ACQ 0x100 /* load-acquire */
|
||||
#define BPF_STORE_REL 0x110 /* store-release */
|
||||
|
||||
enum bpf_cond_pseudo_jmp {
|
||||
BPF_MAY_GOTO = 0,
|
||||
};
|
||||
@@ -1207,6 +1210,7 @@ enum bpf_perf_event_type {
|
||||
#define BPF_F_BEFORE (1U << 3)
|
||||
#define BPF_F_AFTER (1U << 4)
|
||||
#define BPF_F_ID (1U << 5)
|
||||
#define BPF_F_PREORDER (1U << 6)
|
||||
#define BPF_F_LINK BPF_F_LINK /* 1 << 13 */
|
||||
|
||||
/* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the
|
||||
@@ -1648,6 +1652,7 @@ union bpf_attr {
|
||||
};
|
||||
__u32 next_id;
|
||||
__u32 open_flags;
|
||||
__s32 fd_by_id_token_fd;
|
||||
};
|
||||
|
||||
struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */
|
||||
@@ -6019,7 +6024,10 @@ union bpf_attr {
|
||||
FN(user_ringbuf_drain, 209, ##ctx) \
|
||||
FN(cgrp_storage_get, 210, ##ctx) \
|
||||
FN(cgrp_storage_delete, 211, ##ctx) \
|
||||
/* */
|
||||
/* This helper list is effectively frozen. If you are trying to \
|
||||
* add a new helper, you should add a kfunc instead which has \
|
||||
* less stability guarantees. See Documentation/bpf/kfuncs.rst \
|
||||
*/
|
||||
|
||||
/* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't
|
||||
* know or care about integer value that is now passed as second argument
|
||||
@@ -6913,6 +6921,12 @@ enum {
|
||||
BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7F,
|
||||
};
|
||||
|
||||
enum {
|
||||
SK_BPF_CB_TX_TIMESTAMPING = 1<<0,
|
||||
SK_BPF_CB_MASK = (SK_BPF_CB_TX_TIMESTAMPING - 1) |
|
||||
SK_BPF_CB_TX_TIMESTAMPING
|
||||
};
|
||||
|
||||
/* List of known BPF sock_ops operators.
|
||||
* New entries can only be added at the end
|
||||
*/
|
||||
@@ -7025,6 +7039,29 @@ enum {
|
||||
* by the kernel or the
|
||||
* earlier bpf-progs.
|
||||
*/
|
||||
BPF_SOCK_OPS_TSTAMP_SCHED_CB, /* Called when skb is passing
|
||||
* through dev layer when
|
||||
* SK_BPF_CB_TX_TIMESTAMPING
|
||||
* feature is on.
|
||||
*/
|
||||
BPF_SOCK_OPS_TSTAMP_SND_SW_CB, /* Called when skb is about to send
|
||||
* to the nic when SK_BPF_CB_TX_TIMESTAMPING
|
||||
* feature is on.
|
||||
*/
|
||||
BPF_SOCK_OPS_TSTAMP_SND_HW_CB, /* Called in hardware phase when
|
||||
* SK_BPF_CB_TX_TIMESTAMPING feature
|
||||
* is on.
|
||||
*/
|
||||
BPF_SOCK_OPS_TSTAMP_ACK_CB, /* Called when all the skbs in the
|
||||
* same sendmsg call are acked
|
||||
* when SK_BPF_CB_TX_TIMESTAMPING
|
||||
* feature is on.
|
||||
*/
|
||||
BPF_SOCK_OPS_TSTAMP_SENDMSG_CB, /* Called when every sendmsg syscall
|
||||
* is triggered. It's used to correlate
|
||||
* sendmsg timestamp with corresponding
|
||||
* tskey.
|
||||
*/
|
||||
};
|
||||
|
||||
/* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
|
||||
@@ -7091,6 +7128,7 @@ enum {
|
||||
TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */
|
||||
TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */
|
||||
TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */
|
||||
SK_BPF_CB_FLAGS = 1009, /* Get or set sock ops flags in socket */
|
||||
};
|
||||
|
||||
enum {
|
||||
|
||||
@@ -36,7 +36,8 @@ struct btf_type {
|
||||
* bits 24-28: kind (e.g. int, ptr, array...etc)
|
||||
* bits 29-30: unused
|
||||
* bit 31: kind_flag, currently used by
|
||||
* struct, union, enum, fwd and enum64
|
||||
* struct, union, enum, fwd, enum64,
|
||||
* decl_tag and type_tag
|
||||
*/
|
||||
__u32 info;
|
||||
/* "size" is used by INT, ENUM, STRUCT, UNION, DATASEC and ENUM64.
|
||||
|
||||
@@ -615,7 +615,9 @@ struct btrfs_ioctl_clone_range_args {
|
||||
*/
|
||||
#define BTRFS_DEFRAG_RANGE_COMPRESS 1
|
||||
#define BTRFS_DEFRAG_RANGE_START_IO 2
|
||||
#define BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL 4
|
||||
#define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \
|
||||
BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL | \
|
||||
BTRFS_DEFRAG_RANGE_START_IO)
|
||||
|
||||
struct btrfs_ioctl_defrag_range_args {
|
||||
@@ -640,10 +642,18 @@ struct btrfs_ioctl_defrag_range_args {
|
||||
|
||||
/*
|
||||
* which compression method to use if turning on compression
|
||||
* for this defrag operation. If unspecified, zlib will
|
||||
* be used
|
||||
* for this defrag operation. If unspecified, zlib will be
|
||||
* used. If compression level is also being specified, set the
|
||||
* BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL flag and fill the compress
|
||||
* member structure instead of the compress_type field.
|
||||
*/
|
||||
__u32 compress_type;
|
||||
union {
|
||||
__u32 compress_type;
|
||||
struct {
|
||||
__u8 type;
|
||||
__s8 level;
|
||||
} compress;
|
||||
};
|
||||
|
||||
/* spare for later */
|
||||
__u32 unused[4];
|
||||
|
||||
@@ -182,7 +182,7 @@ struct canfd_frame {
|
||||
/*
|
||||
* defined bits for canxl_frame.flags
|
||||
*
|
||||
* The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC
|
||||
* The canxl_frame.flags element contains three bits CANXL_[XLF|SEC|RRS]
|
||||
* and shares the relative position of the struct can[fd]_frame.len element.
|
||||
* The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame.
|
||||
* As a side effect setting this bit intentionally breaks the length checks
|
||||
@@ -192,6 +192,7 @@ struct canfd_frame {
|
||||
*/
|
||||
#define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */
|
||||
#define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */
|
||||
#define CANXL_RRS 0x02 /* Remote Request Substitution */
|
||||
|
||||
/* the 8-bit VCID is optionally placed in the canxl_frame.prio element */
|
||||
#define CANXL_VCID_OFFSET 16 /* bit offset of VCID in prio element */
|
||||
|
||||
@@ -275,6 +275,7 @@ struct vfs_ns_cap_data {
|
||||
/* Allow setting encryption key on loopback filesystem */
|
||||
/* Allow setting zone reclaim policy */
|
||||
/* Allow everything under CAP_BPF and CAP_PERFMON for backward compatibility */
|
||||
/* Allow setting hardware protection emergency action */
|
||||
|
||||
#define CAP_SYS_ADMIN 21
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
* Missing asm support
|
||||
*
|
||||
* __BIT128() would not work in the asm code, as it shifts an
|
||||
* 'unsigned __init128' data type as direct representation of
|
||||
* 'unsigned __int128' data type as direct representation of
|
||||
* 128 bit constants is not supported in the gcc compiler, as
|
||||
* they get silently truncated.
|
||||
*
|
||||
|
||||
@@ -65,6 +65,8 @@ enum counter_event_type {
|
||||
COUNTER_EVENT_CHANGE_OF_STATE,
|
||||
/* Count value captured */
|
||||
COUNTER_EVENT_CAPTURE,
|
||||
/* Direction change detected */
|
||||
COUNTER_EVENT_DIRECTION_CHANGE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
40
include/uapi/linux/counter/microchip-tcb-capture.h
Normal file
40
include/uapi/linux/counter/microchip-tcb-capture.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* Channel numbers used by the microchip-tcb-capture driver
|
||||
* Copyright (C) 2025 Bence Csókás
|
||||
*/
|
||||
#ifndef _UAPI_COUNTER_MCHP_TCB_H_
|
||||
#define _UAPI_COUNTER_MCHP_TCB_H_
|
||||
|
||||
/*
|
||||
* The driver defines the following components:
|
||||
*
|
||||
* Count 0
|
||||
* \__ Synapse 0 -- Signal 0 (Channel A, i.e. TIOA)
|
||||
* \__ Synapse 1 -- Signal 1 (Channel B, i.e. TIOB)
|
||||
* \__ Extension capture0 (RA register)
|
||||
* \__ Extension capture1 (RB register)
|
||||
*
|
||||
* It also supports the following events:
|
||||
*
|
||||
* Channel 0:
|
||||
* - CV register changed
|
||||
* - CV overflowed
|
||||
* - RA captured
|
||||
* Channel 1:
|
||||
* - RB captured
|
||||
* Channel 2:
|
||||
* - RC compare triggered
|
||||
*/
|
||||
|
||||
/* Capture extensions */
|
||||
#define COUNTER_MCHP_EXCAP_RA 0
|
||||
#define COUNTER_MCHP_EXCAP_RB 1
|
||||
|
||||
/* Event channels */
|
||||
#define COUNTER_MCHP_EVCHN_CV 0
|
||||
#define COUNTER_MCHP_EVCHN_RA 0
|
||||
#define COUNTER_MCHP_EVCHN_RB 1
|
||||
#define COUNTER_MCHP_EVCHN_RC 2
|
||||
|
||||
#endif /* _UAPI_COUNTER_MCHP_TCB_H_ */
|
||||
@@ -11,6 +11,7 @@ typedef __u16 Elf32_Half;
|
||||
typedef __u32 Elf32_Off;
|
||||
typedef __s32 Elf32_Sword;
|
||||
typedef __u32 Elf32_Word;
|
||||
typedef __u16 Elf32_Versym;
|
||||
|
||||
/* 64-bit ELF base types. */
|
||||
typedef __u64 Elf64_Addr;
|
||||
@@ -21,6 +22,7 @@ typedef __s32 Elf64_Sword;
|
||||
typedef __u32 Elf64_Word;
|
||||
typedef __u64 Elf64_Xword;
|
||||
typedef __s64 Elf64_Sxword;
|
||||
typedef __u16 Elf64_Versym;
|
||||
|
||||
/* These constants are for the segment types stored in the image headers */
|
||||
#define PT_NULL 0
|
||||
@@ -107,6 +109,7 @@ typedef __s64 Elf64_Sxword;
|
||||
#define DT_VALRNGLO 0x6ffffd00
|
||||
#define DT_VALRNGHI 0x6ffffdff
|
||||
#define DT_ADDRRNGLO 0x6ffffe00
|
||||
#define DT_GNU_HASH 0x6ffffef5
|
||||
#define DT_ADDRRNGHI 0x6ffffeff
|
||||
#define DT_VERSYM 0x6ffffff0
|
||||
#define DT_RELACOUNT 0x6ffffff9
|
||||
@@ -125,6 +128,8 @@ typedef __s64 Elf64_Sxword;
|
||||
#define STB_GLOBAL 1
|
||||
#define STB_WEAK 2
|
||||
|
||||
#define STN_UNDEF 0
|
||||
|
||||
#define STT_NOTYPE 0
|
||||
#define STT_OBJECT 1
|
||||
#define STT_FUNC 2
|
||||
@@ -133,6 +138,9 @@ typedef __s64 Elf64_Sxword;
|
||||
#define STT_COMMON 5
|
||||
#define STT_TLS 6
|
||||
|
||||
#define VER_FLG_BASE 0x1
|
||||
#define VER_FLG_WEAK 0x2
|
||||
|
||||
#define ELF_ST_BIND(x) ((x) >> 4)
|
||||
#define ELF_ST_TYPE(x) ((x) & 0xf)
|
||||
#define ELF32_ST_BIND(x) ELF_ST_BIND(x)
|
||||
@@ -291,8 +299,18 @@ typedef struct elf64_phdr {
|
||||
#define SHF_WRITE 0x1
|
||||
#define SHF_ALLOC 0x2
|
||||
#define SHF_EXECINSTR 0x4
|
||||
#define SHF_MERGE 0x10
|
||||
#define SHF_STRINGS 0x20
|
||||
#define SHF_INFO_LINK 0x40
|
||||
#define SHF_LINK_ORDER 0x80
|
||||
#define SHF_OS_NONCONFORMING 0x100
|
||||
#define SHF_GROUP 0x200
|
||||
#define SHF_TLS 0x400
|
||||
#define SHF_RELA_LIVEPATCH 0x00100000
|
||||
#define SHF_RO_AFTER_INIT 0x00200000
|
||||
#define SHF_ORDERED 0x04000000
|
||||
#define SHF_EXCLUDE 0x08000000
|
||||
#define SHF_MASKOS 0x0ff00000
|
||||
#define SHF_MASKPROC 0xf0000000
|
||||
|
||||
/* special section indexes */
|
||||
@@ -368,101 +386,180 @@ typedef struct elf64_shdr {
|
||||
#define ELF_OSABI ELFOSABI_NONE
|
||||
#endif
|
||||
|
||||
/* Note definitions: NN_ defines names. NT_ defines types. */
|
||||
|
||||
#define NN_GNU_PROPERTY_TYPE_0 "GNU"
|
||||
#define NT_GNU_PROPERTY_TYPE_0 5
|
||||
|
||||
/*
|
||||
* Notes used in ET_CORE. Architectures export some of the arch register sets
|
||||
* using the corresponding note types via the PTRACE_GETREGSET and
|
||||
* PTRACE_SETREGSET requests.
|
||||
* The note name for these types is "LINUX", except NT_PRFPREG that is named
|
||||
* "CORE".
|
||||
*/
|
||||
#define NN_PRSTATUS "CORE"
|
||||
#define NT_PRSTATUS 1
|
||||
#define NN_PRFPREG "CORE"
|
||||
#define NT_PRFPREG 2
|
||||
#define NN_PRPSINFO "CORE"
|
||||
#define NT_PRPSINFO 3
|
||||
#define NN_TASKSTRUCT "CORE"
|
||||
#define NT_TASKSTRUCT 4
|
||||
#define NN_AUXV "CORE"
|
||||
#define NT_AUXV 6
|
||||
/*
|
||||
* Note to userspace developers: size of NT_SIGINFO note may increase
|
||||
* in the future to accomodate more fields, don't assume it is fixed!
|
||||
*/
|
||||
#define NN_SIGINFO "CORE"
|
||||
#define NT_SIGINFO 0x53494749
|
||||
#define NN_FILE "CORE"
|
||||
#define NT_FILE 0x46494c45
|
||||
#define NN_PRXFPREG "LINUX"
|
||||
#define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */
|
||||
#define NN_PPC_VMX "LINUX"
|
||||
#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
|
||||
#define NN_PPC_SPE "LINUX"
|
||||
#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
|
||||
#define NN_PPC_VSX "LINUX"
|
||||
#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
|
||||
#define NN_PPC_TAR "LINUX"
|
||||
#define NT_PPC_TAR 0x103 /* Target Address Register */
|
||||
#define NN_PPC_PPR "LINUX"
|
||||
#define NT_PPC_PPR 0x104 /* Program Priority Register */
|
||||
#define NN_PPC_DSCR "LINUX"
|
||||
#define NT_PPC_DSCR 0x105 /* Data Stream Control Register */
|
||||
#define NN_PPC_EBB "LINUX"
|
||||
#define NT_PPC_EBB 0x106 /* Event Based Branch Registers */
|
||||
#define NN_PPC_PMU "LINUX"
|
||||
#define NT_PPC_PMU 0x107 /* Performance Monitor Registers */
|
||||
#define NN_PPC_TM_CGPR "LINUX"
|
||||
#define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */
|
||||
#define NN_PPC_TM_CFPR "LINUX"
|
||||
#define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */
|
||||
#define NN_PPC_TM_CVMX "LINUX"
|
||||
#define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */
|
||||
#define NN_PPC_TM_CVSX "LINUX"
|
||||
#define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */
|
||||
#define NN_PPC_TM_SPR "LINUX"
|
||||
#define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */
|
||||
#define NN_PPC_TM_CTAR "LINUX"
|
||||
#define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address Register */
|
||||
#define NN_PPC_TM_CPPR "LINUX"
|
||||
#define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority Register */
|
||||
#define NN_PPC_TM_CDSCR "LINUX"
|
||||
#define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control Register */
|
||||
#define NN_PPC_PKEY "LINUX"
|
||||
#define NT_PPC_PKEY 0x110 /* Memory Protection Keys registers */
|
||||
#define NN_PPC_DEXCR "LINUX"
|
||||
#define NT_PPC_DEXCR 0x111 /* PowerPC DEXCR registers */
|
||||
#define NN_PPC_HASHKEYR "LINUX"
|
||||
#define NT_PPC_HASHKEYR 0x112 /* PowerPC HASHKEYR register */
|
||||
#define NN_386_TLS "LINUX"
|
||||
#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
|
||||
#define NN_386_IOPERM "LINUX"
|
||||
#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
|
||||
#define NN_X86_XSTATE "LINUX"
|
||||
#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
|
||||
/* Old binutils treats 0x203 as a CET state */
|
||||
#define NN_X86_SHSTK "LINUX"
|
||||
#define NT_X86_SHSTK 0x204 /* x86 SHSTK state */
|
||||
#define NN_X86_XSAVE_LAYOUT "LINUX"
|
||||
#define NT_X86_XSAVE_LAYOUT 0x205 /* XSAVE layout description */
|
||||
#define NN_S390_HIGH_GPRS "LINUX"
|
||||
#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
|
||||
#define NN_S390_TIMER "LINUX"
|
||||
#define NT_S390_TIMER 0x301 /* s390 timer register */
|
||||
#define NN_S390_TODCMP "LINUX"
|
||||
#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */
|
||||
#define NN_S390_TODPREG "LINUX"
|
||||
#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */
|
||||
#define NN_S390_CTRS "LINUX"
|
||||
#define NT_S390_CTRS 0x304 /* s390 control registers */
|
||||
#define NN_S390_PREFIX "LINUX"
|
||||
#define NT_S390_PREFIX 0x305 /* s390 prefix register */
|
||||
#define NN_S390_LAST_BREAK "LINUX"
|
||||
#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */
|
||||
#define NN_S390_SYSTEM_CALL "LINUX"
|
||||
#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */
|
||||
#define NN_S390_TDB "LINUX"
|
||||
#define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */
|
||||
#define NN_S390_VXRS_LOW "LINUX"
|
||||
#define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 upper half */
|
||||
#define NN_S390_VXRS_HIGH "LINUX"
|
||||
#define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */
|
||||
#define NN_S390_GS_CB "LINUX"
|
||||
#define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */
|
||||
#define NN_S390_GS_BC "LINUX"
|
||||
#define NT_S390_GS_BC 0x30c /* s390 guarded storage broadcast control block */
|
||||
#define NN_S390_RI_CB "LINUX"
|
||||
#define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation */
|
||||
#define NN_S390_PV_CPU_DATA "LINUX"
|
||||
#define NT_S390_PV_CPU_DATA 0x30e /* s390 protvirt cpu dump data */
|
||||
#define NN_ARM_VFP "LINUX"
|
||||
#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */
|
||||
#define NN_ARM_TLS "LINUX"
|
||||
#define NT_ARM_TLS 0x401 /* ARM TLS register */
|
||||
#define NN_ARM_HW_BREAK "LINUX"
|
||||
#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
|
||||
#define NN_ARM_HW_WATCH "LINUX"
|
||||
#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
|
||||
#define NN_ARM_SYSTEM_CALL "LINUX"
|
||||
#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
|
||||
#define NN_ARM_SVE "LINUX"
|
||||
#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */
|
||||
#define NN_ARM_PAC_MASK "LINUX"
|
||||
#define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */
|
||||
#define NN_ARM_PACA_KEYS "LINUX"
|
||||
#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */
|
||||
#define NN_ARM_PACG_KEYS "LINUX"
|
||||
#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */
|
||||
#define NN_ARM_TAGGED_ADDR_CTRL "LINUX"
|
||||
#define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */
|
||||
#define NN_ARM_PAC_ENABLED_KEYS "LINUX"
|
||||
#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* arm64 ptr auth enabled keys (prctl()) */
|
||||
#define NN_ARM_SSVE "LINUX"
|
||||
#define NT_ARM_SSVE 0x40b /* ARM Streaming SVE registers */
|
||||
#define NN_ARM_ZA "LINUX"
|
||||
#define NT_ARM_ZA 0x40c /* ARM SME ZA registers */
|
||||
#define NN_ARM_ZT "LINUX"
|
||||
#define NT_ARM_ZT 0x40d /* ARM SME ZT registers */
|
||||
#define NN_ARM_FPMR "LINUX"
|
||||
#define NT_ARM_FPMR 0x40e /* ARM floating point mode register */
|
||||
#define NN_ARM_POE "LINUX"
|
||||
#define NT_ARM_POE 0x40f /* ARM POE registers */
|
||||
#define NN_ARM_GCS "LINUX"
|
||||
#define NT_ARM_GCS 0x410 /* ARM GCS state */
|
||||
#define NN_ARC_V2 "LINUX"
|
||||
#define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */
|
||||
#define NN_VMCOREDD "LINUX"
|
||||
#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */
|
||||
#define NN_MIPS_DSP "LINUX"
|
||||
#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */
|
||||
#define NN_MIPS_FP_MODE "LINUX"
|
||||
#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */
|
||||
#define NN_MIPS_MSA "LINUX"
|
||||
#define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */
|
||||
#define NN_RISCV_CSR "LINUX"
|
||||
#define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */
|
||||
#define NN_RISCV_VECTOR "LINUX"
|
||||
#define NT_RISCV_VECTOR 0x901 /* RISC-V vector registers */
|
||||
#define NN_RISCV_TAGGED_ADDR_CTRL "LINUX"
|
||||
#define NT_RISCV_TAGGED_ADDR_CTRL 0x902 /* RISC-V tagged address control (prctl()) */
|
||||
#define NN_LOONGARCH_CPUCFG "LINUX"
|
||||
#define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */
|
||||
#define NN_LOONGARCH_CSR "LINUX"
|
||||
#define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and status registers */
|
||||
#define NN_LOONGARCH_LSX "LINUX"
|
||||
#define NT_LOONGARCH_LSX 0xa02 /* LoongArch Loongson SIMD Extension registers */
|
||||
#define NN_LOONGARCH_LASX "LINUX"
|
||||
#define NT_LOONGARCH_LASX 0xa03 /* LoongArch Loongson Advanced SIMD Extension registers */
|
||||
#define NN_LOONGARCH_LBT "LINUX"
|
||||
#define NT_LOONGARCH_LBT 0xa04 /* LoongArch Loongson Binary Translation registers */
|
||||
#define NN_LOONGARCH_HW_BREAK "LINUX"
|
||||
#define NT_LOONGARCH_HW_BREAK 0xa05 /* LoongArch hardware breakpoint registers */
|
||||
#define NN_LOONGARCH_HW_WATCH "LINUX"
|
||||
#define NT_LOONGARCH_HW_WATCH 0xa06 /* LoongArch hardware watchpoint registers */
|
||||
|
||||
/* Note types with note name "GNU" */
|
||||
#define NT_GNU_PROPERTY_TYPE_0 5
|
||||
|
||||
/* Note header in a PT_NOTE section */
|
||||
typedef struct elf32_note {
|
||||
Elf32_Word n_namesz; /* Name size */
|
||||
@@ -483,4 +580,34 @@ typedef struct elf64_note {
|
||||
/* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */
|
||||
#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0)
|
||||
|
||||
typedef struct {
|
||||
Elf32_Half vd_version;
|
||||
Elf32_Half vd_flags;
|
||||
Elf32_Half vd_ndx;
|
||||
Elf32_Half vd_cnt;
|
||||
Elf32_Word vd_hash;
|
||||
Elf32_Word vd_aux;
|
||||
Elf32_Word vd_next;
|
||||
} Elf32_Verdef;
|
||||
|
||||
typedef struct {
|
||||
Elf64_Half vd_version;
|
||||
Elf64_Half vd_flags;
|
||||
Elf64_Half vd_ndx;
|
||||
Elf64_Half vd_cnt;
|
||||
Elf64_Word vd_hash;
|
||||
Elf64_Word vd_aux;
|
||||
Elf64_Word vd_next;
|
||||
} Elf64_Verdef;
|
||||
|
||||
typedef struct {
|
||||
Elf32_Word vda_name;
|
||||
Elf32_Word vda_next;
|
||||
} Elf32_Verdaux;
|
||||
|
||||
typedef struct {
|
||||
Elf64_Word vda_name;
|
||||
Elf64_Word vda_next;
|
||||
} Elf64_Verdaux;
|
||||
|
||||
#endif /* _UAPI_LINUX_ELF_H */
|
||||
|
||||
@@ -73,6 +73,7 @@ enum {
|
||||
SCM_TSTAMP_SND, /* driver passed skb to NIC, or HW */
|
||||
SCM_TSTAMP_SCHED, /* data entered the packet scheduler */
|
||||
SCM_TSTAMP_ACK, /* data acknowledged by peer */
|
||||
SCM_TSTAMP_COMPLETION, /* packet tx completion */
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_ERRQUEUE_H */
|
||||
|
||||
@@ -2059,6 +2059,24 @@ enum ethtool_link_mode_bit_indices {
|
||||
ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100,
|
||||
ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101,
|
||||
ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT = 102,
|
||||
ETHTOOL_LINK_MODE_200000baseCR_Full_BIT = 103,
|
||||
ETHTOOL_LINK_MODE_200000baseKR_Full_BIT = 104,
|
||||
ETHTOOL_LINK_MODE_200000baseDR_Full_BIT = 105,
|
||||
ETHTOOL_LINK_MODE_200000baseDR_2_Full_BIT = 106,
|
||||
ETHTOOL_LINK_MODE_200000baseSR_Full_BIT = 107,
|
||||
ETHTOOL_LINK_MODE_200000baseVR_Full_BIT = 108,
|
||||
ETHTOOL_LINK_MODE_400000baseCR2_Full_BIT = 109,
|
||||
ETHTOOL_LINK_MODE_400000baseKR2_Full_BIT = 110,
|
||||
ETHTOOL_LINK_MODE_400000baseDR2_Full_BIT = 111,
|
||||
ETHTOOL_LINK_MODE_400000baseDR2_2_Full_BIT = 112,
|
||||
ETHTOOL_LINK_MODE_400000baseSR2_Full_BIT = 113,
|
||||
ETHTOOL_LINK_MODE_400000baseVR2_Full_BIT = 114,
|
||||
ETHTOOL_LINK_MODE_800000baseCR4_Full_BIT = 115,
|
||||
ETHTOOL_LINK_MODE_800000baseKR4_Full_BIT = 116,
|
||||
ETHTOOL_LINK_MODE_800000baseDR4_Full_BIT = 117,
|
||||
ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT = 118,
|
||||
ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT = 119,
|
||||
ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT = 120,
|
||||
|
||||
/* must be last entry */
|
||||
__ETHTOOL_LINK_MODE_MASK_NBITS
|
||||
@@ -2271,6 +2289,10 @@ static inline int ethtool_validate_duplex(__u8 duplex)
|
||||
* be exploited to reduce the RSS queue spread.
|
||||
*/
|
||||
#define RXH_XFRM_SYM_XOR (1 << 0)
|
||||
/* Similar to SYM_XOR, except that one copy of the XOR'ed fields is replaced by
|
||||
* an OR of the same fields
|
||||
*/
|
||||
#define RXH_XFRM_SYM_OR_XOR (1 << 1)
|
||||
#define RXH_XFRM_NO_CHANGE 0xff
|
||||
|
||||
/* L2-L4 network traffic flow types */
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24)
|
||||
#define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25)
|
||||
#define F2FS_IOC_GET_DEV_ALIAS_FILE _IOR(F2FS_IOCTL_MAGIC, 26, __u32)
|
||||
#define F2FS_IOC_IO_PRIO _IOW(F2FS_IOCTL_MAGIC, 27, __u32)
|
||||
|
||||
/*
|
||||
* should be same as XFS_IOC_GOINGDOWN.
|
||||
@@ -63,6 +64,12 @@
|
||||
#define F2FS_TRIM_FILE_ZEROOUT 0x2 /* zero out */
|
||||
#define F2FS_TRIM_FILE_MASK 0x3
|
||||
|
||||
/* for F2FS_IOC_IO_PRIO */
|
||||
enum {
|
||||
F2FS_IOPRIO_WRITE = 1, /* high write priority */
|
||||
F2FS_IOPRIO_MAX,
|
||||
};
|
||||
|
||||
struct f2fs_gc_range {
|
||||
__u32 sync;
|
||||
__u64 start;
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
/* #define FAN_DIR_MODIFY 0x00080000 */ /* Deprecated (reserved) */
|
||||
|
||||
#define FAN_PRE_ACCESS 0x00100000 /* Pre-content access hook */
|
||||
#define FAN_MNT_ATTACH 0x01000000 /* Mount was attached */
|
||||
#define FAN_MNT_DETACH 0x02000000 /* Mount was detached */
|
||||
|
||||
#define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */
|
||||
|
||||
@@ -64,6 +66,7 @@
|
||||
#define FAN_REPORT_NAME 0x00000800 /* Report events with name */
|
||||
#define FAN_REPORT_TARGET_FID 0x00001000 /* Report dirent target id */
|
||||
#define FAN_REPORT_FD_ERROR 0x00002000 /* event->fd can report error */
|
||||
#define FAN_REPORT_MNT 0x00004000 /* Report mount events */
|
||||
|
||||
/* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */
|
||||
#define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
|
||||
@@ -94,6 +97,7 @@
|
||||
#define FAN_MARK_INODE 0x00000000
|
||||
#define FAN_MARK_MOUNT 0x00000010
|
||||
#define FAN_MARK_FILESYSTEM 0x00000100
|
||||
#define FAN_MARK_MNTNS 0x00000110
|
||||
|
||||
/*
|
||||
* Convenience macro - FAN_MARK_IGNORE requires FAN_MARK_IGNORED_SURV_MODIFY
|
||||
@@ -147,6 +151,7 @@ struct fanotify_event_metadata {
|
||||
#define FAN_EVENT_INFO_TYPE_PIDFD 4
|
||||
#define FAN_EVENT_INFO_TYPE_ERROR 5
|
||||
#define FAN_EVENT_INFO_TYPE_RANGE 6
|
||||
#define FAN_EVENT_INFO_TYPE_MNT 7
|
||||
|
||||
/* Special info types for FAN_RENAME */
|
||||
#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10
|
||||
@@ -200,6 +205,11 @@ struct fanotify_event_info_range {
|
||||
__u64 count;
|
||||
};
|
||||
|
||||
struct fanotify_event_info_mnt {
|
||||
struct fanotify_event_info_header hdr;
|
||||
__u64 mnt_id;
|
||||
};
|
||||
|
||||
/*
|
||||
* User space may need to record additional information about its decision.
|
||||
* The extra information type records what kind of information is included.
|
||||
|
||||
@@ -70,6 +70,9 @@ enum {
|
||||
FRA_DSCP, /* dscp */
|
||||
FRA_FLOWLABEL, /* flowlabel */
|
||||
FRA_FLOWLABEL_MASK, /* flowlabel mask */
|
||||
FRA_SPORT_MASK, /* sport mask */
|
||||
FRA_DPORT_MASK, /* dport mask */
|
||||
FRA_DSCP_MASK, /* dscp mask */
|
||||
__FRA_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -449,7 +449,8 @@ struct fw_cdev_event_phy_packet {
|
||||
* which the packet arrived. For %FW_CDEV_EVENT_PHY_PACKET_SENT2 and non-ping packet,
|
||||
* the time stamp of isochronous cycle at which the packet was sent. For ping packet,
|
||||
* the tick count for round-trip time measured by 1394 OHCI controller.
|
||||
* The time stamp of isochronous cycle at which either the response was sent for
|
||||
*
|
||||
* The time stamp of isochronous cycle at which either the response was sent for
|
||||
* %FW_CDEV_EVENT_PHY_PACKET_SENT2 or the request arrived for
|
||||
* %FW_CDEV_EVENT_PHY_PACKET_RECEIVED2.
|
||||
* @data: Incoming data
|
||||
|
||||
@@ -212,10 +212,8 @@ struct fsxattr {
|
||||
#define BLKROTATIONAL _IO(0x12,126)
|
||||
#define BLKZEROOUT _IO(0x12,127)
|
||||
#define BLKGETDISKSEQ _IOR(0x12,128,__u64)
|
||||
/*
|
||||
* A jump here: 130-136 are reserved for zoned block devices
|
||||
* (see uapi/linux/blkzoned.h)
|
||||
*/
|
||||
/* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */
|
||||
/* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */
|
||||
|
||||
#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
|
||||
#define FIBMAP _IO(0x00,1) /* bmap access */
|
||||
|
||||
@@ -229,6 +229,9 @@
|
||||
* - FUSE_URING_IN_OUT_HEADER_SZ
|
||||
* - FUSE_URING_OP_IN_OUT_SZ
|
||||
* - enum fuse_uring_cmd
|
||||
*
|
||||
* 7.43
|
||||
* - add FUSE_REQUEST_TIMEOUT
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_FUSE_H
|
||||
@@ -264,7 +267,7 @@
|
||||
#define FUSE_KERNEL_VERSION 7
|
||||
|
||||
/** Minor version number of this interface */
|
||||
#define FUSE_KERNEL_MINOR_VERSION 42
|
||||
#define FUSE_KERNEL_MINOR_VERSION 43
|
||||
|
||||
/** The node ID of the root inode */
|
||||
#define FUSE_ROOT_ID 1
|
||||
@@ -435,6 +438,8 @@ struct fuse_file_lock {
|
||||
* of the request ID indicates resend requests
|
||||
* FUSE_ALLOW_IDMAP: allow creation of idmapped mounts
|
||||
* FUSE_OVER_IO_URING: Indicate that client supports io-uring
|
||||
* FUSE_REQUEST_TIMEOUT: kernel supports timing out requests.
|
||||
* init_out.request_timeout contains the timeout (in secs)
|
||||
*/
|
||||
#define FUSE_ASYNC_READ (1 << 0)
|
||||
#define FUSE_POSIX_LOCKS (1 << 1)
|
||||
@@ -477,11 +482,11 @@ struct fuse_file_lock {
|
||||
#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
|
||||
#define FUSE_ALLOW_IDMAP (1ULL << 40)
|
||||
#define FUSE_OVER_IO_URING (1ULL << 41)
|
||||
#define FUSE_REQUEST_TIMEOUT (1ULL << 42)
|
||||
|
||||
/**
|
||||
* CUSE INIT request/reply flags
|
||||
@@ -909,7 +914,8 @@ struct fuse_init_out {
|
||||
uint16_t map_alignment;
|
||||
uint32_t flags2;
|
||||
uint32_t max_stack_depth;
|
||||
uint32_t unused[6];
|
||||
uint16_t request_timeout;
|
||||
uint16_t unused[11];
|
||||
};
|
||||
|
||||
#define CUSE_INIT_INFO_MAX 4096
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
#ifndef _LINUX_CABLEMODEM_H_
|
||||
#define _LINUX_CABLEMODEM_H_
|
||||
/*
|
||||
* Author: Franco Venturi <fventuri@mediaone.net>
|
||||
* Copyright 1998 Franco Venturi
|
||||
*
|
||||
* This program is free software; you can redistribute it
|
||||
* and/or modify it under the terms of the GNU General
|
||||
* Public License as published by the Free Software
|
||||
* Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*/
|
||||
|
||||
/* some useful defines for sb1000.c e cmconfig.c - fv */
|
||||
#define SIOCGCMSTATS (SIOCDEVPRIVATE+0) /* get cable modem stats */
|
||||
#define SIOCGCMFIRMWARE (SIOCDEVPRIVATE+1) /* get cm firmware version */
|
||||
#define SIOCGCMFREQUENCY (SIOCDEVPRIVATE+2) /* get cable modem frequency */
|
||||
#define SIOCSCMFREQUENCY (SIOCDEVPRIVATE+3) /* set cable modem frequency */
|
||||
#define SIOCGCMPIDS (SIOCDEVPRIVATE+4) /* get cable modem PIDs */
|
||||
#define SIOCSCMPIDS (SIOCDEVPRIVATE+5) /* set cable modem PIDs */
|
||||
|
||||
#endif
|
||||
@@ -378,6 +378,7 @@ enum {
|
||||
IFLA_GRO_IPV4_MAX_SIZE,
|
||||
IFLA_DPLL_PIN,
|
||||
IFLA_MAX_PACING_OFFLOAD_HORIZON,
|
||||
IFLA_NETNS_IMMUTABLE,
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -1438,6 +1439,7 @@ enum {
|
||||
IFLA_GENEVE_TTL_INHERIT,
|
||||
IFLA_GENEVE_DF,
|
||||
IFLA_GENEVE_INNER_PROTO_INHERIT,
|
||||
IFLA_GENEVE_PORT_RANGE,
|
||||
__IFLA_GENEVE_MAX
|
||||
};
|
||||
#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
|
||||
@@ -1450,6 +1452,11 @@ enum ifla_geneve_df {
|
||||
GENEVE_DF_MAX = __GENEVE_DF_END - 1,
|
||||
};
|
||||
|
||||
struct ifla_geneve_port_range {
|
||||
__be16 low;
|
||||
__be16 high;
|
||||
};
|
||||
|
||||
/* Bareudp section */
|
||||
enum {
|
||||
IFLA_BAREUDP_UNSPEC,
|
||||
|
||||
@@ -127,6 +127,12 @@ struct xdp_options {
|
||||
*/
|
||||
#define XDP_TXMD_FLAGS_CHECKSUM (1 << 1)
|
||||
|
||||
/* Request launch time hardware offload. The device will schedule the packet for
|
||||
* transmission at a pre-determined time called launch time. The value of
|
||||
* launch time is communicated via launch_time field of struct xsk_tx_metadata.
|
||||
*/
|
||||
#define XDP_TXMD_FLAGS_LAUNCH_TIME (1 << 2)
|
||||
|
||||
/* AF_XDP offloads request. 'request' union member is consumed by the driver
|
||||
* when the packet is being transmitted. 'completion' union member is
|
||||
* filled by the driver when the transmit completion arrives.
|
||||
@@ -142,6 +148,10 @@ struct xsk_tx_metadata {
|
||||
__u16 csum_start;
|
||||
/* Offset from csum_start where checksum should be stored. */
|
||||
__u16 csum_offset;
|
||||
|
||||
/* XDP_TXMD_FLAGS_LAUNCH_TIME */
|
||||
/* Launch time in nanosecond against the PTP HW Clock */
|
||||
__u64 launch_time;
|
||||
} request;
|
||||
|
||||
struct {
|
||||
|
||||
@@ -119,6 +119,7 @@ enum iio_event_type {
|
||||
IIO_EV_TYPE_CHANGE,
|
||||
IIO_EV_TYPE_MAG_REFERENCED,
|
||||
IIO_EV_TYPE_GESTURE,
|
||||
IIO_EV_TYPE_FAULT,
|
||||
};
|
||||
|
||||
enum iio_event_direction {
|
||||
@@ -128,6 +129,7 @@ enum iio_event_direction {
|
||||
IIO_EV_DIR_NONE,
|
||||
IIO_EV_DIR_SINGLETAP,
|
||||
IIO_EV_DIR_DOUBLETAP,
|
||||
IIO_EV_DIR_FAULT_OPENWIRE,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_IIO_TYPES_H_ */
|
||||
|
||||
@@ -87,6 +87,7 @@ struct io_uring_sqe {
|
||||
union {
|
||||
__s32 splice_fd_in;
|
||||
__u32 file_index;
|
||||
__u32 zcrx_ifq_idx;
|
||||
__u32 optlen;
|
||||
struct {
|
||||
__u16 addr_len;
|
||||
@@ -278,6 +279,10 @@ enum io_uring_op {
|
||||
IORING_OP_FTRUNCATE,
|
||||
IORING_OP_BIND,
|
||||
IORING_OP_LISTEN,
|
||||
IORING_OP_RECV_ZC,
|
||||
IORING_OP_EPOLL_WAIT,
|
||||
IORING_OP_READV_FIXED,
|
||||
IORING_OP_WRITEV_FIXED,
|
||||
|
||||
/* this goes last, obviously */
|
||||
IORING_OP_LAST,
|
||||
@@ -541,6 +546,7 @@ struct io_cqring_offsets {
|
||||
#define IORING_ENTER_REGISTERED_RING (1U << 4)
|
||||
#define IORING_ENTER_ABS_TIMER (1U << 5)
|
||||
#define IORING_ENTER_EXT_ARG_REG (1U << 6)
|
||||
#define IORING_ENTER_NO_IOWAIT (1U << 7)
|
||||
|
||||
/*
|
||||
* Passed in for io_uring_setup(2). Copied back with updated info on success
|
||||
@@ -578,6 +584,7 @@ struct io_uring_params {
|
||||
#define IORING_FEAT_RECVSEND_BUNDLE (1U << 14)
|
||||
#define IORING_FEAT_MIN_TIMEOUT (1U << 15)
|
||||
#define IORING_FEAT_RW_ATTR (1U << 16)
|
||||
#define IORING_FEAT_NO_IOWAIT (1U << 17)
|
||||
|
||||
/*
|
||||
* io_uring_register(2) opcodes and arguments
|
||||
@@ -639,7 +646,8 @@ enum io_uring_register_op {
|
||||
/* send MSG_RING without having a ring */
|
||||
IORING_REGISTER_SEND_MSG_RING = 31,
|
||||
|
||||
/* 32 reserved for zc rx */
|
||||
/* register a netdev hw rx queue for zerocopy */
|
||||
IORING_REGISTER_ZCRX_IFQ = 32,
|
||||
|
||||
/* resize CQ ring */
|
||||
IORING_REGISTER_RESIZE_RINGS = 33,
|
||||
@@ -956,6 +964,55 @@ enum io_uring_socket_op {
|
||||
SOCKET_URING_OP_SETSOCKOPT,
|
||||
};
|
||||
|
||||
/* Zero copy receive refill queue entry */
|
||||
struct io_uring_zcrx_rqe {
|
||||
__u64 off;
|
||||
__u32 len;
|
||||
__u32 __pad;
|
||||
};
|
||||
|
||||
struct io_uring_zcrx_cqe {
|
||||
__u64 off;
|
||||
__u64 __pad;
|
||||
};
|
||||
|
||||
/* The bit from which area id is encoded into offsets */
|
||||
#define IORING_ZCRX_AREA_SHIFT 48
|
||||
#define IORING_ZCRX_AREA_MASK (~(((__u64)1 << IORING_ZCRX_AREA_SHIFT) - 1))
|
||||
|
||||
struct io_uring_zcrx_offsets {
|
||||
__u32 head;
|
||||
__u32 tail;
|
||||
__u32 rqes;
|
||||
__u32 __resv2;
|
||||
__u64 __resv[2];
|
||||
};
|
||||
|
||||
struct io_uring_zcrx_area_reg {
|
||||
__u64 addr;
|
||||
__u64 len;
|
||||
__u64 rq_area_token;
|
||||
__u32 flags;
|
||||
__u32 __resv1;
|
||||
__u64 __resv2[2];
|
||||
};
|
||||
|
||||
/*
|
||||
* Argument for IORING_REGISTER_ZCRX_IFQ
|
||||
*/
|
||||
struct io_uring_zcrx_ifq_reg {
|
||||
__u32 if_idx;
|
||||
__u32 if_rxq;
|
||||
__u32 rq_entries;
|
||||
__u32 flags;
|
||||
|
||||
__u64 area_ptr; /* pointer to struct io_uring_zcrx_area_reg */
|
||||
__u64 region_ptr; /* struct io_uring_region_desc * */
|
||||
|
||||
struct io_uring_zcrx_offsets offsets;
|
||||
__u64 __resv[4];
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -55,6 +55,7 @@ enum {
|
||||
IOMMUFD_CMD_VIOMMU_ALLOC = 0x90,
|
||||
IOMMUFD_CMD_VDEVICE_ALLOC = 0x91,
|
||||
IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92,
|
||||
IOMMUFD_CMD_VEVENTQ_ALLOC = 0x93,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -392,6 +393,9 @@ struct iommu_vfio_ioas {
|
||||
* Any domain attached to the non-PASID part of the
|
||||
* device must also be flagged, otherwise attaching a
|
||||
* PASID will blocked.
|
||||
* For the user that wants to attach PASID, ioas is
|
||||
* not recommended for both the non-PASID part
|
||||
* and PASID part of the device.
|
||||
* If IOMMU does not support PASID it will return
|
||||
* error (-EOPNOTSUPP).
|
||||
*/
|
||||
@@ -608,9 +612,17 @@ enum iommu_hw_info_type {
|
||||
* IOMMU_HWPT_GET_DIRTY_BITMAP
|
||||
* IOMMU_HWPT_SET_DIRTY_TRACKING
|
||||
*
|
||||
* @IOMMU_HW_CAP_PCI_PASID_EXEC: Execute Permission Supported, user ignores it
|
||||
* when the struct
|
||||
* iommu_hw_info::out_max_pasid_log2 is zero.
|
||||
* @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it
|
||||
* when the struct
|
||||
* iommu_hw_info::out_max_pasid_log2 is zero.
|
||||
*/
|
||||
enum iommufd_hw_capabilities {
|
||||
IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0,
|
||||
IOMMU_HW_CAP_PCI_PASID_EXEC = 1 << 1,
|
||||
IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -626,6 +638,9 @@ enum iommufd_hw_capabilities {
|
||||
* iommu_hw_info_type.
|
||||
* @out_capabilities: Output the generic iommu capability info type as defined
|
||||
* in the enum iommu_hw_capabilities.
|
||||
* @out_max_pasid_log2: Output the width of PASIDs. 0 means no PASID support.
|
||||
* PCI devices turn to out_capabilities to check if the
|
||||
* specific capabilities is supported or not.
|
||||
* @__reserved: Must be 0
|
||||
*
|
||||
* Query an iommu type specific hardware information data from an iommu behind
|
||||
@@ -649,7 +664,8 @@ struct iommu_hw_info {
|
||||
__u32 data_len;
|
||||
__aligned_u64 data_uptr;
|
||||
__u32 out_data_type;
|
||||
__u32 __reserved;
|
||||
__u8 out_max_pasid_log2;
|
||||
__u8 __reserved[3];
|
||||
__aligned_u64 out_capabilities;
|
||||
};
|
||||
#define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO)
|
||||
@@ -1014,4 +1030,115 @@ struct iommu_ioas_change_process {
|
||||
#define IOMMU_IOAS_CHANGE_PROCESS \
|
||||
_IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_CHANGE_PROCESS)
|
||||
|
||||
/**
|
||||
* enum iommu_veventq_flag - flag for struct iommufd_vevent_header
|
||||
* @IOMMU_VEVENTQ_FLAG_LOST_EVENTS: vEVENTQ has lost vEVENTs
|
||||
*/
|
||||
enum iommu_veventq_flag {
|
||||
IOMMU_VEVENTQ_FLAG_LOST_EVENTS = (1U << 0),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommufd_vevent_header - Virtual Event Header for a vEVENTQ Status
|
||||
* @flags: Combination of enum iommu_veventq_flag
|
||||
* @sequence: The sequence index of a vEVENT in the vEVENTQ, with a range of
|
||||
* [0, INT_MAX] where the following index of INT_MAX is 0
|
||||
*
|
||||
* Each iommufd_vevent_header reports a sequence index of the following vEVENT:
|
||||
*
|
||||
* +----------------------+-------+----------------------+-------+---+-------+
|
||||
* | header0 {sequence=0} | data0 | header1 {sequence=1} | data1 |...| dataN |
|
||||
* +----------------------+-------+----------------------+-------+---+-------+
|
||||
*
|
||||
* And this sequence index is expected to be monotonic to the sequence index of
|
||||
* the previous vEVENT. If two adjacent sequence indexes has a delta larger than
|
||||
* 1, it means that delta - 1 number of vEVENTs has lost, e.g. two lost vEVENTs:
|
||||
*
|
||||
* +-----+----------------------+-------+----------------------+-------+-----+
|
||||
* | ... | header3 {sequence=3} | data3 | header6 {sequence=6} | data6 | ... |
|
||||
* +-----+----------------------+-------+----------------------+-------+-----+
|
||||
*
|
||||
* If a vEVENT lost at the tail of the vEVENTQ and there is no following vEVENT
|
||||
* providing the next sequence index, an IOMMU_VEVENTQ_FLAG_LOST_EVENTS header
|
||||
* would be added to the tail, and no data would follow this header:
|
||||
*
|
||||
* +--+----------------------+-------+-----------------------------------------+
|
||||
* |..| header3 {sequence=3} | data3 | header4 {flags=LOST_EVENTS, sequence=4} |
|
||||
* +--+----------------------+-------+-----------------------------------------+
|
||||
*/
|
||||
struct iommufd_vevent_header {
|
||||
__u32 flags;
|
||||
__u32 sequence;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum iommu_veventq_type - Virtual Event Queue Type
|
||||
* @IOMMU_VEVENTQ_TYPE_DEFAULT: Reserved for future use
|
||||
* @IOMMU_VEVENTQ_TYPE_ARM_SMMUV3: ARM SMMUv3 Virtual Event Queue
|
||||
*/
|
||||
enum iommu_veventq_type {
|
||||
IOMMU_VEVENTQ_TYPE_DEFAULT = 0,
|
||||
IOMMU_VEVENTQ_TYPE_ARM_SMMUV3 = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_vevent_arm_smmuv3 - ARM SMMUv3 Virtual Event
|
||||
* (IOMMU_VEVENTQ_TYPE_ARM_SMMUV3)
|
||||
* @evt: 256-bit ARM SMMUv3 Event record, little-endian.
|
||||
* Reported event records: (Refer to "7.3 Event records" in SMMUv3 HW Spec)
|
||||
* - 0x04 C_BAD_STE
|
||||
* - 0x06 F_STREAM_DISABLED
|
||||
* - 0x08 C_BAD_SUBSTREAMID
|
||||
* - 0x0a C_BAD_CD
|
||||
* - 0x10 F_TRANSLATION
|
||||
* - 0x11 F_ADDR_SIZE
|
||||
* - 0x12 F_ACCESS
|
||||
* - 0x13 F_PERMISSION
|
||||
*
|
||||
* StreamID field reports a virtual device ID. To receive a virtual event for a
|
||||
* device, a vDEVICE must be allocated via IOMMU_VDEVICE_ALLOC.
|
||||
*/
|
||||
struct iommu_vevent_arm_smmuv3 {
|
||||
__aligned_le64 evt[4];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_veventq_alloc - ioctl(IOMMU_VEVENTQ_ALLOC)
|
||||
* @size: sizeof(struct iommu_veventq_alloc)
|
||||
* @flags: Must be 0
|
||||
* @viommu_id: virtual IOMMU ID to associate the vEVENTQ with
|
||||
* @type: Type of the vEVENTQ. Must be defined in enum iommu_veventq_type
|
||||
* @veventq_depth: Maximum number of events in the vEVENTQ
|
||||
* @out_veventq_id: The ID of the new vEVENTQ
|
||||
* @out_veventq_fd: The fd of the new vEVENTQ. User space must close the
|
||||
* successfully returned fd after using it
|
||||
* @__reserved: Must be 0
|
||||
*
|
||||
* Explicitly allocate a virtual event queue interface for a vIOMMU. A vIOMMU
|
||||
* can have multiple FDs for different types, but is confined to one per @type.
|
||||
* User space should open the @out_veventq_fd to read vEVENTs out of a vEVENTQ,
|
||||
* if there are vEVENTs available. A vEVENTQ will lose events due to overflow,
|
||||
* if the number of the vEVENTs hits @veventq_depth.
|
||||
*
|
||||
* Each vEVENT in a vEVENTQ encloses a struct iommufd_vevent_header followed by
|
||||
* a type-specific data structure, in a normal case:
|
||||
*
|
||||
* +-+---------+-------+---------+-------+-----+---------+-------+-+
|
||||
* | | header0 | data0 | header1 | data1 | ... | headerN | dataN | |
|
||||
* +-+---------+-------+---------+-------+-----+---------+-------+-+
|
||||
*
|
||||
* unless a tailing IOMMU_VEVENTQ_FLAG_LOST_EVENTS header is logged (refer to
|
||||
* struct iommufd_vevent_header).
|
||||
*/
|
||||
struct iommu_veventq_alloc {
|
||||
__u32 size;
|
||||
__u32 flags;
|
||||
__u32 viommu_id;
|
||||
__u32 type;
|
||||
__u32 veventq_depth;
|
||||
__u32 out_veventq_id;
|
||||
__u32 out_veventq_fd;
|
||||
__u32 __reserved;
|
||||
};
|
||||
#define IOMMU_VEVENTQ_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VEVENTQ_ALLOC)
|
||||
#endif
|
||||
|
||||
@@ -929,6 +929,7 @@ struct kvm_enable_cap {
|
||||
#define KVM_CAP_PRE_FAULT_MEMORY 236
|
||||
#define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237
|
||||
#define KVM_CAP_X86_GUEST_MODE 238
|
||||
#define KVM_CAP_ARM_WRITABLE_IMP_ID_REGS 239
|
||||
|
||||
struct kvm_irq_routing_irqchip {
|
||||
__u32 irqchip;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*
|
||||
* Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net>
|
||||
* Copyright © 2018-2020 ANSSI
|
||||
* Copyright © 2021-2025 Microsoft Corporation
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_LANDLOCK_H
|
||||
@@ -57,9 +58,43 @@ struct landlock_ruleset_attr {
|
||||
*
|
||||
* - %LANDLOCK_CREATE_RULESET_VERSION: Get the highest supported Landlock ABI
|
||||
* version.
|
||||
* - %LANDLOCK_CREATE_RULESET_ERRATA: Get a bitmask of fixed issues.
|
||||
*/
|
||||
/* clang-format off */
|
||||
#define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
|
||||
#define LANDLOCK_CREATE_RULESET_ERRATA (1U << 1)
|
||||
/* clang-format on */
|
||||
|
||||
/*
|
||||
* sys_landlock_restrict_self() flags:
|
||||
*
|
||||
* - %LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF: Do not create any log related to the
|
||||
* enforced restrictions. This should only be set by tools launching unknown
|
||||
* or untrusted programs (e.g. a sandbox tool, container runtime, system
|
||||
* service manager). Because programs sandboxing themselves should fix any
|
||||
* denied access, they should not set this flag to be aware of potential
|
||||
* issues reported by system's logs (i.e. audit).
|
||||
* - %LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON: Explicitly ask to continue
|
||||
* logging denied access requests even after an :manpage:`execve(2)` call.
|
||||
* This flag should only be set if all the programs than can legitimately be
|
||||
* executed will not try to request a denied access (which could spam audit
|
||||
* logs).
|
||||
* - %LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF: Do not create any log related
|
||||
* to the enforced restrictions coming from future nested domains created by
|
||||
* the caller or its descendants. This should only be set according to a
|
||||
* runtime configuration (i.e. not hardcoded) by programs launching other
|
||||
* unknown or untrusted programs that may create their own Landlock domains
|
||||
* and spam logs. The main use case is for container runtimes to enable users
|
||||
* to mute buggy sandboxed programs for a specific container image. Other use
|
||||
* cases include sandboxer tools and init systems. Unlike
|
||||
* %LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF,
|
||||
* %LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF does not impact the requested
|
||||
* restriction (if any) but only the future nested domains.
|
||||
*/
|
||||
/* clang-format off */
|
||||
#define LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF (1U << 0)
|
||||
#define LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON (1U << 1)
|
||||
#define LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF (1U << 2)
|
||||
/* clang-format on */
|
||||
|
||||
/**
|
||||
|
||||
29
include/uapi/linux/lockd_netlink.h
Normal file
29
include/uapi/linux/lockd_netlink.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/* Do not edit directly, auto-generated from: */
|
||||
/* Documentation/netlink/specs/lockd.yaml */
|
||||
/* YNL-GEN uapi header */
|
||||
|
||||
#ifndef _UAPI_LINUX_LOCKD_NETLINK_H
|
||||
#define _UAPI_LINUX_LOCKD_NETLINK_H
|
||||
|
||||
#define LOCKD_FAMILY_NAME "lockd"
|
||||
#define LOCKD_FAMILY_VERSION 1
|
||||
|
||||
enum {
|
||||
LOCKD_A_SERVER_GRACETIME = 1,
|
||||
LOCKD_A_SERVER_TCP_PORT,
|
||||
LOCKD_A_SERVER_UDP_PORT,
|
||||
|
||||
__LOCKD_A_SERVER_MAX,
|
||||
LOCKD_A_SERVER_MAX = (__LOCKD_A_SERVER_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
LOCKD_CMD_SERVER_SET = 1,
|
||||
LOCKD_CMD_SERVER_GET,
|
||||
|
||||
__LOCKD_CMD_MAX,
|
||||
LOCKD_CMD_MAX = (__LOCKD_CMD_MAX - 1)
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_LOCKD_NETLINK_H */
|
||||
@@ -179,7 +179,12 @@ struct statmount {
|
||||
__u32 opt_array; /* [str] Array of nul terminated fs options */
|
||||
__u32 opt_sec_num; /* Number of security options */
|
||||
__u32 opt_sec_array; /* [str] Array of nul terminated security options */
|
||||
__u64 __spare2[46];
|
||||
__u64 supported_mask; /* Mask flags that this kernel supports */
|
||||
__u32 mnt_uidmap_num; /* Number of uid mappings */
|
||||
__u32 mnt_uidmap; /* [str] Array of uid mappings (as seen from callers namespace) */
|
||||
__u32 mnt_gidmap_num; /* Number of gid mappings */
|
||||
__u32 mnt_gidmap; /* [str] Array of gid mappings (as seen from callers namespace) */
|
||||
__u64 __spare2[43];
|
||||
char str[]; /* Variable size part containing strings */
|
||||
};
|
||||
|
||||
@@ -217,6 +222,9 @@ struct mnt_id_req {
|
||||
#define STATMOUNT_SB_SOURCE 0x00000200U /* Want/got sb_source */
|
||||
#define STATMOUNT_OPT_ARRAY 0x00000400U /* Want/got opt_... */
|
||||
#define STATMOUNT_OPT_SEC_ARRAY 0x00000800U /* Want/got opt_sec... */
|
||||
#define STATMOUNT_SUPPORTED_MASK 0x00001000U /* Want/got supported mask flags */
|
||||
#define STATMOUNT_MNT_UIDMAP 0x00002000U /* Want/got uidmap... */
|
||||
#define STATMOUNT_MNT_GIDMAP 0x00004000U /* Want/got gidmap... */
|
||||
|
||||
/*
|
||||
* Special @mnt_id values that can be passed to listmount
|
||||
|
||||
291
include/uapi/linux/mshv.h
Normal file
291
include/uapi/linux/mshv.h
Normal file
@@ -0,0 +1,291 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* Userspace interfaces for /dev/mshv* devices and derived fds
|
||||
*
|
||||
* This file is divided into sections containing data structures and IOCTLs for
|
||||
* a particular set of related devices or derived file descriptors.
|
||||
*
|
||||
* The IOCTL definitions are at the end of each section. They are grouped by
|
||||
* device/fd, so that new IOCTLs can easily be added with a monotonically
|
||||
* increasing number.
|
||||
*/
|
||||
#ifndef _UAPI_LINUX_MSHV_H
|
||||
#define _UAPI_LINUX_MSHV_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define MSHV_IOCTL 0xB8
|
||||
|
||||
/*
|
||||
*******************************************
|
||||
* Entry point to main VMM APIs: /dev/mshv *
|
||||
*******************************************
|
||||
*/
|
||||
|
||||
enum {
|
||||
MSHV_PT_BIT_LAPIC,
|
||||
MSHV_PT_BIT_X2APIC,
|
||||
MSHV_PT_BIT_GPA_SUPER_PAGES,
|
||||
MSHV_PT_BIT_COUNT,
|
||||
};
|
||||
|
||||
#define MSHV_PT_FLAGS_MASK ((1 << MSHV_PT_BIT_COUNT) - 1)
|
||||
|
||||
enum {
|
||||
MSHV_PT_ISOLATION_NONE,
|
||||
MSHV_PT_ISOLATION_COUNT,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mshv_create_partition - arguments for MSHV_CREATE_PARTITION
|
||||
* @pt_flags: Bitmask of 1 << MSHV_PT_BIT_*
|
||||
* @pt_isolation: MSHV_PT_ISOLATION_*
|
||||
*
|
||||
* Returns a file descriptor to act as a handle to a guest partition.
|
||||
* At this point the partition is not yet initialized in the hypervisor.
|
||||
* Some operations must be done with the partition in this state, e.g. setting
|
||||
* so-called "early" partition properties. The partition can then be
|
||||
* initialized with MSHV_INITIALIZE_PARTITION.
|
||||
*/
|
||||
struct mshv_create_partition {
|
||||
__u64 pt_flags;
|
||||
__u64 pt_isolation;
|
||||
};
|
||||
|
||||
/* /dev/mshv */
|
||||
#define MSHV_CREATE_PARTITION _IOW(MSHV_IOCTL, 0x00, struct mshv_create_partition)
|
||||
|
||||
/*
|
||||
************************
|
||||
* Child partition APIs *
|
||||
************************
|
||||
*/
|
||||
|
||||
struct mshv_create_vp {
|
||||
__u32 vp_index;
|
||||
};
|
||||
|
||||
enum {
|
||||
MSHV_SET_MEM_BIT_WRITABLE,
|
||||
MSHV_SET_MEM_BIT_EXECUTABLE,
|
||||
MSHV_SET_MEM_BIT_UNMAP,
|
||||
MSHV_SET_MEM_BIT_COUNT
|
||||
};
|
||||
|
||||
#define MSHV_SET_MEM_FLAGS_MASK ((1 << MSHV_SET_MEM_BIT_COUNT) - 1)
|
||||
|
||||
/* The hypervisor's "native" page size */
|
||||
#define MSHV_HV_PAGE_SIZE 0x1000
|
||||
|
||||
/**
|
||||
* struct mshv_user_mem_region - arguments for MSHV_SET_GUEST_MEMORY
|
||||
* @size: Size of the memory region (bytes). Must be aligned to
|
||||
* MSHV_HV_PAGE_SIZE
|
||||
* @guest_pfn: Base guest page number to map
|
||||
* @userspace_addr: Base address of userspace memory. Must be aligned to
|
||||
* MSHV_HV_PAGE_SIZE
|
||||
* @flags: Bitmask of 1 << MSHV_SET_MEM_BIT_*. If (1 << MSHV_SET_MEM_BIT_UNMAP)
|
||||
* is set, ignore other bits.
|
||||
* @rsvd: MBZ
|
||||
*
|
||||
* Map or unmap a region of userspace memory to Guest Physical Addresses (GPA).
|
||||
* Mappings can't overlap in GPA space or userspace.
|
||||
* To unmap, these fields must match an existing mapping.
|
||||
*/
|
||||
struct mshv_user_mem_region {
|
||||
__u64 size;
|
||||
__u64 guest_pfn;
|
||||
__u64 userspace_addr;
|
||||
__u8 flags;
|
||||
__u8 rsvd[7];
|
||||
};
|
||||
|
||||
enum {
|
||||
MSHV_IRQFD_BIT_DEASSIGN,
|
||||
MSHV_IRQFD_BIT_RESAMPLE,
|
||||
MSHV_IRQFD_BIT_COUNT,
|
||||
};
|
||||
|
||||
#define MSHV_IRQFD_FLAGS_MASK ((1 << MSHV_IRQFD_BIT_COUNT) - 1)
|
||||
|
||||
struct mshv_user_irqfd {
|
||||
__s32 fd;
|
||||
__s32 resamplefd;
|
||||
__u32 gsi;
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
enum {
|
||||
MSHV_IOEVENTFD_BIT_DATAMATCH,
|
||||
MSHV_IOEVENTFD_BIT_PIO,
|
||||
MSHV_IOEVENTFD_BIT_DEASSIGN,
|
||||
MSHV_IOEVENTFD_BIT_COUNT,
|
||||
};
|
||||
|
||||
#define MSHV_IOEVENTFD_FLAGS_MASK ((1 << MSHV_IOEVENTFD_BIT_COUNT) - 1)
|
||||
|
||||
struct mshv_user_ioeventfd {
|
||||
__u64 datamatch;
|
||||
__u64 addr; /* legal pio/mmio address */
|
||||
__u32 len; /* 1, 2, 4, or 8 bytes */
|
||||
__s32 fd;
|
||||
__u32 flags;
|
||||
__u8 rsvd[4];
|
||||
};
|
||||
|
||||
struct mshv_user_irq_entry {
|
||||
__u32 gsi;
|
||||
__u32 address_lo;
|
||||
__u32 address_hi;
|
||||
__u32 data;
|
||||
};
|
||||
|
||||
struct mshv_user_irq_table {
|
||||
__u32 nr;
|
||||
__u32 rsvd; /* MBZ */
|
||||
struct mshv_user_irq_entry entries[];
|
||||
};
|
||||
|
||||
enum {
|
||||
MSHV_GPAP_ACCESS_TYPE_ACCESSED,
|
||||
MSHV_GPAP_ACCESS_TYPE_DIRTY,
|
||||
MSHV_GPAP_ACCESS_TYPE_COUNT /* Count of enum members */
|
||||
};
|
||||
|
||||
enum {
|
||||
MSHV_GPAP_ACCESS_OP_NOOP,
|
||||
MSHV_GPAP_ACCESS_OP_CLEAR,
|
||||
MSHV_GPAP_ACCESS_OP_SET,
|
||||
MSHV_GPAP_ACCESS_OP_COUNT /* Count of enum members */
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mshv_gpap_access_bitmap - arguments for MSHV_GET_GPAP_ACCESS_BITMAP
|
||||
* @access_type: MSHV_GPAP_ACCESS_TYPE_* - The type of access to record in the
|
||||
* bitmap
|
||||
* @access_op: MSHV_GPAP_ACCESS_OP_* - Allows an optional clear or set of all
|
||||
* the access states in the range, after retrieving the current
|
||||
* states.
|
||||
* @rsvd: MBZ
|
||||
* @page_count: Number of pages
|
||||
* @gpap_base: Base gpa page number
|
||||
* @bitmap_ptr: Output buffer for bitmap, at least (page_count + 7) / 8 bytes
|
||||
*
|
||||
* Retrieve a bitmap of either ACCESSED or DIRTY bits for a given range of guest
|
||||
* memory, and optionally clear or set the bits.
|
||||
*/
|
||||
struct mshv_gpap_access_bitmap {
|
||||
__u8 access_type;
|
||||
__u8 access_op;
|
||||
__u8 rsvd[6];
|
||||
__u64 page_count;
|
||||
__u64 gpap_base;
|
||||
__u64 bitmap_ptr;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mshv_root_hvcall - arguments for MSHV_ROOT_HVCALL
|
||||
* @code: Hypercall code (HVCALL_*)
|
||||
* @reps: in: Rep count ('repcount')
|
||||
* out: Reps completed ('repcomp'). MBZ unless rep hvcall
|
||||
* @in_sz: Size of input incl rep data. <= MSHV_HV_PAGE_SIZE
|
||||
* @out_sz: Size of output buffer. <= MSHV_HV_PAGE_SIZE. MBZ if out_ptr is 0
|
||||
* @status: in: MBZ
|
||||
* out: HV_STATUS_* from hypercall
|
||||
* @rsvd: MBZ
|
||||
* @in_ptr: Input data buffer (struct hv_input_*). If used with partition or
|
||||
* vp fd, partition id field is populated by kernel.
|
||||
* @out_ptr: Output data buffer (optional)
|
||||
*/
|
||||
struct mshv_root_hvcall {
|
||||
__u16 code;
|
||||
__u16 reps;
|
||||
__u16 in_sz;
|
||||
__u16 out_sz;
|
||||
__u16 status;
|
||||
__u8 rsvd[6];
|
||||
__u64 in_ptr;
|
||||
__u64 out_ptr;
|
||||
};
|
||||
|
||||
/* Partition fds created with MSHV_CREATE_PARTITION */
|
||||
#define MSHV_INITIALIZE_PARTITION _IO(MSHV_IOCTL, 0x00)
|
||||
#define MSHV_CREATE_VP _IOW(MSHV_IOCTL, 0x01, struct mshv_create_vp)
|
||||
#define MSHV_SET_GUEST_MEMORY _IOW(MSHV_IOCTL, 0x02, struct mshv_user_mem_region)
|
||||
#define MSHV_IRQFD _IOW(MSHV_IOCTL, 0x03, struct mshv_user_irqfd)
|
||||
#define MSHV_IOEVENTFD _IOW(MSHV_IOCTL, 0x04, struct mshv_user_ioeventfd)
|
||||
#define MSHV_SET_MSI_ROUTING _IOW(MSHV_IOCTL, 0x05, struct mshv_user_irq_table)
|
||||
#define MSHV_GET_GPAP_ACCESS_BITMAP _IOWR(MSHV_IOCTL, 0x06, struct mshv_gpap_access_bitmap)
|
||||
/* Generic hypercall */
|
||||
#define MSHV_ROOT_HVCALL _IOWR(MSHV_IOCTL, 0x07, struct mshv_root_hvcall)
|
||||
|
||||
/*
|
||||
********************************
|
||||
* VP APIs for child partitions *
|
||||
********************************
|
||||
*/
|
||||
|
||||
#define MSHV_RUN_VP_BUF_SZ 256
|
||||
|
||||
/*
|
||||
* VP state pages may be mapped to userspace via mmap().
|
||||
* To specify which state page, use MSHV_VP_MMAP_OFFSET_ values multiplied by
|
||||
* the system page size.
|
||||
* e.g.
|
||||
* long page_size = sysconf(_SC_PAGE_SIZE);
|
||||
* void *reg_page = mmap(NULL, MSHV_HV_PAGE_SIZE, PROT_READ|PROT_WRITE,
|
||||
* MAP_SHARED, vp_fd,
|
||||
* MSHV_VP_MMAP_OFFSET_REGISTERS * page_size);
|
||||
*/
|
||||
enum {
|
||||
MSHV_VP_MMAP_OFFSET_REGISTERS,
|
||||
MSHV_VP_MMAP_OFFSET_INTERCEPT_MESSAGE,
|
||||
MSHV_VP_MMAP_OFFSET_GHCB,
|
||||
MSHV_VP_MMAP_OFFSET_COUNT
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mshv_run_vp - argument for MSHV_RUN_VP
|
||||
* @msg_buf: On success, the intercept message is copied here. It can be
|
||||
* interpreted using the relevant hypervisor definitions.
|
||||
*/
|
||||
struct mshv_run_vp {
|
||||
__u8 msg_buf[MSHV_RUN_VP_BUF_SZ];
|
||||
};
|
||||
|
||||
enum {
|
||||
MSHV_VP_STATE_LAPIC, /* Local interrupt controller state (either arch) */
|
||||
MSHV_VP_STATE_XSAVE, /* XSAVE data in compacted form (x86_64) */
|
||||
MSHV_VP_STATE_SIMP,
|
||||
MSHV_VP_STATE_SIEFP,
|
||||
MSHV_VP_STATE_SYNTHETIC_TIMERS,
|
||||
MSHV_VP_STATE_COUNT,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mshv_get_set_vp_state - arguments for MSHV_[GET,SET]_VP_STATE
|
||||
* @type: MSHV_VP_STATE_*
|
||||
* @rsvd: MBZ
|
||||
* @buf_sz: in: 4k page-aligned size of buffer
|
||||
* out: Actual size of data (on EINVAL, check this to see if buffer
|
||||
* was too small)
|
||||
* @buf_ptr: 4k page-aligned data buffer
|
||||
*/
|
||||
struct mshv_get_set_vp_state {
|
||||
__u8 type;
|
||||
__u8 rsvd[3];
|
||||
__u32 buf_sz;
|
||||
__u64 buf_ptr;
|
||||
};
|
||||
|
||||
/* VP fds created with MSHV_CREATE_VP */
|
||||
#define MSHV_RUN_VP _IOR(MSHV_IOCTL, 0x00, struct mshv_run_vp)
|
||||
#define MSHV_GET_VP_STATE _IOWR(MSHV_IOCTL, 0x01, struct mshv_get_set_vp_state)
|
||||
#define MSHV_SET_VP_STATE _IOWR(MSHV_IOCTL, 0x02, struct mshv_get_set_vp_state)
|
||||
/*
|
||||
* Generic hypercall
|
||||
* Defined above in partition IOCTLs, avoid redefining it here
|
||||
* #define MSHV_ROOT_HVCALL _IOWR(MSHV_IOCTL, 0x07, struct mshv_root_hvcall)
|
||||
*/
|
||||
|
||||
#endif
|
||||
@@ -44,8 +44,9 @@ enum {
|
||||
SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
|
||||
SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16),
|
||||
SOF_TIMESTAMPING_OPT_RX_FILTER = (1 << 17),
|
||||
SOF_TIMESTAMPING_TX_COMPLETION = (1 << 18),
|
||||
|
||||
SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_RX_FILTER,
|
||||
SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_TX_COMPLETION,
|
||||
SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
|
||||
SOF_TIMESTAMPING_LAST
|
||||
};
|
||||
@@ -58,7 +59,8 @@ enum {
|
||||
#define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE | \
|
||||
SOF_TIMESTAMPING_TX_SCHED | \
|
||||
SOF_TIMESTAMPING_TX_ACK)
|
||||
SOF_TIMESTAMPING_TX_ACK | \
|
||||
SOF_TIMESTAMPING_TX_COMPLETION)
|
||||
|
||||
/**
|
||||
* struct so_timestamping - SO_TIMESTAMPING parameter
|
||||
|
||||
@@ -59,10 +59,13 @@ enum netdev_xdp_rx_metadata {
|
||||
* by the driver.
|
||||
* @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the
|
||||
* driver.
|
||||
* @NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO: Launch time HW offload is supported
|
||||
* by the driver.
|
||||
*/
|
||||
enum netdev_xsk_flags {
|
||||
NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
|
||||
NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
|
||||
NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO = 4,
|
||||
};
|
||||
|
||||
enum netdev_queue_type {
|
||||
@@ -86,6 +89,11 @@ enum {
|
||||
NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
__NETDEV_A_IO_URING_PROVIDER_INFO_MAX,
|
||||
NETDEV_A_IO_URING_PROVIDER_INFO_MAX = (__NETDEV_A_IO_URING_PROVIDER_INFO_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
NETDEV_A_PAGE_POOL_ID = 1,
|
||||
NETDEV_A_PAGE_POOL_IFINDEX,
|
||||
@@ -94,6 +102,7 @@ enum {
|
||||
NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
|
||||
NETDEV_A_PAGE_POOL_DETACH_TIME,
|
||||
NETDEV_A_PAGE_POOL_DMABUF,
|
||||
NETDEV_A_PAGE_POOL_IO_URING,
|
||||
|
||||
__NETDEV_A_PAGE_POOL_MAX,
|
||||
NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
|
||||
@@ -130,12 +139,19 @@ enum {
|
||||
NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
__NETDEV_A_XSK_INFO_MAX,
|
||||
NETDEV_A_XSK_INFO_MAX = (__NETDEV_A_XSK_INFO_MAX - 1)
|
||||
};
|
||||
|
||||
enum {
|
||||
NETDEV_A_QUEUE_ID = 1,
|
||||
NETDEV_A_QUEUE_IFINDEX,
|
||||
NETDEV_A_QUEUE_TYPE,
|
||||
NETDEV_A_QUEUE_NAPI_ID,
|
||||
NETDEV_A_QUEUE_DMABUF,
|
||||
NETDEV_A_QUEUE_IO_URING,
|
||||
NETDEV_A_QUEUE_XSK,
|
||||
|
||||
__NETDEV_A_QUEUE_MAX,
|
||||
NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
|
||||
|
||||
@@ -188,7 +188,8 @@ struct nilfs_super_block {
|
||||
__le16 s_segment_usage_size; /* Size of a segment usage */
|
||||
|
||||
/*98*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */
|
||||
/*A8*/ char s_volume_name[80]; /* volume name */
|
||||
/*A8*/ char s_volume_name[80] /* volume name */
|
||||
__kernel_nonstring;
|
||||
|
||||
/*F8*/ __le32 s_c_interval; /* Commit interval of segment */
|
||||
__le32 s_c_block_max; /*
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
|
||||
* Copyright 2008 Colin McCabe <colin@cozybit.com>
|
||||
* Copyright 2015-2017 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2018-2025 Intel Corporation
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -2881,9 +2881,9 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32).
|
||||
* A value of 0 means all radios.
|
||||
*
|
||||
* @NL80211_ATTR_SUPPORTED_SELECTORS: supported selectors, array of
|
||||
* supported selectors as defined by IEEE 802.11 7.3.2.2 but without the
|
||||
* length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
|
||||
* @NL80211_ATTR_SUPPORTED_SELECTORS: supported BSS Membership Selectors, array
|
||||
* of supported selectors as defined by IEEE Std 802.11-2020 9.4.2.3 but
|
||||
* without the length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
|
||||
* This can be used to provide a list of selectors that are implemented
|
||||
* by the supplicant. If not given, support for SAE_H2E is assumed.
|
||||
*
|
||||
@@ -2893,6 +2893,12 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a
|
||||
* station interface.
|
||||
*
|
||||
* @NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS: Extended MLD capabilities and
|
||||
* operations that userspace implements to use during association/ML
|
||||
* link reconfig, currently only "BTM MLD Recommendation For Multiple
|
||||
* APs Support". Drivers may set additional flags that they support
|
||||
* in the kernel or device.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@@ -3448,6 +3454,8 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_MLO_RECONF_REM_LINKS,
|
||||
NL80211_ATTR_EPCS,
|
||||
|
||||
NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@@ -4327,6 +4335,8 @@ enum nl80211_wmm_rule {
|
||||
* otherwise completely disabled.
|
||||
* @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a
|
||||
* very low power (VLP) AP, despite being NO_IR.
|
||||
* @NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY: This channel can be active in
|
||||
* 20 MHz bandwidth, despite being NO_IR.
|
||||
* @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
|
||||
* currently defined
|
||||
* @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
|
||||
@@ -4371,6 +4381,7 @@ enum nl80211_frequency_attr {
|
||||
NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,
|
||||
NL80211_FREQUENCY_ATTR_CAN_MONITOR,
|
||||
NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
|
||||
NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_FREQUENCY_ATTR_AFTER_LAST,
|
||||
@@ -4582,31 +4593,34 @@ enum nl80211_sched_scan_match_attr {
|
||||
* @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed
|
||||
* @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted
|
||||
* despite NO_IR configuration.
|
||||
* @NL80211_RRF_ALLOW_20MHZ_ACTIVITY: Allow activity in 20 MHz bandwidth,
|
||||
* despite NO_IR configuration.
|
||||
*/
|
||||
enum nl80211_reg_rule_flags {
|
||||
NL80211_RRF_NO_OFDM = 1<<0,
|
||||
NL80211_RRF_NO_CCK = 1<<1,
|
||||
NL80211_RRF_NO_INDOOR = 1<<2,
|
||||
NL80211_RRF_NO_OUTDOOR = 1<<3,
|
||||
NL80211_RRF_DFS = 1<<4,
|
||||
NL80211_RRF_PTP_ONLY = 1<<5,
|
||||
NL80211_RRF_PTMP_ONLY = 1<<6,
|
||||
NL80211_RRF_NO_IR = 1<<7,
|
||||
__NL80211_RRF_NO_IBSS = 1<<8,
|
||||
NL80211_RRF_AUTO_BW = 1<<11,
|
||||
NL80211_RRF_IR_CONCURRENT = 1<<12,
|
||||
NL80211_RRF_NO_HT40MINUS = 1<<13,
|
||||
NL80211_RRF_NO_HT40PLUS = 1<<14,
|
||||
NL80211_RRF_NO_80MHZ = 1<<15,
|
||||
NL80211_RRF_NO_160MHZ = 1<<16,
|
||||
NL80211_RRF_NO_HE = 1<<17,
|
||||
NL80211_RRF_NO_320MHZ = 1<<18,
|
||||
NL80211_RRF_NO_EHT = 1<<19,
|
||||
NL80211_RRF_PSD = 1<<20,
|
||||
NL80211_RRF_DFS_CONCURRENT = 1<<21,
|
||||
NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1<<22,
|
||||
NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1<<23,
|
||||
NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1<<24,
|
||||
NL80211_RRF_NO_OFDM = 1 << 0,
|
||||
NL80211_RRF_NO_CCK = 1 << 1,
|
||||
NL80211_RRF_NO_INDOOR = 1 << 2,
|
||||
NL80211_RRF_NO_OUTDOOR = 1 << 3,
|
||||
NL80211_RRF_DFS = 1 << 4,
|
||||
NL80211_RRF_PTP_ONLY = 1 << 5,
|
||||
NL80211_RRF_PTMP_ONLY = 1 << 6,
|
||||
NL80211_RRF_NO_IR = 1 << 7,
|
||||
__NL80211_RRF_NO_IBSS = 1 << 8,
|
||||
NL80211_RRF_AUTO_BW = 1 << 11,
|
||||
NL80211_RRF_IR_CONCURRENT = 1 << 12,
|
||||
NL80211_RRF_NO_HT40MINUS = 1 << 13,
|
||||
NL80211_RRF_NO_HT40PLUS = 1 << 14,
|
||||
NL80211_RRF_NO_80MHZ = 1 << 15,
|
||||
NL80211_RRF_NO_160MHZ = 1 << 16,
|
||||
NL80211_RRF_NO_HE = 1 << 17,
|
||||
NL80211_RRF_NO_320MHZ = 1 << 18,
|
||||
NL80211_RRF_NO_EHT = 1 << 19,
|
||||
NL80211_RRF_PSD = 1 << 20,
|
||||
NL80211_RRF_DFS_CONCURRENT = 1 << 21,
|
||||
NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22,
|
||||
NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23,
|
||||
NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24,
|
||||
NL80211_RRF_ALLOW_20MHZ_ACTIVITY = 1 << 25,
|
||||
};
|
||||
|
||||
#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
|
||||
@@ -4727,8 +4741,8 @@ enum nl80211_survey_info {
|
||||
* @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
|
||||
* @NL80211_MNTR_FLAG_CONTROL: pass control frames
|
||||
* @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
|
||||
* @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
|
||||
* overrides all other flags.
|
||||
* @NL80211_MNTR_FLAG_COOK_FRAMES: deprecated
|
||||
* will unconditionally be refused
|
||||
* @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address
|
||||
* and ACK incoming unicast packets.
|
||||
* @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets
|
||||
|
||||
@@ -486,6 +486,7 @@
|
||||
#define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */
|
||||
#define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */
|
||||
#define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */
|
||||
#define PCI_EXP_FLAGS_FLIT 0x8000 /* Flit Mode Supported */
|
||||
#define PCI_EXP_DEVCAP 0x04 /* Device capabilities */
|
||||
#define PCI_EXP_DEVCAP_PAYLOAD 0x00000007 /* Max_Payload_Size */
|
||||
#define PCI_EXP_DEVCAP_PHANTOM 0x00000018 /* Phantom functions */
|
||||
@@ -795,6 +796,8 @@
|
||||
#define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */
|
||||
#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
|
||||
#define PCI_ERR_CAP_PREFIX_LOG_PRESENT 0x00000800 /* TLP Prefix Log Present */
|
||||
#define PCI_ERR_CAP_TLP_LOG_FLIT 0x00040000 /* TLP was logged in Flit Mode */
|
||||
#define PCI_ERR_CAP_TLP_LOG_SIZE 0x00f80000 /* Logged TLP Size (only in Flit mode) */
|
||||
#define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */
|
||||
#define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */
|
||||
#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */
|
||||
@@ -1013,7 +1016,7 @@
|
||||
|
||||
/* Resizable BARs */
|
||||
#define PCI_REBAR_CAP 4 /* capability register */
|
||||
#define PCI_REBAR_CAP_SIZES 0x00FFFFF0 /* supported BAR sizes */
|
||||
#define PCI_REBAR_CAP_SIZES 0xFFFFFFF0 /* supported BAR sizes */
|
||||
#define PCI_REBAR_CTRL 8 /* control register */
|
||||
#define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */
|
||||
#define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */
|
||||
@@ -1061,8 +1064,9 @@
|
||||
#define PCI_EXP_DPC_CAP_RP_EXT 0x0020 /* Root Port Extensions */
|
||||
#define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040 /* Poisoned TLP Egress Blocking Supported */
|
||||
#define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080 /* Software Triggering Supported */
|
||||
#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size */
|
||||
#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size [3:0] */
|
||||
#define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */
|
||||
#define PCI_EXP_DPC_RP_PIO_LOG_SIZE4 0x2000 /* RP PIO Log Size [4] */
|
||||
|
||||
#define PCI_EXP_DPC_CTL 0x06 /* DPC control */
|
||||
#define PCI_EXP_DPC_CTL_EN_FATAL 0x0001 /* Enable trigger on ERR_FATAL message */
|
||||
@@ -1205,9 +1209,12 @@
|
||||
#define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff
|
||||
#define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00
|
||||
#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff
|
||||
#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL 0x00ff0000
|
||||
#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE 0x00ff0000
|
||||
#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_NEXT_INDEX 0xff000000
|
||||
|
||||
/* Deprecated old name, replaced with PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE */
|
||||
#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE
|
||||
|
||||
/* Compute Express Link (CXL r3.1, sec 8.1.5) */
|
||||
#define PCI_DVSEC_CXL_PORT 3
|
||||
#define PCI_DVSEC_CXL_PORT_CTL 0x0c
|
||||
|
||||
@@ -23,6 +23,12 @@
|
||||
#define PCITEST_BARS _IO('P', 0xa)
|
||||
#define PCITEST_CLEAR_IRQ _IO('P', 0x10)
|
||||
|
||||
#define PCITEST_IRQ_TYPE_UNDEFINED -1
|
||||
#define PCITEST_IRQ_TYPE_INTX 0
|
||||
#define PCITEST_IRQ_TYPE_MSI 1
|
||||
#define PCITEST_IRQ_TYPE_MSIX 2
|
||||
#define PCITEST_IRQ_TYPE_AUTO 3
|
||||
|
||||
#define PCITEST_FLAGS_USE_DMA 0x00000001
|
||||
|
||||
struct pci_endpoint_test_xfer_param {
|
||||
|
||||
@@ -385,6 +385,8 @@ enum perf_event_read_format {
|
||||
*
|
||||
* @sample_max_stack: Max number of frame pointers in a callchain,
|
||||
* should be < /proc/sys/kernel/perf_event_max_stack
|
||||
* Max number of entries of branch stack
|
||||
* should be < hardware limit
|
||||
*/
|
||||
struct perf_event_attr {
|
||||
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
/* Flags for pidfd_open(). */
|
||||
#define PIDFD_NONBLOCK O_NONBLOCK
|
||||
#define PIDFD_THREAD O_EXCL
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/sched.h>
|
||||
#define PIDFD_CLONE CLONE_PIDFD
|
||||
#endif
|
||||
|
||||
/* Flags for pidfd_send_signal(). */
|
||||
#define PIDFD_SIGNAL_THREAD (1UL << 0)
|
||||
@@ -20,9 +24,34 @@
|
||||
#define PIDFD_INFO_PID (1UL << 0) /* Always returned, even if not requested */
|
||||
#define PIDFD_INFO_CREDS (1UL << 1) /* Always returned, even if not requested */
|
||||
#define PIDFD_INFO_CGROUPID (1UL << 2) /* Always returned if available, even if not requested */
|
||||
#define PIDFD_INFO_EXIT (1UL << 3) /* Only returned if requested. */
|
||||
|
||||
#define PIDFD_INFO_SIZE_VER0 64 /* sizeof first published struct */
|
||||
|
||||
/*
|
||||
* The concept of process and threads in userland and the kernel is a confusing
|
||||
* one - within the kernel every thread is a 'task' with its own individual PID,
|
||||
* however from userland's point of view threads are grouped by a single PID,
|
||||
* which is that of the 'thread group leader', typically the first thread
|
||||
* spawned.
|
||||
*
|
||||
* To cut the Gideon knot, for internal kernel usage, we refer to
|
||||
* PIDFD_SELF_THREAD to refer to the current thread (or task from a kernel
|
||||
* perspective), and PIDFD_SELF_THREAD_GROUP to refer to the current thread
|
||||
* group leader...
|
||||
*/
|
||||
#define PIDFD_SELF_THREAD -10000 /* Current thread. */
|
||||
#define PIDFD_SELF_THREAD_GROUP -20000 /* Current thread group leader. */
|
||||
|
||||
/*
|
||||
* ...and for userland we make life simpler - PIDFD_SELF refers to the current
|
||||
* thread, PIDFD_SELF_PROCESS refers to the process thread group leader.
|
||||
*
|
||||
* For nearly all practical uses, a user will want to use PIDFD_SELF.
|
||||
*/
|
||||
#define PIDFD_SELF PIDFD_SELF_THREAD
|
||||
#define PIDFD_SELF_PROCESS PIDFD_SELF_THREAD_GROUP
|
||||
|
||||
struct pidfd_info {
|
||||
/*
|
||||
* This mask is similar to the request_mask in statx(2).
|
||||
@@ -62,7 +91,7 @@ struct pidfd_info {
|
||||
__u32 sgid;
|
||||
__u32 fsuid;
|
||||
__u32 fsgid;
|
||||
__u32 spare0[1];
|
||||
__s32 exit_code;
|
||||
};
|
||||
|
||||
#define PIDFS_IOCTL_MAGIC 0xFF
|
||||
|
||||
@@ -353,4 +353,15 @@ struct prctl_mm_map {
|
||||
*/
|
||||
#define PR_LOCK_SHADOW_STACK_STATUS 76
|
||||
|
||||
/*
|
||||
* Controls the mode of timer_create() for CRIU restore operations.
|
||||
* Enabling this allows CRIU to restore timers with explicit IDs.
|
||||
*
|
||||
* Don't use for normal operations as the result might be undefined.
|
||||
*/
|
||||
#define PR_TIMER_CREATE_RESTORE_IDS 77
|
||||
# define PR_TIMER_CREATE_RESTORE_IDS_OFF 0
|
||||
# define PR_TIMER_CREATE_RESTORE_IDS_ON 1
|
||||
# define PR_TIMER_CREATE_RESTORE_IDS_GET 2
|
||||
|
||||
#endif /* _LINUX_PRCTL_H */
|
||||
|
||||
@@ -73,13 +73,20 @@ typedef enum {
|
||||
SEV_RET_INVALID_PARAM,
|
||||
SEV_RET_RESOURCE_LIMIT,
|
||||
SEV_RET_SECURE_DATA_INVALID,
|
||||
SEV_RET_INVALID_KEY = 0x27,
|
||||
SEV_RET_INVALID_PAGE_SIZE,
|
||||
SEV_RET_INVALID_PAGE_STATE,
|
||||
SEV_RET_INVALID_MDATA_ENTRY,
|
||||
SEV_RET_INVALID_PAGE_OWNER,
|
||||
SEV_RET_INVALID_PAGE_AEAD_OFLOW,
|
||||
SEV_RET_RMP_INIT_REQUIRED,
|
||||
SEV_RET_INVALID_PAGE_SIZE = 0x0019,
|
||||
SEV_RET_INVALID_PAGE_STATE = 0x001A,
|
||||
SEV_RET_INVALID_MDATA_ENTRY = 0x001B,
|
||||
SEV_RET_INVALID_PAGE_OWNER = 0x001C,
|
||||
SEV_RET_AEAD_OFLOW = 0x001D,
|
||||
SEV_RET_EXIT_RING_BUFFER = 0x001F,
|
||||
SEV_RET_RMP_INIT_REQUIRED = 0x0020,
|
||||
SEV_RET_BAD_SVN = 0x0021,
|
||||
SEV_RET_BAD_VERSION = 0x0022,
|
||||
SEV_RET_SHUTDOWN_REQUIRED = 0x0023,
|
||||
SEV_RET_UPDATE_FAILED = 0x0024,
|
||||
SEV_RET_RESTORE_REQUIRED = 0x0025,
|
||||
SEV_RET_RMP_INITIALIZATION_FAILED = 0x0026,
|
||||
SEV_RET_INVALID_KEY = 0x0027,
|
||||
SEV_RET_MAX,
|
||||
} sev_ret_code;
|
||||
|
||||
|
||||
@@ -1528,7 +1528,7 @@ enum rksip1_ext_param_buffer_version {
|
||||
* The expected memory layout of the parameters buffer is::
|
||||
*
|
||||
* +-------------------- struct rkisp1_ext_params_cfg -------------------+
|
||||
* | version = RKISP_EXT_PARAMS_BUFFER_V1; |
|
||||
* | version = RKISP1_EXT_PARAM_BUFFER_V1; |
|
||||
* | data_size = sizeof(struct rkisp1_ext_params_bls_config) |
|
||||
* | + sizeof(struct rkisp1_ext_params_dpcc_config); |
|
||||
* | +------------------------- data ---------------------------------+ |
|
||||
|
||||
@@ -307,6 +307,7 @@ enum {
|
||||
#define RTPROT_MROUTED 17 /* Multicast daemon */
|
||||
#define RTPROT_KEEPALIVED 18 /* Keepalived daemon */
|
||||
#define RTPROT_BABEL 42 /* Babel daemon */
|
||||
#define RTPROT_OVN 84 /* OVN daemon */
|
||||
#define RTPROT_OPENR 99 /* Open Routing (Open/R) Routes */
|
||||
#define RTPROT_BGP 186 /* BGP Routes */
|
||||
#define RTPROT_ISIS 187 /* ISIS Routes */
|
||||
|
||||
@@ -23,9 +23,14 @@ enum
|
||||
IPSTATS_MIB_INPKTS, /* InReceives */
|
||||
IPSTATS_MIB_INOCTETS, /* InOctets */
|
||||
IPSTATS_MIB_INDELIVERS, /* InDelivers */
|
||||
IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */
|
||||
IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */
|
||||
IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
|
||||
IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
|
||||
IPSTATS_MIB_CEPKTS, /* InCEPkts */
|
||||
IPSTATS_MIB_OUTREQUESTS, /* OutRequests */
|
||||
IPSTATS_MIB_OUTPKTS, /* OutTransmits */
|
||||
IPSTATS_MIB_OUTOCTETS, /* OutOctets */
|
||||
IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */
|
||||
/* other fields */
|
||||
IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */
|
||||
IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */
|
||||
@@ -52,12 +57,7 @@ enum
|
||||
IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */
|
||||
IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */
|
||||
IPSTATS_MIB_CSUMERRORS, /* InCsumErrors */
|
||||
IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */
|
||||
IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
|
||||
IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
|
||||
IPSTATS_MIB_CEPKTS, /* InCEPkts */
|
||||
IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */
|
||||
IPSTATS_MIB_OUTPKTS, /* OutTransmits */
|
||||
__IPSTATS_MIB_MAX
|
||||
};
|
||||
|
||||
@@ -186,6 +186,7 @@ enum
|
||||
LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
|
||||
LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
|
||||
LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
|
||||
LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */
|
||||
LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */
|
||||
LINUX_MIB_DELAYEDACKS, /* DelayedACKs */
|
||||
LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */
|
||||
|
||||
@@ -70,4 +70,10 @@
|
||||
#define __counted_by_be(m)
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __kernel_nonstring __nonstring
|
||||
#else
|
||||
#define __kernel_nonstring
|
||||
#endif
|
||||
|
||||
#endif /* _UAPI_LINUX_STDDEF_H */
|
||||
|
||||
@@ -28,7 +28,8 @@ struct tcphdr {
|
||||
__be32 seq;
|
||||
__be32 ack_seq;
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
__u16 res1:4,
|
||||
__u16 ae:1,
|
||||
res1:3,
|
||||
doff:4,
|
||||
fin:1,
|
||||
syn:1,
|
||||
@@ -40,7 +41,8 @@ struct tcphdr {
|
||||
cwr:1;
|
||||
#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
__u16 doff:4,
|
||||
res1:4,
|
||||
res1:3,
|
||||
ae:1,
|
||||
cwr:1,
|
||||
ece:1,
|
||||
urg:1,
|
||||
@@ -70,6 +72,7 @@ union tcp_word_hdr {
|
||||
#define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])
|
||||
|
||||
enum {
|
||||
TCP_FLAG_AE = __constant_cpu_to_be32(0x01000000),
|
||||
TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
|
||||
TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
|
||||
TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
|
||||
@@ -78,7 +81,7 @@ enum {
|
||||
TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
|
||||
TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
|
||||
TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
|
||||
TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
|
||||
TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0E000000),
|
||||
TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
|
||||
};
|
||||
|
||||
@@ -136,6 +139,9 @@ enum {
|
||||
#define TCP_AO_REPAIR 42 /* Get/Set SNEs and ISNs */
|
||||
|
||||
#define TCP_IS_MPTCP 43 /* Is MPTCP being used? */
|
||||
#define TCP_RTO_MAX_MS 44 /* max rto time in ms */
|
||||
#define TCP_RTO_MIN_US 45 /* min rto time in us */
|
||||
#define TCP_DELACK_MAX_US 46 /* max delayed ack time in us */
|
||||
|
||||
#define TCP_REPAIR_ON 1
|
||||
#define TCP_REPAIR_OFF 0
|
||||
|
||||
@@ -94,6 +94,10 @@
|
||||
_IOWR('u', UBLK_IO_COMMIT_AND_FETCH_REQ, struct ublksrv_io_cmd)
|
||||
#define UBLK_U_IO_NEED_GET_DATA \
|
||||
_IOWR('u', UBLK_IO_NEED_GET_DATA, struct ublksrv_io_cmd)
|
||||
#define UBLK_U_IO_REGISTER_IO_BUF \
|
||||
_IOWR('u', 0x23, struct ublksrv_io_cmd)
|
||||
#define UBLK_U_IO_UNREGISTER_IO_BUF \
|
||||
_IOWR('u', 0x24, struct ublksrv_io_cmd)
|
||||
|
||||
/* only ABORT means that no re-fetch */
|
||||
#define UBLK_IO_RES_OK 0
|
||||
@@ -401,6 +405,34 @@ struct ublk_param_zoned {
|
||||
__u8 reserved[20];
|
||||
};
|
||||
|
||||
struct ublk_param_dma_align {
|
||||
__u32 alignment;
|
||||
__u8 pad[4];
|
||||
};
|
||||
|
||||
#define UBLK_MIN_SEGMENT_SIZE 4096
|
||||
/*
|
||||
* If any one of the three segment parameter is set as 0, the behavior is
|
||||
* undefined.
|
||||
*/
|
||||
struct ublk_param_segment {
|
||||
/*
|
||||
* seg_boundary_mask + 1 needs to be power_of_2(), and the sum has
|
||||
* to be >= UBLK_MIN_SEGMENT_SIZE(4096)
|
||||
*/
|
||||
__u64 seg_boundary_mask;
|
||||
|
||||
/*
|
||||
* max_segment_size could be override by virt_boundary_mask, so be
|
||||
* careful when setting both.
|
||||
*
|
||||
* max_segment_size has to be >= UBLK_MIN_SEGMENT_SIZE(4096)
|
||||
*/
|
||||
__u32 max_segment_size;
|
||||
__u16 max_segments;
|
||||
__u8 pad[2];
|
||||
};
|
||||
|
||||
struct ublk_params {
|
||||
/*
|
||||
* Total length of parameters, userspace has to set 'len' for both
|
||||
@@ -413,12 +445,16 @@ struct ublk_params {
|
||||
#define UBLK_PARAM_TYPE_DISCARD (1 << 1)
|
||||
#define UBLK_PARAM_TYPE_DEVT (1 << 2)
|
||||
#define UBLK_PARAM_TYPE_ZONED (1 << 3)
|
||||
#define UBLK_PARAM_TYPE_DMA_ALIGN (1 << 4)
|
||||
#define UBLK_PARAM_TYPE_SEGMENT (1 << 5)
|
||||
__u32 types; /* types of parameter included */
|
||||
|
||||
struct ublk_param_basic basic;
|
||||
struct ublk_param_discard discard;
|
||||
struct ublk_param_devt devt;
|
||||
struct ublk_param_zoned zoned;
|
||||
struct ublk_param_dma_align dma;
|
||||
struct ublk_param_segment seg;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -253,6 +253,9 @@ struct usb_ctrlrequest {
|
||||
#define USB_DT_BOS 0x0f
|
||||
#define USB_DT_DEVICE_CAPABILITY 0x10
|
||||
#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11
|
||||
/* From the eUSB2 spec */
|
||||
#define USB_DT_EUSB2_ISOC_ENDPOINT_COMP 0x12
|
||||
/* From Wireless USB spec */
|
||||
#define USB_DT_WIRE_ADAPTER 0x21
|
||||
/* From USB Device Firmware Upgrade Specification, Revision 1.1 */
|
||||
#define USB_DT_DFU_FUNCTIONAL 0x21
|
||||
@@ -330,6 +333,7 @@ struct usb_device_descriptor {
|
||||
#define USB_CLASS_AUDIO_VIDEO 0x10
|
||||
#define USB_CLASS_BILLBOARD 0x11
|
||||
#define USB_CLASS_USB_TYPE_C_BRIDGE 0x12
|
||||
#define USB_CLASS_MCTP 0x14
|
||||
#define USB_CLASS_MISC 0xef
|
||||
#define USB_CLASS_APP_SPEC 0xfe
|
||||
#define USB_SUBCLASS_DFU 0x01
|
||||
@@ -675,6 +679,18 @@ static inline int usb_endpoint_interrupt_type(
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_EUSB2_ISOC_ENDPOINT_COMP: eUSB2 Isoch Endpoint Companion descriptor */
|
||||
struct usb_eusb2_isoc_ep_comp_descriptor {
|
||||
__u8 bLength;
|
||||
__u8 bDescriptorType;
|
||||
__le16 wMaxPacketSize;
|
||||
__le32 dwBytesPerInterval;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#define USB_DT_EUSB2_ISOC_EP_COMP_SIZE 8
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint Companion
|
||||
* descriptor
|
||||
*/
|
||||
|
||||
@@ -104,6 +104,7 @@
|
||||
#define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f
|
||||
#define UVC_CT_ROLL_RELATIVE_CONTROL 0x10
|
||||
#define UVC_CT_PRIVACY_CONTROL 0x11
|
||||
#define UVC_CT_REGION_OF_INTEREST_CONTROL 0x14
|
||||
|
||||
/* A.9.5. Processing Unit Control Selectors */
|
||||
#define UVC_PU_CONTROL_UNDEFINED 0x00
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#define UVC_CTRL_DATA_TYPE_BOOLEAN 3
|
||||
#define UVC_CTRL_DATA_TYPE_ENUM 4
|
||||
#define UVC_CTRL_DATA_TYPE_BITMASK 5
|
||||
#define UVC_CTRL_DATA_TYPE_RECT 6
|
||||
|
||||
/* Control flags */
|
||||
#define UVC_CTRL_FLAG_SET_CUR (1 << 0)
|
||||
@@ -38,6 +39,18 @@
|
||||
|
||||
#define UVC_MENU_NAME_LEN 32
|
||||
|
||||
/* V4L2 driver-specific controls */
|
||||
#define V4L2_CID_UVC_REGION_OF_INTEREST_RECT (V4L2_CID_USER_UVC_BASE + 1)
|
||||
#define V4L2_CID_UVC_REGION_OF_INTEREST_AUTO (V4L2_CID_USER_UVC_BASE + 2)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_EXPOSURE (1 << 0)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_IRIS (1 << 1)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_WHITE_BALANCE (1 << 2)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_FOCUS (1 << 3)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_FACE_DETECT (1 << 4)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_DETECT_AND_TRACK (1 << 5)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_IMAGE_STABILIZATION (1 << 6)
|
||||
#define V4L2_UVC_REGION_OF_INTEREST_AUTO_HIGHER_QUALITY (1 << 7)
|
||||
|
||||
struct uvc_menu_info {
|
||||
__u32 value;
|
||||
__u8 name[UVC_MENU_NAME_LEN];
|
||||
|
||||
@@ -215,6 +215,13 @@ enum v4l2_colorfx {
|
||||
*/
|
||||
#define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0)
|
||||
|
||||
/*
|
||||
* The base for the uvc driver controls.
|
||||
* See linux/uvcvideo.h for the list of controls.
|
||||
* We reserve 64 controls for this driver.
|
||||
*/
|
||||
#define V4L2_CID_USER_UVC_BASE (V4L2_CID_USER_BASE + 0x11e0)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
||||
@@ -671,6 +671,7 @@ enum {
|
||||
*/
|
||||
enum {
|
||||
VFIO_AP_REQ_IRQ_INDEX,
|
||||
VFIO_AP_CFG_CHG_IRQ_INDEX,
|
||||
VFIO_AP_NUM_IRQS
|
||||
};
|
||||
|
||||
@@ -931,29 +932,34 @@ struct vfio_device_bind_iommufd {
|
||||
* VFIO_DEVICE_ATTACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 19,
|
||||
* struct vfio_device_attach_iommufd_pt)
|
||||
* @argsz: User filled size of this data.
|
||||
* @flags: Must be 0.
|
||||
* @flags: Flags for attach.
|
||||
* @pt_id: Input the target id which can represent an ioas or a hwpt
|
||||
* allocated via iommufd subsystem.
|
||||
* Output the input ioas id or the attached hwpt id which could
|
||||
* be the specified hwpt itself or a hwpt automatically created
|
||||
* for the specified ioas by kernel during the attachment.
|
||||
* @pasid: The pasid to be attached, only meaningful when
|
||||
* VFIO_DEVICE_ATTACH_PASID is set in @flags
|
||||
*
|
||||
* Associate the device with an address space within the bound iommufd.
|
||||
* Undo by VFIO_DEVICE_DETACH_IOMMUFD_PT or device fd close. This is only
|
||||
* allowed on cdev fds.
|
||||
*
|
||||
* If a vfio device is currently attached to a valid hw_pagetable, without doing
|
||||
* a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl
|
||||
* passing in another hw_pagetable (hwpt) id is allowed. This action, also known
|
||||
* as a hw_pagetable replacement, will replace the device's currently attached
|
||||
* hw_pagetable with a new hw_pagetable corresponding to the given pt_id.
|
||||
* If a vfio device or a pasid of this device is currently attached to a valid
|
||||
* hw_pagetable (hwpt), without doing a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second
|
||||
* VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl passing in another hwpt id is allowed.
|
||||
* This action, also known as a hw_pagetable replacement, will replace the
|
||||
* currently attached hwpt of the device or the pasid of this device with a new
|
||||
* hwpt corresponding to the given pt_id.
|
||||
*
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct vfio_device_attach_iommufd_pt {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_DEVICE_ATTACH_PASID (1 << 0)
|
||||
__u32 pt_id;
|
||||
__u32 pasid;
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_ATTACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 19)
|
||||
@@ -962,17 +968,21 @@ struct vfio_device_attach_iommufd_pt {
|
||||
* VFIO_DEVICE_DETACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 20,
|
||||
* struct vfio_device_detach_iommufd_pt)
|
||||
* @argsz: User filled size of this data.
|
||||
* @flags: Must be 0.
|
||||
* @flags: Flags for detach.
|
||||
* @pasid: The pasid to be detached, only meaningful when
|
||||
* VFIO_DEVICE_DETACH_PASID is set in @flags
|
||||
*
|
||||
* Remove the association of the device and its current associated address
|
||||
* space. After it, the device should be in a blocking DMA state. This is only
|
||||
* allowed on cdev fds.
|
||||
* Remove the association of the device or a pasid of the device and its current
|
||||
* associated address space. After it, the device or the pasid should be in a
|
||||
* blocking DMA state. This is only allowed on cdev fds.
|
||||
*
|
||||
* Return: 0 on success, -errno on failure.
|
||||
*/
|
||||
struct vfio_device_detach_iommufd_pt {
|
||||
__u32 argsz;
|
||||
__u32 flags;
|
||||
#define VFIO_DEVICE_DETACH_PASID (1 << 0)
|
||||
__u32 pasid;
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_DETACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 20)
|
||||
|
||||
@@ -1859,6 +1859,7 @@ struct v4l2_ext_control {
|
||||
__s32 __user *p_s32;
|
||||
__s64 __user *p_s64;
|
||||
struct v4l2_area __user *p_area;
|
||||
struct v4l2_rect __user *p_rect;
|
||||
struct v4l2_ctrl_h264_sps __user *p_h264_sps;
|
||||
struct v4l2_ctrl_h264_pps __user *p_h264_pps;
|
||||
struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix;
|
||||
@@ -1911,6 +1912,8 @@ struct v4l2_ext_controls {
|
||||
#define V4L2_CTRL_WHICH_CUR_VAL 0
|
||||
#define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000
|
||||
#define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f010000
|
||||
#define V4L2_CTRL_WHICH_MIN_VAL 0x0f020000
|
||||
#define V4L2_CTRL_WHICH_MAX_VAL 0x0f030000
|
||||
|
||||
enum v4l2_ctrl_type {
|
||||
V4L2_CTRL_TYPE_INTEGER = 1,
|
||||
@@ -1929,6 +1932,7 @@ enum v4l2_ctrl_type {
|
||||
V4L2_CTRL_TYPE_U16 = 0x0101,
|
||||
V4L2_CTRL_TYPE_U32 = 0x0102,
|
||||
V4L2_CTRL_TYPE_AREA = 0x0106,
|
||||
V4L2_CTRL_TYPE_RECT = 0x0107,
|
||||
|
||||
V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
|
||||
V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
|
||||
@@ -2017,6 +2021,7 @@ struct v4l2_querymenu {
|
||||
#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
|
||||
#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400
|
||||
#define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800
|
||||
#define V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX 0x1000
|
||||
|
||||
/* Query flags, to be ORed with the control ID */
|
||||
#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
|
||||
|
||||
@@ -309,8 +309,9 @@ 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_GFXSTREAM_VULKAN 3
|
||||
#define VIRTIO_GPU_CAPSET_VENUS 4
|
||||
#define VIRTIO_GPU_CAPSET_CROSS_DOMAIN 5
|
||||
#define VIRTIO_GPU_CAPSET_DRM 6
|
||||
|
||||
/* VIRTIO_GPU_CMD_GET_CAPSET_INFO */
|
||||
|
||||
@@ -327,6 +327,19 @@ struct virtio_net_rss_config {
|
||||
__u8 hash_key_data[/* hash_key_length */];
|
||||
};
|
||||
|
||||
struct virtio_net_rss_config_hdr {
|
||||
__le32 hash_types;
|
||||
__le16 indirection_table_mask;
|
||||
__le16 unclassified_queue;
|
||||
__le16 indirection_table[/* 1 + indirection_table_mask */];
|
||||
};
|
||||
|
||||
struct virtio_net_rss_config_trailer {
|
||||
__le16 max_tx_vq;
|
||||
__u8 hash_key_length;
|
||||
__u8 hash_key_data[/* hash_key_length */];
|
||||
};
|
||||
|
||||
#define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1
|
||||
|
||||
/*
|
||||
|
||||
@@ -83,6 +83,10 @@ struct xattr_args {
|
||||
#define XATTR_CAPS_SUFFIX "capability"
|
||||
#define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX
|
||||
|
||||
#define XATTR_BPF_LSM_SUFFIX "bpf."
|
||||
#define XATTR_NAME_BPF_LSM (XATTR_SECURITY_PREFIX XATTR_BPF_LSM_SUFFIX)
|
||||
#define XATTR_NAME_BPF_LSM_LEN (sizeof(XATTR_NAME_BPF_LSM) - 1)
|
||||
|
||||
#define XATTR_POSIX_ACL_ACCESS "posix_acl_access"
|
||||
#define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS
|
||||
#define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"
|
||||
|
||||
@@ -1,156 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright 2014 IBM Corp.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_MISC_CXL_H
|
||||
#define _UAPI_MISC_CXL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
|
||||
|
||||
struct cxl_ioctl_start_work {
|
||||
__u64 flags;
|
||||
__u64 work_element_descriptor;
|
||||
__u64 amr;
|
||||
__s16 num_interrupts;
|
||||
__u16 tid;
|
||||
__s32 reserved1;
|
||||
__u64 reserved2;
|
||||
__u64 reserved3;
|
||||
__u64 reserved4;
|
||||
__u64 reserved5;
|
||||
};
|
||||
|
||||
#define CXL_START_WORK_AMR 0x0000000000000001ULL
|
||||
#define CXL_START_WORK_NUM_IRQS 0x0000000000000002ULL
|
||||
#define CXL_START_WORK_ERR_FF 0x0000000000000004ULL
|
||||
#define CXL_START_WORK_TID 0x0000000000000008ULL
|
||||
#define CXL_START_WORK_ALL (CXL_START_WORK_AMR |\
|
||||
CXL_START_WORK_NUM_IRQS |\
|
||||
CXL_START_WORK_ERR_FF |\
|
||||
CXL_START_WORK_TID)
|
||||
|
||||
|
||||
/* Possible modes that an afu can be in */
|
||||
#define CXL_MODE_DEDICATED 0x1
|
||||
#define CXL_MODE_DIRECTED 0x2
|
||||
|
||||
/* possible flags for the cxl_afu_id flags field */
|
||||
#define CXL_AFUID_FLAG_SLAVE 0x1 /* In directed-mode afu is in slave mode */
|
||||
|
||||
struct cxl_afu_id {
|
||||
__u64 flags; /* One of CXL_AFUID_FLAG_X */
|
||||
__u32 card_id;
|
||||
__u32 afu_offset;
|
||||
__u32 afu_mode; /* one of the CXL_MODE_X */
|
||||
__u32 reserved1;
|
||||
__u64 reserved2;
|
||||
__u64 reserved3;
|
||||
__u64 reserved4;
|
||||
__u64 reserved5;
|
||||
__u64 reserved6;
|
||||
};
|
||||
|
||||
/* base adapter image header is included in the image */
|
||||
#define CXL_AI_NEED_HEADER 0x0000000000000001ULL
|
||||
#define CXL_AI_ALL CXL_AI_NEED_HEADER
|
||||
|
||||
#define CXL_AI_HEADER_SIZE 128
|
||||
#define CXL_AI_BUFFER_SIZE 4096
|
||||
#define CXL_AI_MAX_ENTRIES 256
|
||||
#define CXL_AI_MAX_CHUNK_SIZE (CXL_AI_BUFFER_SIZE * CXL_AI_MAX_ENTRIES)
|
||||
|
||||
struct cxl_adapter_image {
|
||||
__u64 flags;
|
||||
__u64 data;
|
||||
__u64 len_data;
|
||||
__u64 len_image;
|
||||
__u64 reserved1;
|
||||
__u64 reserved2;
|
||||
__u64 reserved3;
|
||||
__u64 reserved4;
|
||||
};
|
||||
|
||||
/* ioctl numbers */
|
||||
#define CXL_MAGIC 0xCA
|
||||
/* AFU devices */
|
||||
#define CXL_IOCTL_START_WORK _IOW(CXL_MAGIC, 0x00, struct cxl_ioctl_start_work)
|
||||
#define CXL_IOCTL_GET_PROCESS_ELEMENT _IOR(CXL_MAGIC, 0x01, __u32)
|
||||
#define CXL_IOCTL_GET_AFU_ID _IOR(CXL_MAGIC, 0x02, struct cxl_afu_id)
|
||||
/* adapter devices */
|
||||
#define CXL_IOCTL_DOWNLOAD_IMAGE _IOW(CXL_MAGIC, 0x0A, struct cxl_adapter_image)
|
||||
#define CXL_IOCTL_VALIDATE_IMAGE _IOW(CXL_MAGIC, 0x0B, struct cxl_adapter_image)
|
||||
|
||||
#define CXL_READ_MIN_SIZE 0x1000 /* 4K */
|
||||
|
||||
/* Events from read() */
|
||||
enum cxl_event_type {
|
||||
CXL_EVENT_RESERVED = 0,
|
||||
CXL_EVENT_AFU_INTERRUPT = 1,
|
||||
CXL_EVENT_DATA_STORAGE = 2,
|
||||
CXL_EVENT_AFU_ERROR = 3,
|
||||
CXL_EVENT_AFU_DRIVER = 4,
|
||||
};
|
||||
|
||||
struct cxl_event_header {
|
||||
__u16 type;
|
||||
__u16 size;
|
||||
__u16 process_element;
|
||||
__u16 reserved1;
|
||||
};
|
||||
|
||||
struct cxl_event_afu_interrupt {
|
||||
__u16 flags;
|
||||
__u16 irq; /* Raised AFU interrupt number */
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct cxl_event_data_storage {
|
||||
__u16 flags;
|
||||
__u16 reserved1;
|
||||
__u32 reserved2;
|
||||
__u64 addr;
|
||||
__u64 dsisr;
|
||||
__u64 reserved3;
|
||||
};
|
||||
|
||||
struct cxl_event_afu_error {
|
||||
__u16 flags;
|
||||
__u16 reserved1;
|
||||
__u32 reserved2;
|
||||
__u64 error;
|
||||
};
|
||||
|
||||
struct cxl_event_afu_driver_reserved {
|
||||
/*
|
||||
* Defines the buffer passed to the cxl driver by the AFU driver.
|
||||
*
|
||||
* This is not ABI since the event header.size passed to the user for
|
||||
* existing events is set in the read call to sizeof(cxl_event_header)
|
||||
* + sizeof(whatever event is being dispatched) and the user is already
|
||||
* required to use a 4K buffer on the read call.
|
||||
*
|
||||
* Of course the contents will be ABI, but that's up the AFU driver.
|
||||
*/
|
||||
__u32 data_size;
|
||||
__u8 data[];
|
||||
};
|
||||
|
||||
struct cxl_event {
|
||||
struct cxl_event_header header;
|
||||
union {
|
||||
struct cxl_event_afu_interrupt irq;
|
||||
struct cxl_event_data_storage fault;
|
||||
struct cxl_event_afu_error afu_error;
|
||||
struct cxl_event_afu_driver_reserved afu_driver_event;
|
||||
};
|
||||
};
|
||||
|
||||
#endif /* _UAPI_MISC_CXL_H */
|
||||
@@ -88,6 +88,7 @@ enum uverbs_attrs_query_port_cmd_attr_ids {
|
||||
enum uverbs_attrs_get_context_attr_ids {
|
||||
UVERBS_ATTR_GET_CONTEXT_NUM_COMP_VECTORS,
|
||||
UVERBS_ATTR_GET_CONTEXT_CORE_SUPPORT,
|
||||
UVERBS_ATTR_GET_CONTEXT_FD_ARR,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_query_context_attr_ids {
|
||||
|
||||
@@ -239,6 +239,7 @@ enum mlx5_ib_flow_matcher_create_attrs {
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_FT_TYPE,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_IB_PORT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_matcher_destroy_attrs {
|
||||
|
||||
@@ -45,6 +45,8 @@ enum mlx5_ib_uapi_flow_table_type {
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB = 0x2,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_RX = 0x3,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TX = 0x4,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TRANSPORT_RX = 0x5,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TRANSPORT_TX = 0x6,
|
||||
};
|
||||
|
||||
enum mlx5_ib_uapi_flow_action_packet_reformat_type {
|
||||
|
||||
@@ -580,6 +580,8 @@ enum rdma_nldev_attr {
|
||||
RDMA_NLDEV_ATTR_EVENT_TYPE, /* u8 */
|
||||
|
||||
RDMA_NLDEV_SYS_ATTR_MONITOR_MODE, /* u8 */
|
||||
|
||||
RDMA_NLDEV_ATTR_STAT_OPCOUNTER_ENABLED, /* u8 */
|
||||
/*
|
||||
* Always the end
|
||||
*/
|
||||
|
||||
@@ -1,276 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* CXL Flash Device Driver
|
||||
*
|
||||
* Written by: Manoj N. Kumar <manoj@linux.vnet.ibm.com>, IBM Corporation
|
||||
* Matthew R. Ochs <mrochs@linux.vnet.ibm.com>, IBM Corporation
|
||||
*
|
||||
* Copyright (C) 2015 IBM Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef _CXLFLASH_IOCTL_H
|
||||
#define _CXLFLASH_IOCTL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Structure and definitions for all CXL Flash ioctls
|
||||
*/
|
||||
#define CXLFLASH_WWID_LEN 16
|
||||
|
||||
/*
|
||||
* Structure and flag definitions CXL Flash superpipe ioctls
|
||||
*/
|
||||
|
||||
#define DK_CXLFLASH_VERSION_0 0
|
||||
|
||||
struct dk_cxlflash_hdr {
|
||||
__u16 version; /* Version data */
|
||||
__u16 rsvd[3]; /* Reserved for future use */
|
||||
__u64 flags; /* Input flags */
|
||||
__u64 return_flags; /* Returned flags */
|
||||
};
|
||||
|
||||
/*
|
||||
* Return flag definitions available to all superpipe ioctls
|
||||
*
|
||||
* Similar to the input flags, these are grown from the bottom-up with the
|
||||
* intention that ioctl-specific return flag definitions would grow from the
|
||||
* top-down, allowing the two sets to co-exist. While not required/enforced
|
||||
* at this time, this provides future flexibility.
|
||||
*/
|
||||
#define DK_CXLFLASH_ALL_PORTS_ACTIVE 0x0000000000000001ULL
|
||||
#define DK_CXLFLASH_APP_CLOSE_ADAP_FD 0x0000000000000002ULL
|
||||
#define DK_CXLFLASH_CONTEXT_SQ_CMD_MODE 0x0000000000000004ULL
|
||||
|
||||
/*
|
||||
* General Notes:
|
||||
* -------------
|
||||
* The 'context_id' field of all ioctl structures contains the context
|
||||
* identifier for a context in the lower 32-bits (upper 32-bits are not
|
||||
* to be used when identifying a context to the AFU). That said, the value
|
||||
* in its entirety (all 64-bits) is to be treated as an opaque cookie and
|
||||
* should be presented as such when issuing ioctls.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DK_CXLFLASH_ATTACH Notes:
|
||||
* ------------------------
|
||||
* Read/write access permissions are specified via the O_RDONLY, O_WRONLY,
|
||||
* and O_RDWR flags defined in the fcntl.h header file.
|
||||
*
|
||||
* A valid adapter file descriptor (fd >= 0) is only returned on the initial
|
||||
* attach (successful) of a context. When a context is shared(reused), the user
|
||||
* is expected to already 'know' the adapter file descriptor associated with the
|
||||
* context.
|
||||
*/
|
||||
#define DK_CXLFLASH_ATTACH_REUSE_CONTEXT 0x8000000000000000ULL
|
||||
|
||||
struct dk_cxlflash_attach {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 num_interrupts; /* Requested number of interrupts */
|
||||
__u64 context_id; /* Returned context */
|
||||
__u64 mmio_size; /* Returned size of MMIO area */
|
||||
__u64 block_size; /* Returned block size, in bytes */
|
||||
__u64 adap_fd; /* Returned adapter file descriptor */
|
||||
__u64 last_lba; /* Returned last LBA on the device */
|
||||
__u64 max_xfer; /* Returned max transfer size, blocks */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
struct dk_cxlflash_detach {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 context_id; /* Context to detach */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
struct dk_cxlflash_udirect {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 context_id; /* Context to own physical resources */
|
||||
__u64 rsrc_handle; /* Returned resource handle */
|
||||
__u64 last_lba; /* Returned last LBA on the device */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
#define DK_CXLFLASH_UVIRTUAL_NEED_WRITE_SAME 0x8000000000000000ULL
|
||||
|
||||
struct dk_cxlflash_uvirtual {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 context_id; /* Context to own virtual resources */
|
||||
__u64 lun_size; /* Requested size, in 4K blocks */
|
||||
__u64 rsrc_handle; /* Returned resource handle */
|
||||
__u64 last_lba; /* Returned last LBA of LUN */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
struct dk_cxlflash_release {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 context_id; /* Context owning resources */
|
||||
__u64 rsrc_handle; /* Resource handle to release */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
struct dk_cxlflash_resize {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 context_id; /* Context owning resources */
|
||||
__u64 rsrc_handle; /* Resource handle of LUN to resize */
|
||||
__u64 req_size; /* New requested size, in 4K blocks */
|
||||
__u64 last_lba; /* Returned last LBA of LUN */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
struct dk_cxlflash_clone {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 context_id_src; /* Context to clone from */
|
||||
__u64 context_id_dst; /* Context to clone to */
|
||||
__u64 adap_fd_src; /* Source context adapter fd */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
#define DK_CXLFLASH_VERIFY_SENSE_LEN 18
|
||||
#define DK_CXLFLASH_VERIFY_HINT_SENSE 0x8000000000000000ULL
|
||||
|
||||
struct dk_cxlflash_verify {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 context_id; /* Context owning resources to verify */
|
||||
__u64 rsrc_handle; /* Resource handle of LUN */
|
||||
__u64 hint; /* Reasons for verify */
|
||||
__u64 last_lba; /* Returned last LBA of device */
|
||||
__u8 sense_data[DK_CXLFLASH_VERIFY_SENSE_LEN]; /* SCSI sense data */
|
||||
__u8 pad[6]; /* Pad to next 8-byte boundary */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
#define DK_CXLFLASH_RECOVER_AFU_CONTEXT_RESET 0x8000000000000000ULL
|
||||
|
||||
struct dk_cxlflash_recover_afu {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u64 reason; /* Reason for recovery request */
|
||||
__u64 context_id; /* Context to recover / updated ID */
|
||||
__u64 mmio_size; /* Returned size of MMIO area */
|
||||
__u64 adap_fd; /* Returned adapter file descriptor */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
#define DK_CXLFLASH_MANAGE_LUN_WWID_LEN CXLFLASH_WWID_LEN
|
||||
#define DK_CXLFLASH_MANAGE_LUN_ENABLE_SUPERPIPE 0x8000000000000000ULL
|
||||
#define DK_CXLFLASH_MANAGE_LUN_DISABLE_SUPERPIPE 0x4000000000000000ULL
|
||||
#define DK_CXLFLASH_MANAGE_LUN_ALL_PORTS_ACCESSIBLE 0x2000000000000000ULL
|
||||
|
||||
struct dk_cxlflash_manage_lun {
|
||||
struct dk_cxlflash_hdr hdr; /* Common fields */
|
||||
__u8 wwid[DK_CXLFLASH_MANAGE_LUN_WWID_LEN]; /* Page83 WWID, NAA-6 */
|
||||
__u64 reserved[8]; /* Rsvd, future use */
|
||||
};
|
||||
|
||||
union cxlflash_ioctls {
|
||||
struct dk_cxlflash_attach attach;
|
||||
struct dk_cxlflash_detach detach;
|
||||
struct dk_cxlflash_udirect udirect;
|
||||
struct dk_cxlflash_uvirtual uvirtual;
|
||||
struct dk_cxlflash_release release;
|
||||
struct dk_cxlflash_resize resize;
|
||||
struct dk_cxlflash_clone clone;
|
||||
struct dk_cxlflash_verify verify;
|
||||
struct dk_cxlflash_recover_afu recover_afu;
|
||||
struct dk_cxlflash_manage_lun manage_lun;
|
||||
};
|
||||
|
||||
#define MAX_CXLFLASH_IOCTL_SZ (sizeof(union cxlflash_ioctls))
|
||||
|
||||
#define CXL_MAGIC 0xCA
|
||||
#define CXL_IOWR(_n, _s) _IOWR(CXL_MAGIC, _n, struct _s)
|
||||
|
||||
/*
|
||||
* CXL Flash superpipe ioctls start at base of the reserved CXL_MAGIC
|
||||
* region (0x80) and grow upwards.
|
||||
*/
|
||||
#define DK_CXLFLASH_ATTACH CXL_IOWR(0x80, dk_cxlflash_attach)
|
||||
#define DK_CXLFLASH_USER_DIRECT CXL_IOWR(0x81, dk_cxlflash_udirect)
|
||||
#define DK_CXLFLASH_RELEASE CXL_IOWR(0x82, dk_cxlflash_release)
|
||||
#define DK_CXLFLASH_DETACH CXL_IOWR(0x83, dk_cxlflash_detach)
|
||||
#define DK_CXLFLASH_VERIFY CXL_IOWR(0x84, dk_cxlflash_verify)
|
||||
#define DK_CXLFLASH_RECOVER_AFU CXL_IOWR(0x85, dk_cxlflash_recover_afu)
|
||||
#define DK_CXLFLASH_MANAGE_LUN CXL_IOWR(0x86, dk_cxlflash_manage_lun)
|
||||
#define DK_CXLFLASH_USER_VIRTUAL CXL_IOWR(0x87, dk_cxlflash_uvirtual)
|
||||
#define DK_CXLFLASH_VLUN_RESIZE CXL_IOWR(0x88, dk_cxlflash_resize)
|
||||
#define DK_CXLFLASH_VLUN_CLONE CXL_IOWR(0x89, dk_cxlflash_clone)
|
||||
|
||||
/*
|
||||
* Structure and flag definitions CXL Flash host ioctls
|
||||
*/
|
||||
|
||||
#define HT_CXLFLASH_VERSION_0 0
|
||||
|
||||
struct ht_cxlflash_hdr {
|
||||
__u16 version; /* Version data */
|
||||
__u16 subcmd; /* Sub-command */
|
||||
__u16 rsvd[2]; /* Reserved for future use */
|
||||
__u64 flags; /* Input flags */
|
||||
__u64 return_flags; /* Returned flags */
|
||||
};
|
||||
|
||||
/*
|
||||
* Input flag definitions available to all host ioctls
|
||||
*
|
||||
* These are grown from the bottom-up with the intention that ioctl-specific
|
||||
* input flag definitions would grow from the top-down, allowing the two sets
|
||||
* to co-exist. While not required/enforced at this time, this provides future
|
||||
* flexibility.
|
||||
*/
|
||||
#define HT_CXLFLASH_HOST_READ 0x0000000000000000ULL
|
||||
#define HT_CXLFLASH_HOST_WRITE 0x0000000000000001ULL
|
||||
|
||||
#define HT_CXLFLASH_LUN_PROVISION_SUBCMD_CREATE_LUN 0x0001
|
||||
#define HT_CXLFLASH_LUN_PROVISION_SUBCMD_DELETE_LUN 0x0002
|
||||
#define HT_CXLFLASH_LUN_PROVISION_SUBCMD_QUERY_PORT 0x0003
|
||||
|
||||
struct ht_cxlflash_lun_provision {
|
||||
struct ht_cxlflash_hdr hdr; /* Common fields */
|
||||
__u16 port; /* Target port for provision request */
|
||||
__u16 reserved16[3]; /* Reserved for future use */
|
||||
__u64 size; /* Size of LUN (4K blocks) */
|
||||
__u64 lun_id; /* SCSI LUN ID */
|
||||
__u8 wwid[CXLFLASH_WWID_LEN];/* Page83 WWID, NAA-6 */
|
||||
__u64 max_num_luns; /* Maximum number of LUNs provisioned */
|
||||
__u64 cur_num_luns; /* Current number of LUNs provisioned */
|
||||
__u64 max_cap_port; /* Total capacity for port (4K blocks) */
|
||||
__u64 cur_cap_port; /* Current capacity for port (4K blocks) */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
#define HT_CXLFLASH_AFU_DEBUG_MAX_DATA_LEN 262144 /* 256K */
|
||||
#define HT_CXLFLASH_AFU_DEBUG_SUBCMD_LEN 12
|
||||
struct ht_cxlflash_afu_debug {
|
||||
struct ht_cxlflash_hdr hdr; /* Common fields */
|
||||
__u8 reserved8[4]; /* Reserved for future use */
|
||||
__u8 afu_subcmd[HT_CXLFLASH_AFU_DEBUG_SUBCMD_LEN]; /* AFU subcommand,
|
||||
* (pass through)
|
||||
*/
|
||||
__u64 data_ea; /* Data buffer effective address */
|
||||
__u32 data_len; /* Data buffer length */
|
||||
__u32 reserved32; /* Reserved for future use */
|
||||
__u64 reserved[8]; /* Reserved for future use */
|
||||
};
|
||||
|
||||
union cxlflash_ht_ioctls {
|
||||
struct ht_cxlflash_lun_provision lun_provision;
|
||||
struct ht_cxlflash_afu_debug afu_debug;
|
||||
};
|
||||
|
||||
#define MAX_HT_CXLFLASH_IOCTL_SZ (sizeof(union cxlflash_ht_ioctls))
|
||||
|
||||
/*
|
||||
* CXL Flash host ioctls start at the top of the reserved CXL_MAGIC
|
||||
* region (0xBF) and grow downwards.
|
||||
*/
|
||||
#define HT_CXLFLASH_LUN_PROVISION CXL_IOWR(0xBF, ht_cxlflash_lun_provision)
|
||||
#define HT_CXLFLASH_AFU_DEBUG CXL_IOWR(0xBE, ht_cxlflash_afu_debug)
|
||||
|
||||
|
||||
#endif /* ifndef _CXLFLASH_IOCTL_H */
|
||||
@@ -77,6 +77,17 @@ enum avs_tplg_token {
|
||||
AVS_TKN_MODCFG_UPDOWN_MIX_CHAN_MAP_U32 = 430,
|
||||
AVS_TKN_MODCFG_EXT_NUM_INPUT_PINS_U16 = 431,
|
||||
AVS_TKN_MODCFG_EXT_NUM_OUTPUT_PINS_U16 = 432,
|
||||
AVS_TKN_MODCFG_WHM_REF_AFMT_ID_U32 = 433,
|
||||
AVS_TKN_MODCFG_WHM_OUT_AFMT_ID_U32 = 434,
|
||||
AVS_TKN_MODCFG_WHM_WAKE_TICK_PERIOD_U32 = 435,
|
||||
AVS_TKN_MODCFG_WHM_VINDEX_U8 = 436,
|
||||
AVS_TKN_MODCFG_WHM_DMA_TYPE_U32 = 437,
|
||||
AVS_TKN_MODCFG_WHM_DMABUFF_SIZE_U32 = 438,
|
||||
AVS_TKN_MODCFG_WHM_BLOB_AFMT_ID_U32 = 439,
|
||||
AVS_TKN_MODCFG_PEAKVOL_VOLUME_U32 = 440,
|
||||
AVS_TKN_MODCFG_PEAKVOL_CHANNEL_ID_U32 = 441, /* reserved */
|
||||
AVS_TKN_MODCFG_PEAKVOL_CURVE_TYPE_U32 = 442,
|
||||
AVS_TKN_MODCFG_PEAKVOL_CURVE_DURATION_U32 = 443,
|
||||
|
||||
/* struct avs_tplg_pplcfg */
|
||||
AVS_TKN_PPLCFG_ID_U32 = 1401,
|
||||
|
||||
Reference in New Issue
Block a user