__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/* Copyright (c) 2021-2022, NVIDIA CORPORATION & AFFILIATES.
*/
#ifndef _IOMMUFD_H
#define _IOMMUFD_H
#include <linux/types.h>
#include <linux/ioctl.h>
#define IOMMUFD_TYPE (';')
/**
* DOC: General ioctl format
*
* The ioctl interface follows a general format to allow for extensibility. Each
* ioctl is passed in 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.
* - ENOENT: An ID or IOVA provided does not exist.
* - ENOMEM: Out of memory.
* - EOVERFLOW: Mathematics overflowed.
*
* As well as additional errnos, within specific ioctls.
*/
enum {
IOMMUFD_CMD_BASE = 0x80,
IOMMUFD_CMD_DESTROY = IOMMUFD_CMD_BASE,
IOMMUFD_CMD_IOAS_ALLOC,
IOMMUFD_CMD_IOAS_ALLOW_IOVAS,
IOMMUFD_CMD_IOAS_COPY,
IOMMUFD_CMD_IOAS_IOVA_RANGES,
IOMMUFD_CMD_IOAS_MAP,
IOMMUFD_CMD_IOAS_UNMAP,
IOMMUFD_CMD_OPTION,
IOMMUFD_CMD_VFIO_IOAS,
IOMMUFD_CMD_HWPT_ALLOC,
IOMMUFD_CMD_GET_HW_INFO,
IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING,
IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP,
IOMMUFD_CMD_HWPT_INVALIDATE,
};
/**
* struct iommu_destroy - ioctl(IOMMU_DESTROY)
* @size: sizeof(struct iommu_destroy)
* @id: iommufd object ID to destroy. Can be any destroyable object type.
*
* Destroy any object held within iommufd.
*/
struct iommu_destroy {
__u32 size;
__u32 id;
};
#define IOMMU_DESTROY _IO(IOMMUFD_TYPE, IOMMUFD_CMD_DESTROY)
/**
* struct iommu_ioas_alloc - ioctl(IOMMU_IOAS_ALLOC)
* @size: sizeof(struct iommu_ioas_alloc)
* @flags: Must be 0
* @out_ioas_id: Output IOAS ID for the allocated object
*
* Allocate an IO Address Space (IOAS) which holds an IO Virtual Address (IOVA)
* to memory mapping.
*/
struct iommu_ioas_alloc {
__u32 size;
__u32 flags;
__u32 out_ioas_id;
};
#define IOMMU_IOAS_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_ALLOC)
/**
* struct iommu_iova_range - ioctl(IOMMU_IOVA_RANGE)
* @start: First IOVA
* @last: Inclusive last IOVA
*
* An interval in IOVA space.
*/
struct iommu_iova_range {
__aligned_u64 start;
__aligned_u64 last;
};
/**
* struct iommu_ioas_iova_ranges - ioctl(IOMMU_IOAS_IOVA_RANGES)
* @size: sizeof(struct iommu_ioas_iova_ranges)
* @ioas_id: IOAS ID to read ranges from
* @num_iovas: Input/Output total number of ranges in the IOAS
* @__reserved: Must be 0
* @allowed_iovas: Pointer to the output array of struct iommu_iova_range
* @out_iova_alignment: Minimum alignment required for mapping IOVA
*
* Query an IOAS for ranges of allowed IOVAs. Mapping IOVA outside these ranges
* is not allowed. num_iovas will be set to the total number of iovas and
* the allowed_iovas[] will be filled in as space permits.
*
* The allowed ranges are dependent on the HW path the DMA operation takes, and
* can change during the lifetime of the IOAS. A fresh empty IOAS will have a
* full range, and each attached device will narrow the ranges based on that
* device's HW restrictions. Detaching a device can widen the ranges. Userspace
* should query ranges after every attach/detach to know what IOVAs are valid
* for mapping.
*
* On input num_iovas is the length of the allowed_iovas array. On output it is
* the total number of iovas filled in. The ioctl will return -EMSGSIZE and set
* num_iovas to the required value if num_iovas is too small. In this case the
* caller should allocate a larger output array and re-issue the ioctl.
*
* out_iova_alignment returns the minimum IOVA alignment that can be given
* to IOMMU_IOAS_MAP/COPY. IOVA's must satisfy::
*
* starting_iova % out_iova_alignment == 0
* (starting_iova + length) % out_iova_alignment == 0
*
* out_iova_alignment can be 1 indicating any IOVA is allowed. It cannot
* be higher than the system PAGE_SIZE.
*/
struct iommu_ioas_iova_ranges {
__u32 size;
__u32 ioas_id;
__u32 num_iovas;
__u32 __reserved;
__aligned_u64 allowed_iovas;
__aligned_u64 out_iova_alignment;
};
#define IOMMU_IOAS_IOVA_RANGES _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_IOVA_RANGES)
/**
* struct iommu_ioas_allow_iovas - ioctl(IOMMU_IOAS_ALLOW_IOVAS)
* @size: sizeof(struct iommu_ioas_allow_iovas)
* @ioas_id: IOAS ID to allow IOVAs from
* @num_iovas: Input/Output total number of ranges in the IOAS
* @__reserved: Must be 0
* @allowed_iovas: Pointer to array of struct iommu_iova_range
*
* Ensure a range of IOVAs are always available for allocation. If this call
* succeeds then IOMMU_IOAS_IOVA_RANGES will never return a list of IOVA ranges
* that are narrower than the ranges provided here. This call will fail if
* IOMMU_IOAS_IOVA_RANGES is currently narrower than the given ranges.
*
* When an IOAS is first created the IOVA_RANGES will be maximally sized, and as
* devices are attached the IOVA will narrow based on the device restrictions.
* When an allowed range is specified any narrowing will be refused, ie device
* attachment can fail if the device requires limiting within the allowed range.
*
* Automatic IOVA allocation is also impacted by this call. MAP will only
* allocate within the allowed IOVAs if they are present.
*
* This call replaces the entire allowed list with the given list.
*/
struct iommu_ioas_allow_iovas {
__u32 size;
__u32 ioas_id;
__u32 num_iovas;
__u32 __reserved;
__aligned_u64 allowed_iovas;
};
#define IOMMU_IOAS_ALLOW_IOVAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_ALLOW_IOVAS)
/**
* enum iommufd_ioas_map_flags - Flags for map and copy
* @IOMMU_IOAS_MAP_FIXED_IOVA: If clear the kernel will compute an appropriate
* IOVA to place the mapping at
* @IOMMU_IOAS_MAP_WRITEABLE: DMA is allowed to write to this mapping
* @IOMMU_IOAS_MAP_READABLE: DMA is allowed to read from this mapping
*/
enum iommufd_ioas_map_flags {
IOMMU_IOAS_MAP_FIXED_IOVA = 1 << 0,
IOMMU_IOAS_MAP_WRITEABLE = 1 << 1,
IOMMU_IOAS_MAP_READABLE = 1 << 2,
};
/**
* struct iommu_ioas_map - ioctl(IOMMU_IOAS_MAP)
* @size: sizeof(struct iommu_ioas_map)
* @flags: Combination of enum iommufd_ioas_map_flags
* @ioas_id: IOAS ID to change the mapping of
* @__reserved: Must be 0
* @user_va: Userspace pointer to start mapping from
* @length: Number of bytes to map
* @iova: IOVA the mapping was placed at. If IOMMU_IOAS_MAP_FIXED_IOVA is set
* then this must be provided as input.
*
* Set an IOVA mapping from a user pointer. If FIXED_IOVA is specified then the
* mapping will be established at iova, otherwise a suitable location based on
* the reserved and allowed lists will be automatically selected and returned in
* iova.
*
* If IOMMU_IOAS_MAP_FIXED_IOVA is specified then the iova range must currently
* be unused, existing IOVA cannot be replaced.
*/
struct iommu_ioas_map {
__u32 size;
__u32 flags;
__u32 ioas_id;
__u32 __reserved;
__aligned_u64 user_va;
__aligned_u64 length;
__aligned_u64 iova;
};
#define IOMMU_IOAS_MAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP)
/**
* struct iommu_ioas_copy - ioctl(IOMMU_IOAS_COPY)
* @size: sizeof(struct iommu_ioas_copy)
* @flags: Combination of enum iommufd_ioas_map_flags
* @dst_ioas_id: IOAS ID to change the mapping of
* @src_ioas_id: IOAS ID to copy from
* @length: Number of bytes to copy and map
* @dst_iova: IOVA the mapping was placed at. If IOMMU_IOAS_MAP_FIXED_IOVA is
* set then this must be provided as input.
* @src_iova: IOVA to start the copy
*
* Copy an already existing mapping from src_ioas_id and establish it in
* dst_ioas_id. The src iova/length must exactly match a range used with
* IOMMU_IOAS_MAP.
*
* This may be used to efficiently clone a subset of an IOAS to another, or as a
* kind of 'cache' to speed up mapping. Copy has an efficiency advantage over
* establishing equivalent new mappings, as internal resources are shared, and
* the kernel will pin the user memory only once.
*/
struct iommu_ioas_copy {
__u32 size;
__u32 flags;
__u32 dst_ioas_id;
__u32 src_ioas_id;
__aligned_u64 length;
__aligned_u64 dst_iova;
__aligned_u64 src_iova;
};
#define IOMMU_IOAS_COPY _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_COPY)
/**
* struct iommu_ioas_unmap - ioctl(IOMMU_IOAS_UNMAP)
* @size: sizeof(struct iommu_ioas_unmap)
* @ioas_id: IOAS ID to change the mapping of
* @iova: IOVA to start the unmapping at
* @length: Number of bytes to unmap, and return back the bytes unmapped
*
* Unmap an IOVA range. The iova/length must be a superset of a previously
* mapped range used with IOMMU_IOAS_MAP or IOMMU_IOAS_COPY. Splitting or
* truncating ranges is not allowed. The values 0 to U64_MAX will unmap
* everything.
*/
struct iommu_ioas_unmap {
__u32 size;
__u32 ioas_id;
__aligned_u64 iova;
__aligned_u64 length;
};
#define IOMMU_IOAS_UNMAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_UNMAP)
/**
* enum iommufd_option - ioctl(IOMMU_OPTION_RLIMIT_MODE) and
* ioctl(IOMMU_OPTION_HUGE_PAGES)
* @IOMMU_OPTION_RLIMIT_MODE:
* Change how RLIMIT_MEMLOCK accounting works. The caller must have privilege
* to invoke this. Value 0 (default) is user based accouting, 1 uses process
* based accounting. Global option, object_id must be 0
* @IOMMU_OPTION_HUGE_PAGES:
* Value 1 (default) allows contiguous pages to be combined when generating
* iommu mappings. Value 0 disables combining, everything is mapped to
* PAGE_SIZE. This can be useful for benchmarking. This is a per-IOAS
* option, the object_id must be the IOAS ID.
*/
enum iommufd_option {
IOMMU_OPTION_RLIMIT_MODE = 0,
IOMMU_OPTION_HUGE_PAGES = 1,
};
/**
* enum iommufd_option_ops - ioctl(IOMMU_OPTION_OP_SET) and
* ioctl(IOMMU_OPTION_OP_GET)
* @IOMMU_OPTION_OP_SET: Set the option's value
* @IOMMU_OPTION_OP_GET: Get the option's value
*/
enum iommufd_option_ops {
IOMMU_OPTION_OP_SET = 0,
IOMMU_OPTION_OP_GET = 1,
};
/**
* struct iommu_option - iommu option multiplexer
* @size: sizeof(struct iommu_option)
* @option_id: One of enum iommufd_option
* @op: One of enum iommufd_option_ops
* @__reserved: Must be 0
* @object_id: ID of the object if required
* @val64: Option value to set or value returned on get
*
* Change a simple option value. This multiplexor allows controlling options
* on objects. IOMMU_OPTION_OP_SET will load an option and IOMMU_OPTION_OP_GET
* will return the current value.
*/
struct iommu_option {
__u32 size;
__u32 option_id;
__u16 op;
__u16 __reserved;
__u32 object_id;
__aligned_u64 val64;
};
#define IOMMU_OPTION _IO(IOMMUFD_TYPE, IOMMUFD_CMD_OPTION)
/**
* enum iommufd_vfio_ioas_op - IOMMU_VFIO_IOAS_* ioctls
* @IOMMU_VFIO_IOAS_GET: Get the current compatibility IOAS
* @IOMMU_VFIO_IOAS_SET: Change the current compatibility IOAS
* @IOMMU_VFIO_IOAS_CLEAR: Disable VFIO compatibility
*/
enum iommufd_vfio_ioas_op {
IOMMU_VFIO_IOAS_GET = 0,
IOMMU_VFIO_IOAS_SET = 1,
IOMMU_VFIO_IOAS_CLEAR = 2,
};
/**
* struct iommu_vfio_ioas - ioctl(IOMMU_VFIO_IOAS)
* @size: sizeof(struct iommu_vfio_ioas)
* @ioas_id: For IOMMU_VFIO_IOAS_SET the input IOAS ID to set
* For IOMMU_VFIO_IOAS_GET will output the IOAS ID
* @op: One of enum iommufd_vfio_ioas_op
* @__reserved: Must be 0
*
* The VFIO compatibility support uses a single ioas because VFIO APIs do not
* support the ID field. Set or Get the IOAS that VFIO compatibility will use.
* When VFIO_GROUP_SET_CONTAINER is used on an iommufd it will get the
* compatibility ioas, either by taking what is already set, or auto creating
* one. From then on VFIO will continue to use that ioas and is not effected by
* this ioctl. SET or CLEAR does not destroy any auto-created IOAS.
*/
struct iommu_vfio_ioas {
__u32 size;
__u32 ioas_id;
__u16 op;
__u16 __reserved;
};
#define IOMMU_VFIO_IOAS _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VFIO_IOAS)
/**
* enum iommufd_hwpt_alloc_flags - Flags for HWPT allocation
* @IOMMU_HWPT_ALLOC_NEST_PARENT: If set, allocate a HWPT that can serve as
* the parent HWPT in a nesting configuration.
* @IOMMU_HWPT_ALLOC_DIRTY_TRACKING: Dirty tracking support for device IOMMU is
* enforced on device attachment
*/
enum iommufd_hwpt_alloc_flags {
IOMMU_HWPT_ALLOC_NEST_PARENT = 1 << 0,
IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 1 << 1,
};
/**
* enum iommu_hwpt_vtd_s1_flags - Intel VT-d stage-1 page table
* entry attributes
* @IOMMU_VTD_S1_SRE: Supervisor request
* @IOMMU_VTD_S1_EAFE: Extended access enable
* @IOMMU_VTD_S1_WPE: Write protect enable
*/
enum iommu_hwpt_vtd_s1_flags {
IOMMU_VTD_S1_SRE = 1 << 0,
IOMMU_VTD_S1_EAFE = 1 << 1,
IOMMU_VTD_S1_WPE = 1 << 2,
};
/**
* struct iommu_hwpt_vtd_s1 - Intel VT-d stage-1 page table
* info (IOMMU_HWPT_DATA_VTD_S1)
* @flags: Combination of enum iommu_hwpt_vtd_s1_flags
* @pgtbl_addr: The base address of the stage-1 page table.
* @addr_width: The address width of the stage-1 page table
* @__reserved: Must be 0
*/
struct iommu_hwpt_vtd_s1 {
__aligned_u64 flags;
__aligned_u64 pgtbl_addr;
__u32 addr_width;
__u32 __reserved;
};
/**
* enum iommu_hwpt_data_type - IOMMU HWPT Data Type
* @IOMMU_HWPT_DATA_NONE: no data
* @IOMMU_HWPT_DATA_VTD_S1: Intel VT-d stage-1 page table
*/
enum iommu_hwpt_data_type {
IOMMU_HWPT_DATA_NONE,
IOMMU_HWPT_DATA_VTD_S1,
};
/**
* struct iommu_hwpt_alloc - ioctl(IOMMU_HWPT_ALLOC)
* @size: sizeof(struct iommu_hwpt_alloc)
* @flags: Combination of enum iommufd_hwpt_alloc_flags
* @dev_id: The device to allocate this HWPT for
* @pt_id: The IOAS or HWPT to connect this HWPT to
* @out_hwpt_id: The ID of the new HWPT
* @__reserved: Must be 0
* @data_type: One of enum iommu_hwpt_data_type
* @data_len: Length of the type specific data
* @data_uptr: User pointer to the type specific data
*
* Explicitly allocate a hardware page table object. This is the same object
* type that is returned by iommufd_device_attach() and represents the
* underlying iommu driver's iommu_domain kernel object.
*
* A kernel-managed HWPT will be created with the mappings from the given
* IOAS via the @pt_id. The @data_type for this allocation must be set to
* IOMMU_HWPT_DATA_NONE. The HWPT can be allocated as a parent HWPT for a
* nesting configuration by passing IOMMU_HWPT_ALLOC_NEST_PARENT via @flags.
*
* A user-managed nested HWPT will be created from a given parent HWPT via
* @pt_id, in which the parent HWPT must be allocated previously via the
* same ioctl from a given IOAS (@pt_id). In this case, the @data_type
* must be set to a pre-defined type corresponding to an I/O page table
* type supported by the underlying IOMMU hardware.
*
* If the @data_type is set to IOMMU_HWPT_DATA_NONE, @data_len and
* @data_uptr should be zero. Otherwise, both @data_len and @data_uptr
* must be given.
*/
struct iommu_hwpt_alloc {
__u32 size;
__u32 flags;
__u32 dev_id;
__u32 pt_id;
__u32 out_hwpt_id;
__u32 __reserved;
__u32 data_type;
__u32 data_len;
__aligned_u64 data_uptr;
};
#define IOMMU_HWPT_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_ALLOC)
/**
* enum iommu_hw_info_vtd_flags - Flags for VT-d hw_info
* @IOMMU_HW_INFO_VTD_ERRATA_772415_SPR17: If set, disallow read-only mappings
* on a nested_parent domain.
* https://www.intel.com/content/www/us/en/content-details/772415/content-details.html
*/
enum iommu_hw_info_vtd_flags {
IOMMU_HW_INFO_VTD_ERRATA_772415_SPR17 = 1 << 0,
};
/**
* struct iommu_hw_info_vtd - Intel VT-d hardware information
*
* @flags: Combination of enum iommu_hw_info_vtd_flags
* @__reserved: Must be 0
*
* @cap_reg: Value of Intel VT-d capability register defined in VT-d spec
* section 11.4.2 Capability Register.
* @ecap_reg: Value of Intel VT-d capability register defined in VT-d spec
* section 11.4.3 Extended Capability Register.
*
* User needs to understand the Intel VT-d specification to decode the
* register value.
*/
struct iommu_hw_info_vtd {
__u32 flags;
__u32 __reserved;
__aligned_u64 cap_reg;
__aligned_u64 ecap_reg;
};
/**
* enum iommu_hw_info_type - IOMMU Hardware Info Types
* @IOMMU_HW_INFO_TYPE_NONE: Used by the drivers that do not report hardware
* info
* @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type
*/
enum iommu_hw_info_type {
IOMMU_HW_INFO_TYPE_NONE,
IOMMU_HW_INFO_TYPE_INTEL_VTD,
};
/**
* enum iommufd_hw_capabilities
* @IOMMU_HW_CAP_DIRTY_TRACKING: IOMMU hardware support for dirty tracking
* If available, it means the following APIs
* are supported:
*
* IOMMU_HWPT_GET_DIRTY_BITMAP
* IOMMU_HWPT_SET_DIRTY_TRACKING
*
*/
enum iommufd_hw_capabilities {
IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0,
};
/**
* struct iommu_hw_info - ioctl(IOMMU_GET_HW_INFO)
* @size: sizeof(struct iommu_hw_info)
* @flags: Must be 0
* @dev_id: The device bound to the iommufd
* @data_len: Input the length of a user buffer in bytes. Output the length of
* data that kernel supports
* @data_uptr: User pointer to a user-space buffer used by the kernel to fill
* the iommu type specific hardware information data
* @out_data_type: Output the iommu hardware info type as defined in the enum
* iommu_hw_info_type.
* @out_capabilities: Output the generic iommu capability info type as defined
* in the enum iommu_hw_capabilities.
* @__reserved: Must be 0
*
* Query an iommu type specific hardware information data from an iommu behind
* a given device that has been bound to iommufd. This hardware info data will
* be used to sync capabilities between the virtual iommu and the physical
* iommu, e.g. a nested translation setup needs to check the hardware info, so
* a guest stage-1 page table can be compatible with the physical iommu.
*
* To capture an iommu type specific hardware information data, @data_uptr and
* its length @data_len must be provided. Trailing bytes will be zeroed if the
* user buffer is larger than the data that kernel has. Otherwise, kernel only
* fills the buffer using the given length in @data_len. If the ioctl succeeds,
* @data_len will be updated to the length that kernel actually supports,
* @out_data_type will be filled to decode the data filled in the buffer
* pointed by @data_uptr. Input @data_len == zero is allowed.
*/
struct iommu_hw_info {
__u32 size;
__u32 flags;
__u32 dev_id;
__u32 data_len;
__aligned_u64 data_uptr;
__u32 out_data_type;
__u32 __reserved;
__aligned_u64 out_capabilities;
};
#define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO)
/*
* enum iommufd_hwpt_set_dirty_tracking_flags - Flags for steering dirty
* tracking
* @IOMMU_HWPT_DIRTY_TRACKING_ENABLE: Enable dirty tracking
*/
enum iommufd_hwpt_set_dirty_tracking_flags {
IOMMU_HWPT_DIRTY_TRACKING_ENABLE = 1,
};
/**
* struct iommu_hwpt_set_dirty_tracking - ioctl(IOMMU_HWPT_SET_DIRTY_TRACKING)
* @size: sizeof(struct iommu_hwpt_set_dirty_tracking)
* @flags: Combination of enum iommufd_hwpt_set_dirty_tracking_flags
* @hwpt_id: HW pagetable ID that represents the IOMMU domain
* @__reserved: Must be 0
*
* Toggle dirty tracking on an HW pagetable.
*/
struct iommu_hwpt_set_dirty_tracking {
__u32 size;
__u32 flags;
__u32 hwpt_id;
__u32 __reserved;
};
#define IOMMU_HWPT_SET_DIRTY_TRACKING _IO(IOMMUFD_TYPE, \
IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING)
/**
* enum iommufd_hwpt_get_dirty_bitmap_flags - Flags for getting dirty bits
* @IOMMU_HWPT_GET_DIRTY_BITMAP_NO_CLEAR: Just read the PTEs without clearing
* any dirty bits metadata. This flag
* can be passed in the expectation
* where the next operation is an unmap
* of the same IOVA range.
*
*/
enum iommufd_hwpt_get_dirty_bitmap_flags {
IOMMU_HWPT_GET_DIRTY_BITMAP_NO_CLEAR = 1,
};
/**
* struct iommu_hwpt_get_dirty_bitmap - ioctl(IOMMU_HWPT_GET_DIRTY_BITMAP)
* @size: sizeof(struct iommu_hwpt_get_dirty_bitmap)
* @hwpt_id: HW pagetable ID that represents the IOMMU domain
* @flags: Combination of enum iommufd_hwpt_get_dirty_bitmap_flags
* @__reserved: Must be 0
* @iova: base IOVA of the bitmap first bit
* @length: IOVA range size
* @page_size: page size granularity of each bit in the bitmap
* @data: bitmap where to set the dirty bits. The bitmap bits each
* represent a page_size which you deviate from an arbitrary iova.
*
* Checking a given IOVA is dirty:
*
* data[(iova / page_size) / 64] & (1ULL << ((iova / page_size) % 64))
*
* Walk the IOMMU pagetables for a given IOVA range to return a bitmap
* with the dirty IOVAs. In doing so it will also by default clear any
* dirty bit metadata set in the IOPTE.
*/
struct iommu_hwpt_get_dirty_bitmap {
__u32 size;
__u32 hwpt_id;
__u32 flags;
__u32 __reserved;
__aligned_u64 iova;
__aligned_u64 length;
__aligned_u64 page_size;
__aligned_u64 data;
};
#define IOMMU_HWPT_GET_DIRTY_BITMAP _IO(IOMMUFD_TYPE, \
IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP)
/**
* enum iommu_hwpt_invalidate_data_type - IOMMU HWPT Cache Invalidation
* Data Type
* @IOMMU_HWPT_INVALIDATE_DATA_VTD_S1: Invalidation data for VTD_S1
*/
enum iommu_hwpt_invalidate_data_type {
IOMMU_HWPT_INVALIDATE_DATA_VTD_S1,
};
/**
* enum iommu_hwpt_vtd_s1_invalidate_flags - Flags for Intel VT-d
* stage-1 cache invalidation
* @IOMMU_VTD_INV_FLAGS_LEAF: Indicates whether the invalidation applies
* to all-levels page structure cache or just
* the leaf PTE cache.
*/
enum iommu_hwpt_vtd_s1_invalidate_flags {
IOMMU_VTD_INV_FLAGS_LEAF = 1 << 0,
};
/**
* struct iommu_hwpt_vtd_s1_invalidate - Intel VT-d cache invalidation
* (IOMMU_HWPT_INVALIDATE_DATA_VTD_S1)
* @addr: The start address of the range to be invalidated. It needs to
* be 4KB aligned.
* @npages: Number of contiguous 4K pages to be invalidated.
* @flags: Combination of enum iommu_hwpt_vtd_s1_invalidate_flags
* @__reserved: Must be 0
*
* The Intel VT-d specific invalidation data for user-managed stage-1 cache
* invalidation in nested translation. Userspace uses this structure to
* tell the impacted cache scope after modifying the stage-1 page table.
*
* Invalidating all the caches related to the page table by setting @addr
* to be 0 and @npages to be U64_MAX.
*
* The device TLB will be invalidated automatically if ATS is enabled.
*/
struct iommu_hwpt_vtd_s1_invalidate {
__aligned_u64 addr;
__aligned_u64 npages;
__u32 flags;
__u32 __reserved;
};
/**
* struct iommu_hwpt_invalidate - ioctl(IOMMU_HWPT_INVALIDATE)
* @size: sizeof(struct iommu_hwpt_invalidate)
* @hwpt_id: ID of a nested HWPT for cache invalidation
* @data_uptr: User pointer to an array of driver-specific cache invalidation
* data.
* @data_type: One of enum iommu_hwpt_invalidate_data_type, defining the data
* type of all the entries in the invalidation request array. It
* should be a type supported by the hwpt pointed by @hwpt_id.
* @entry_len: Length (in bytes) of a request entry in the request array
* @entry_num: Input the number of cache invalidation requests in the array.
* Output the number of requests successfully handled by kernel.
* @__reserved: Must be 0.
*
* Invalidate the iommu cache for user-managed page table. Modifications on a
* user-managed page table should be followed by this operation to sync cache.
* Each ioctl can support one or more cache invalidation requests in the array
* that has a total size of @entry_len * @entry_num.
*
* An empty invalidation request array by setting @entry_num==0 is allowed, and
* @entry_len and @data_uptr would be ignored in this case. This can be used to
* check if the given @data_type is supported or not by kernel.
*/
struct iommu_hwpt_invalidate {
__u32 size;
__u32 hwpt_id;
__aligned_u64 data_uptr;
__u32 data_type;
__u32 entry_len;
__u32 entry_num;
__u32 __reserved;
};
#define IOMMU_HWPT_INVALIDATE _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_INVALIDATE)
#endif
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| android | Folder | 0755 |
|
|
| byteorder | Folder | 0755 |
|
|
| caif | Folder | 0755 |
|
|
| can | Folder | 0755 |
|
|
| cifs | Folder | 0755 |
|
|
| dvb | Folder | 0755 |
|
|
| genwqe | Folder | 0755 |
|
|
| hdlc | Folder | 0755 |
|
|
| hsi | Folder | 0755 |
|
|
| iio | Folder | 0755 |
|
|
| isdn | Folder | 0755 |
|
|
| misc | Folder | 0755 |
|
|
| mmc | Folder | 0755 |
|
|
| netfilter | Folder | 0755 |
|
|
| netfilter_arp | Folder | 0755 |
|
|
| netfilter_bridge | Folder | 0755 |
|
|
| netfilter_ipv4 | Folder | 0755 |
|
|
| netfilter_ipv6 | Folder | 0755 |
|
|
| nfsd | Folder | 0755 |
|
|
| raid | Folder | 0755 |
|
|
| sched | Folder | 0755 |
|
|
| spi | Folder | 0755 |
|
|
| sunrpc | Folder | 0755 |
|
|
| surface_aggregator | Folder | 0755 |
|
|
| tc_act | Folder | 0755 |
|
|
| tc_ematch | Folder | 0755 |
|
|
| usb | Folder | 0755 |
|
|
| a.out.h | File | 6.73 KB | 0644 |
|
| acct.h | File | 3.82 KB | 0644 |
|
| acrn.h | File | 18.51 KB | 0644 |
|
| adb.h | File | 1.11 KB | 0644 |
|
| adfs_fs.h | File | 993 B | 0644 |
|
| affs_hardblocks.h | File | 1.54 KB | 0644 |
|
| agpgart.h | File | 3.86 KB | 0644 |
|
| aio_abi.h | File | 3.32 KB | 0644 |
|
| am437x-vpfe.h | File | 3.59 KB | 0644 |
|
| amt.h | File | 1.71 KB | 0644 |
|
| apm_bios.h | File | 3.6 KB | 0644 |
|
| apparmor.h | File | 3.4 KB | 0644 |
|
| arcfb.h | File | 213 B | 0644 |
|
| arm_sdei.h | File | 2.69 KB | 0644 |
|
| aspeed-lpc-ctrl.h | File | 1.74 KB | 0644 |
|
| aspeed-p2a-ctrl.h | File | 1.86 KB | 0644 |
|
| aspeed-video.h | File | 389 B | 0644 |
|
| atalk.h | File | 1023 B | 0644 |
|
| atm.h | File | 7.7 KB | 0644 |
|
| atm_eni.h | File | 648 B | 0644 |
|
| atm_he.h | File | 406 B | 0644 |
|
| atm_idt77105.h | File | 955 B | 0644 |
|
| atm_nicstar.h | File | 1.25 KB | 0644 |
|
| atm_tcp.h | File | 1.58 KB | 0644 |
|
| atm_zatm.h | File | 1.5 KB | 0644 |
|
| atmapi.h | File | 952 B | 0644 |
|
| atmarp.h | File | 1.27 KB | 0644 |
|
| atmbr2684.h | File | 3.2 KB | 0644 |
|
| atmclip.h | File | 576 B | 0644 |
|
| atmdev.h | File | 7.32 KB | 0644 |
|
| atmioc.h | File | 1.61 KB | 0644 |
|
| atmlec.h | File | 2.33 KB | 0644 |
|
| atmmpc.h | File | 4.13 KB | 0644 |
|
| atmppp.h | File | 639 B | 0644 |
|
| atmsap.h | File | 4.85 KB | 0644 |
|
| atmsvc.h | File | 1.81 KB | 0644 |
|
| audit.h | File | 21.2 KB | 0644 |
|
| auto_dev-ioctl.h | File | 4.87 KB | 0644 |
|
| auto_fs.h | File | 6.28 KB | 0644 |
|
| auto_fs4.h | File | 451 B | 0644 |
|
| auxvec.h | File | 1.68 KB | 0644 |
|
| ax25.h | File | 2.76 KB | 0644 |
|
| batadv_packet.h | File | 21.13 KB | 0644 |
|
| batman_adv.h | File | 16.49 KB | 0644 |
|
| baycom.h | File | 883 B | 0644 |
|
| bcm933xx_hcs.h | File | 419 B | 0644 |
|
| bfs_fs.h | File | 1.86 KB | 0644 |
|
| binfmts.h | File | 776 B | 0644 |
|
| blkpg.h | File | 904 B | 0644 |
|
| blktrace_api.h | File | 4.59 KB | 0644 |
|
| blkzoned.h | File | 6.34 KB | 0644 |
|
| bpf.h | File | 269.04 KB | 0644 |
|
| bpf_common.h | File | 1.33 KB | 0644 |
|
| bpf_perf_event.h | File | 529 B | 0644 |
|
| bpqether.h | File | 981 B | 0644 |
|
| bsg.h | File | 2.44 KB | 0644 |
|
| bt-bmc.h | File | 572 B | 0644 |
|
| btf.h | File | 5.46 KB | 0644 |
|
| btrfs.h | File | 36.28 KB | 0644 |
|
| btrfs_tree.h | File | 34.77 KB | 0644 |
|
| cachefiles.h | File | 1.61 KB | 0644 |
|
| can.h | File | 10.95 KB | 0644 |
|
| capability.h | File | 13.21 KB | 0644 |
|
| capi.h | File | 3.05 KB | 0644 |
|
| cciss_defs.h | File | 3.2 KB | 0644 |
|
| cciss_ioctl.h | File | 2.7 KB | 0644 |
|
| ccs.h | File | 767 B | 0644 |
|
| cdrom.h | File | 28.87 KB | 0644 |
|
| cec-funcs.h | File | 53.14 KB | 0644 |
|
| cec.h | File | 41.17 KB | 0644 |
|
| cfm_bridge.h | File | 1.42 KB | 0644 |
|
| cgroupstats.h | File | 2.06 KB | 0644 |
|
| chio.h | File | 5.16 KB | 0644 |
|
| close_range.h | File | 377 B | 0644 |
|
| cn_proc.h | File | 4.06 KB | 0644 |
|
| coda.h | File | 17.79 KB | 0644 |
|
| coff.h | File | 12.25 KB | 0644 |
|
| comedi.h | File | 54.18 KB | 0644 |
|
| connector.h | File | 2.2 KB | 0644 |
|
| const.h | File | 991 B | 0644 |
|
| coresight-stm.h | File | 747 B | 0644 |
|
| counter.h | File | 4.77 KB | 0644 |
|
| cramfs_fs.h | File | 3.47 KB | 0644 |
|
| cryptouser.h | File | 5.2 KB | 0644 |
|
| cuda.h | File | 905 B | 0644 |
|
| cxl_mem.h | File | 7.8 KB | 0644 |
|
| cyclades.h | File | 969 B | 0644 |
|
| cycx_cfm.h | File | 2.92 KB | 0644 |
|
| dcbnl.h | File | 24.97 KB | 0644 |
|
| dccp.h | File | 6.29 KB | 0644 |
|
| devlink.h | File | 22.17 KB | 0644 |
|
| dlm.h | File | 2.52 KB | 0644 |
|
| dlm_device.h | File | 2.48 KB | 0644 |
|
| dlm_plock.h | File | 916 B | 0644 |
|
| dlmconstants.h | File | 4.97 KB | 0644 |
|
| dm-ioctl.h | File | 11.33 KB | 0644 |
|
| dm-log-userspace.h | File | 14.83 KB | 0644 |
|
| dma-buf.h | File | 7.15 KB | 0644 |
|
| dma-heap.h | File | 1.36 KB | 0644 |
|
| dns_resolver.h | File | 3.86 KB | 0644 |
|
| dpll.h | File | 5.84 KB | 0644 |
|
| dqblk_xfs.h | File | 9.17 KB | 0644 |
|
| dw100.h | File | 357 B | 0644 |
|
| edd.h | File | 5.47 KB | 0644 |
|
| efs_fs_sb.h | File | 2.17 KB | 0644 |
|
| elf-em.h | File | 2.57 KB | 0644 |
|
| elf-fdpic.h | File | 1.58 KB | 0644 |
|
| elf.h | File | 15.13 KB | 0644 |
|
| errno.h | File | 23 B | 0644 |
|
| errqueue.h | File | 1.94 KB | 0644 |
|
| erspan.h | File | 1.03 KB | 0644 |
|
| ethtool.h | File | 86.73 KB | 0644 |
|
| ethtool_netlink.h | File | 26.38 KB | 0644 |
|
| eventfd.h | File | 264 B | 0644 |
|
| eventpoll.h | File | 2.53 KB | 0644 |
|
| ext4.h | File | 4.03 KB | 0644 |
|
| f2fs.h | File | 3.28 KB | 0644 |
|
| fadvise.h | File | 842 B | 0644 |
|
| falloc.h | File | 3.5 KB | 0644 |
|
| fanotify.h | File | 8.17 KB | 0644 |
|
| fb.h | File | 16.09 KB | 0644 |
|
| fcntl.h | File | 4.44 KB | 0644 |
|
| fd.h | File | 11.83 KB | 0644 |
|
| fdreg.h | File | 5.24 KB | 0644 |
|
| fib_rules.h | File | 1.99 KB | 0644 |
|
| fiemap.h | File | 2.71 KB | 0644 |
|
| filter.h | File | 2.16 KB | 0644 |
|
| firewire-cdev.h | File | 49.53 KB | 0644 |
|
| firewire-constants.h | File | 3.16 KB | 0644 |
|
| fou.h | File | 819 B | 0644 |
|
| fpga-dfl.h | File | 8.52 KB | 0644 |
|
| fs.h | File | 13.94 KB | 0644 |
|
| fscrypt.h | File | 6.44 KB | 0644 |
|
| fsi.h | File | 3.02 KB | 0644 |
|
| fsl_hypervisor.h | File | 7.13 KB | 0644 |
|
| fsl_mc.h | File | 734 B | 0644 |
|
| fsmap.h | File | 4.3 KB | 0644 |
|
| fsverity.h | File | 3.11 KB | 0644 |
|
| fuse.h | File | 27.04 KB | 0644 |
|
| futex.h | File | 5.98 KB | 0644 |
|
| gameport.h | File | 897 B | 0644 |
|
| gen_stats.h | File | 1.49 KB | 0644 |
|
| genetlink.h | File | 2.19 KB | 0644 |
|
| gfs2_ondisk.h | File | 14.43 KB | 0644 |
|
| gpio.h | File | 19.46 KB | 0644 |
|
| gsmmux.h | File | 4.4 KB | 0644 |
|
| gtp.h | File | 734 B | 0644 |
|
| handshake.h | File | 1.61 KB | 0644 |
|
| hash_info.h | File | 1.01 KB | 0644 |
|
| hdlc.h | File | 637 B | 0644 |
|
| hdlcdrv.h | File | 2.84 KB | 0644 |
|
| hdreg.h | File | 22.17 KB | 0644 |
|
| hid.h | File | 2.04 KB | 0644 |
|
| hiddev.h | File | 6.2 KB | 0644 |
|
| hidraw.h | File | 1.95 KB | 0644 |
|
| hpet.h | File | 743 B | 0644 |
|
| hsr_netlink.h | File | 1.08 KB | 0644 |
|
| hw_breakpoint.h | File | 605 B | 0644 |
|
| hyperv.h | File | 10.89 KB | 0644 |
|
| i2c-dev.h | File | 1.83 KB | 0644 |
|
| i2c.h | File | 6.73 KB | 0644 |
|
| i2o-dev.h | File | 11.28 KB | 0644 |
|
| i8k.h | File | 1.49 KB | 0644 |
|
| icmp.h | File | 4.67 KB | 0644 |
|
| icmpv6.h | File | 4.17 KB | 0644 |
|
| idxd.h | File | 9.11 KB | 0644 |
|
| if.h | File | 10.67 KB | 0644 |
|
| if_addr.h | File | 2.09 KB | 0644 |
|
| if_addrlabel.h | File | 721 B | 0644 |
|
| if_alg.h | File | 1.56 KB | 0644 |
|
| if_arcnet.h | File | 3.63 KB | 0644 |
|
| if_arp.h | File | 6.43 KB | 0644 |
|
| if_bonding.h | File | 5.02 KB | 0644 |
|
| if_bridge.h | File | 20.18 KB | 0644 |
|
| if_cablemodem.h | File | 986 B | 0644 |
|
| if_eql.h | File | 1.32 KB | 0644 |
|
| if_ether.h | File | 8.56 KB | 0644 |
|
| if_fc.h | File | 1.7 KB | 0644 |
|
| if_fddi.h | File | 4.27 KB | 0644 |
|
| if_hippi.h | File | 4.14 KB | 0644 |
|
| if_infiniband.h | File | 1.22 KB | 0644 |
|
| if_link.h | File | 54.49 KB | 0644 |
|
| if_ltalk.h | File | 210 B | 0644 |
|
| if_macsec.h | File | 6.35 KB | 0644 |
|
| if_packet.h | File | 8.07 KB | 0644 |
|
| if_phonet.h | File | 424 B | 0644 |
|
| if_plip.h | File | 660 B | 0644 |
|
| if_ppp.h | File | 29 B | 0644 |
|
| if_pppol2tp.h | File | 3.23 KB | 0644 |
|
| if_pppox.h | File | 4.76 KB | 0644 |
|
| if_slip.h | File | 872 B | 0644 |
|
| if_team.h | File | 2.54 KB | 0644 |
|
| if_tun.h | File | 4.21 KB | 0644 |
|
| if_tunnel.h | File | 4.79 KB | 0644 |
|
| if_vlan.h | File | 1.79 KB | 0644 |
|
| if_x25.h | File | 881 B | 0644 |
|
| if_xdp.h | File | 4.89 KB | 0644 |
|
| ife.h | File | 351 B | 0644 |
|
| igmp.h | File | 2.99 KB | 0644 |
|
| ila.h | File | 1.22 KB | 0644 |
|
| in.h | File | 10.61 KB | 0644 |
|
| in6.h | File | 7.4 KB | 0644 |
|
| in_route.h | File | 936 B | 0644 |
|
| inet_diag.h | File | 4.9 KB | 0644 |
|
| inotify.h | File | 3.21 KB | 0644 |
|
| input-event-codes.h | File | 29.55 KB | 0644 |
|
| input.h | File | 15.84 KB | 0644 |
|
| io_uring.h | File | 19.26 KB | 0644 |
|
| ioam6.h | File | 2.33 KB | 0644 |
|
| ioam6_genl.h | File | 945 B | 0644 |
|
| ioam6_iptunnel.h | File | 1.26 KB | 0644 |
|
| ioctl.h | File | 163 B | 0644 |
|
| iommu.h | File | 4.79 KB | 0644 |
|
| iommufd.h | File | 24.52 KB | 0644 |
|
| ioprio.h | File | 4.08 KB | 0644 |
|
| ip.h | File | 4.73 KB | 0644 |
|
| ip6_tunnel.h | File | 1.91 KB | 0644 |
|
| ip_vs.h | File | 13.8 KB | 0644 |
|
| ipc.h | File | 2.05 KB | 0644 |
|
| ipmi.h | File | 15.08 KB | 0644 |
|
| ipmi_bmc.h | File | 488 B | 0644 |
|
| ipmi_msgdefs.h | File | 3.35 KB | 0644 |
|
| ipmi_ssif_bmc.h | File | 441 B | 0644 |
|
| ipsec.h | File | 947 B | 0644 |
|
| ipv6.h | File | 4.22 KB | 0644 |
|
| ipv6_route.h | File | 1.86 KB | 0644 |
|
| irqnr.h | File | 104 B | 0644 |
|
| iso_fs.h | File | 6.33 KB | 0644 |
|
| isst_if.h | File | 14.92 KB | 0644 |
|
| ivtv.h | File | 2.95 KB | 0644 |
|
| ivtvfb.h | File | 1.18 KB | 0644 |
|
| jffs2.h | File | 6.65 KB | 0644 |
|
| joystick.h | File | 3.35 KB | 0644 |
|
| kcm.h | File | 822 B | 0644 |
|
| kcmp.h | File | 522 B | 0644 |
|
| kcov.h | File | 1.92 KB | 0644 |
|
| kd.h | File | 6.3 KB | 0644 |
|
| kdev_t.h | File | 383 B | 0644 |
|
| kernel-page-flags.h | File | 900 B | 0644 |
|
| kernel.h | File | 194 B | 0644 |
|
| kernelcapi.h | File | 1019 B | 0644 |
|
| kexec.h | File | 2 KB | 0644 |
|
| keyboard.h | File | 13.14 KB | 0644 |
|
| keyctl.h | File | 5.86 KB | 0644 |
|
| kfd_ioctl.h | File | 52.69 KB | 0644 |
|
| kfd_sysfs.h | File | 5.01 KB | 0644 |
|
| kvm.h | File | 62.15 KB | 0644 |
|
| kvm_para.h | File | 1001 B | 0644 |
|
| l2tp.h | File | 5.61 KB | 0644 |
|
| landlock.h | File | 9.08 KB | 0644 |
|
| libc-compat.h | File | 8.09 KB | 0644 |
|
| limits.h | File | 937 B | 0644 |
|
| lirc.h | File | 8.13 KB | 0644 |
|
| llc.h | File | 3.09 KB | 0644 |
|
| loadpin.h | File | 834 B | 0644 |
|
| loop.h | File | 3.32 KB | 0644 |
|
| lp.h | File | 4.09 KB | 0644 |
|
| lsm.h | File | 2.5 KB | 0644 |
|
| lwtunnel.h | File | 2.31 KB | 0644 |
|
| magic.h | File | 3.77 KB | 0644 |
|
| major.h | File | 4.55 KB | 0644 |
|
| map_to_14segment.h | File | 9.28 KB | 0644 |
|
| map_to_7segment.h | File | 6.45 KB | 0644 |
|
| matroxfb.h | File | 1.43 KB | 0644 |
|
| max2175.h | File | 1.01 KB | 0644 |
|
| mctp.h | File | 1.45 KB | 0644 |
|
| mdio.h | File | 23.54 KB | 0644 |
|
| media-bus-format.h | File | 7.15 KB | 0644 |
|
| media.h | File | 12.46 KB | 0644 |
|
| mei.h | File | 3.39 KB | 0644 |
|
| mei_uuid.h | File | 738 B | 0644 |
|
| membarrier.h | File | 9.34 KB | 0644 |
|
| memfd.h | File | 1.43 KB | 0644 |
|
| mempolicy.h | File | 2.51 KB | 0644 |
|
| mii.h | File | 9.27 KB | 0644 |
|
| minix_fs.h | File | 2.07 KB | 0644 |
|
| mman.h | File | 1.75 KB | 0644 |
|
| mmtimer.h | File | 2.07 KB | 0644 |
|
| module.h | File | 293 B | 0644 |
|
| mount.h | File | 7.75 KB | 0644 |
|
| mpls.h | File | 2.25 KB | 0644 |
|
| mpls_iptunnel.h | File | 761 B | 0644 |
|
| mptcp.h | File | 3.67 KB | 0644 |
|
| mptcp_pm.h | File | 4.3 KB | 0644 |
|
| mqueue.h | File | 2.15 KB | 0644 |
|
| mroute.h | File | 5.78 KB | 0644 |
|
| mroute6.h | File | 4.89 KB | 0644 |
|
| mrp_bridge.h | File | 1.67 KB | 0644 |
|
| msdos_fs.h | File | 6.57 KB | 0644 |
|
| msg.h | File | 3.31 KB | 0644 |
|
| mtio.h | File | 7.98 KB | 0644 |
|
| nbd-netlink.h | File | 2.35 KB | 0644 |
|
| nbd.h | File | 3.53 KB | 0644 |
|
| ncsi.h | File | 4.71 KB | 0644 |
|
| ndctl.h | File | 6.66 KB | 0644 |
|
| neighbour.h | File | 5.96 KB | 0644 |
|
| net.h | File | 2.04 KB | 0644 |
|
| net_dropmon.h | File | 2.85 KB | 0644 |
|
| net_namespace.h | File | 715 B | 0644 |
|
| net_tstamp.h | File | 5.97 KB | 0644 |
|
| netconf.h | File | 614 B | 0644 |
|
| netdev.h | File | 4.23 KB | 0644 |
|
| netdevice.h | File | 2.2 KB | 0644 |
|
| netfilter.h | File | 1.69 KB | 0644 |
|
| netfilter_arp.h | File | 445 B | 0644 |
|
| netfilter_bridge.h | File | 1.14 KB | 0644 |
|
| netfilter_ipv4.h | File | 1.45 KB | 0644 |
|
| netfilter_ipv6.h | File | 1.35 KB | 0644 |
|
| netlink.h | File | 12.1 KB | 0644 |
|
| netlink_diag.h | File | 1.49 KB | 0644 |
|
| netrom.h | File | 807 B | 0644 |
|
| nexthop.h | File | 2.76 KB | 0644 |
|
| nfc.h | File | 10.97 KB | 0644 |
|
| nfs.h | File | 4.39 KB | 0644 |
|
| nfs2.h | File | 1.43 KB | 0644 |
|
| nfs3.h | File | 2.4 KB | 0644 |
|
| nfs4.h | File | 6.39 KB | 0644 |
|
| nfs4_mount.h | File | 1.89 KB | 0644 |
|
| nfs_fs.h | File | 1.62 KB | 0644 |
|
| nfs_idmap.h | File | 2.19 KB | 0644 |
|
| nfs_mount.h | File | 2.09 KB | 0644 |
|
| nfsacl.h | File | 718 B | 0644 |
|
| nfsd_netlink.h | File | 933 B | 0644 |
|
| nilfs2_api.h | File | 7.41 KB | 0644 |
|
| nilfs2_ondisk.h | File | 17.66 KB | 0644 |
|
| nitro_enclaves.h | File | 12.85 KB | 0644 |
|
| nl80211-vnd-intel.h | File | 4.49 KB | 0644 |
|
| nl80211.h | File | 334.96 KB | 0644 |
|
| npcm-video.h | File | 1.19 KB | 0644 |
|
| nsfs.h | File | 639 B | 0644 |
|
| nsm.h | File | 740 B | 0644 |
|
| nubus.h | File | 8 KB | 0644 |
|
| nvme_ioctl.h | File | 2.43 KB | 0644 |
|
| nvram.h | File | 532 B | 0644 |
|
| omap3isp.h | File | 20.45 KB | 0644 |
|
| omapfb.h | File | 5.78 KB | 0644 |
|
| oom.h | File | 511 B | 0644 |
|
| openat2.h | File | 1.42 KB | 0644 |
|
| openvswitch.h | File | 40.05 KB | 0644 |
|
| packet_diag.h | File | 1.63 KB | 0644 |
|
| param.h | File | 141 B | 0644 |
|
| parport.h | File | 3.75 KB | 0644 |
|
| patchkey.h | File | 892 B | 0644 |
|
| pci.h | File | 1.35 KB | 0644 |
|
| pci_regs.h | File | 60.36 KB | 0644 |
|
| pcitest.h | File | 920 B | 0644 |
|
| perf_event.h | File | 42.28 KB | 0644 |
|
| personality.h | File | 2.05 KB | 0644 |
|
| pfkeyv2.h | File | 10.39 KB | 0644 |
|
| pfrut.h | File | 7.8 KB | 0644 |
|
| pg.h | File | 2.34 KB | 0644 |
|
| phantom.h | File | 1.62 KB | 0644 |
|
| phonet.h | File | 4.57 KB | 0644 |
|
| pidfd.h | File | 256 B | 0644 |
|
| pkt_cls.h | File | 18.15 KB | 0644 |
|
| pkt_sched.h | File | 28.66 KB | 0644 |
|
| pktcdvd.h | File | 2.35 KB | 0644 |
|
| pmu.h | File | 5.32 KB | 0644 |
|
| poll.h | File | 22 B | 0644 |
|
| posix_acl.h | File | 1.22 KB | 0644 |
|
| posix_acl_xattr.h | File | 1.09 KB | 0644 |
|
| posix_types.h | File | 1.07 KB | 0644 |
|
| ppdev.h | File | 3.21 KB | 0644 |
|
| ppp-comp.h | File | 2.47 KB | 0644 |
|
| ppp-ioctl.h | File | 5.59 KB | 0644 |
|
| ppp_defs.h | File | 5.43 KB | 0644 |
|
| pps.h | File | 4.62 KB | 0644 |
|
| pr.h | File | 1.59 KB | 0644 |
|
| prctl.h | File | 10.42 KB | 0644 |
|
| psample.h | File | 2.22 KB | 0644 |
|
| psci.h | File | 5.02 KB | 0644 |
|
| psp-dbc.h | File | 5.16 KB | 0644 |
|
| psp-sev.h | File | 4.39 KB | 0644 |
|
| ptp_clock.h | File | 7.46 KB | 0644 |
|
| ptrace.h | File | 5.37 KB | 0644 |
|
| qemu_fw_cfg.h | File | 2.41 KB | 0644 |
|
| qnx4_fs.h | File | 2.27 KB | 0644 |
|
| qnxtypes.h | File | 624 B | 0644 |
|
| qrtr.h | File | 893 B | 0644 |
|
| quota.h | File | 6.16 KB | 0644 |
|
| radeonfb.h | File | 360 B | 0644 |
|
| random.h | File | 1.38 KB | 0644 |
|
| rds.h | File | 10.91 KB | 0644 |
|
| reboot.h | File | 1.31 KB | 0644 |
|
| reiserfs_fs.h | File | 775 B | 0644 |
|
| reiserfs_xattr.h | File | 542 B | 0644 |
|
| remoteproc_cdev.h | File | 1.08 KB | 0644 |
|
| resource.h | File | 2.53 KB | 0644 |
|
| rfkill.h | File | 5.96 KB | 0644 |
|
| rio_cm_cdev.h | File | 3.17 KB | 0644 |
|
| rio_mport_cdev.h | File | 9.11 KB | 0644 |
|
| rkisp1-config.h | File | 33.39 KB | 0644 |
|
| romfs_fs.h | File | 1.21 KB | 0644 |
|
| rose.h | File | 2.18 KB | 0644 |
|
| route.h | File | 2.28 KB | 0644 |
|
| rpl.h | File | 854 B | 0644 |
|
| rpl_iptunnel.h | File | 424 B | 0644 |
|
| rpmsg.h | File | 1.29 KB | 0644 |
|
| rpmsg_types.h | File | 288 B | 0644 |
|
| rseq.h | File | 5.32 KB | 0644 |
|
| rtc.h | File | 5.19 KB | 0644 |
|
| rtnetlink.h | File | 20.85 KB | 0644 |
|
| rxrpc.h | File | 4.81 KB | 0644 |
|
| scc.h | File | 4.52 KB | 0644 |
|
| sched.h | File | 6.12 KB | 0644 |
|
| scif_ioctl.h | File | 6.23 KB | 0644 |
|
| screen_info.h | File | 2.42 KB | 0644 |
|
| sctp.h | File | 35.17 KB | 0644 |
|
| seccomp.h | File | 5.85 KB | 0644 |
|
| securebits.h | File | 2.64 KB | 0644 |
|
| sed-opal.h | File | 5.22 KB | 0644 |
|
| seg6.h | File | 1.14 KB | 0644 |
|
| seg6_genl.h | File | 589 B | 0644 |
|
| seg6_hmac.h | File | 423 B | 0644 |
|
| seg6_iptunnel.h | File | 983 B | 0644 |
|
| seg6_local.h | File | 3.78 KB | 0644 |
|
| selinux_netlink.h | File | 1.17 KB | 0644 |
|
| sem.h | File | 2.98 KB | 0644 |
|
| serial.h | File | 5.12 KB | 0644 |
|
| serial_core.h | File | 4.93 KB | 0644 |
|
| serial_reg.h | File | 15.65 KB | 0644 |
|
| serio.h | File | 2.05 KB | 0644 |
|
| sev-guest.h | File | 2.31 KB | 0644 |
|
| shm.h | File | 3.71 KB | 0644 |
|
| signal.h | File | 388 B | 0644 |
|
| signalfd.h | File | 1.2 KB | 0644 |
|
| smc.h | File | 8.46 KB | 0644 |
|
| smc_diag.h | File | 2.88 KB | 0644 |
|
| smiapp.h | File | 1.03 KB | 0644 |
|
| snmp.h | File | 14.19 KB | 0644 |
|
| sock_diag.h | File | 1.27 KB | 0644 |
|
| socket.h | File | 1.02 KB | 0644 |
|
| sockios.h | File | 6.69 KB | 0644 |
|
| sonet.h | File | 2.24 KB | 0644 |
|
| sonypi.h | File | 5.18 KB | 0644 |
|
| sound.h | File | 1.21 KB | 0644 |
|
| soundcard.h | File | 44.97 KB | 0644 |
|
| stat.h | File | 6.84 KB | 0644 |
|
| stddef.h | File | 1.94 KB | 0644 |
|
| stm.h | File | 1.24 KB | 0644 |
|
| string.h | File | 238 B | 0644 |
|
| suspend_ioctls.h | File | 1.4 KB | 0644 |
|
| swab.h | File | 6.78 KB | 0644 |
|
| switchtec_ioctl.h | File | 5.14 KB | 0644 |
|
| sync_file.h | File | 3.37 KB | 0644 |
|
| synclink.h | File | 8.77 KB | 0644 |
|
| sysctl.h | File | 25.42 KB | 0644 |
|
| sysinfo.h | File | 1.02 KB | 0644 |
|
| target_core_user.h | File | 4.54 KB | 0644 |
|
| taskstats.h | File | 8.13 KB | 0644 |
|
| tcp.h | File | 16.62 KB | 0644 |
|
| tcp_metrics.h | File | 1.51 KB | 0644 |
|
| tdx-guest.h | File | 1.27 KB | 0644 |
|
| tee.h | File | 13.09 KB | 0644 |
|
| termios.h | File | 172 B | 0644 |
|
| thermal.h | File | 3.23 KB | 0644 |
|
| thp7312.h | File | 659 B | 0644 |
|
| time.h | File | 1.71 KB | 0644 |
|
| time_types.h | File | 1.24 KB | 0644 |
|
| timerfd.h | File | 936 B | 0644 |
|
| times.h | File | 278 B | 0644 |
|
| timex.h | File | 7.63 KB | 0644 |
|
| tiocl.h | File | 1.69 KB | 0644 |
|
| tipc.h | File | 8.62 KB | 0644 |
|
| tipc_config.h | File | 14.57 KB | 0644 |
|
| tipc_netlink.h | File | 9.17 KB | 0644 |
|
| tipc_sockets_diag.h | File | 468 B | 0644 |
|
| tls.h | File | 7.06 KB | 0644 |
|
| toshiba.h | File | 1.88 KB | 0644 |
|
| tps6594_pfsm.h | File | 1.13 KB | 0644 |
|
| tty.h | File | 1.74 KB | 0644 |
|
| tty_flags.h | File | 4.4 KB | 0644 |
|
| types.h | File | 1.73 KB | 0644 |
|
| ublk_cmd.h | File | 11.69 KB | 0644 |
|
| udf_fs_i.h | File | 697 B | 0644 |
|
| udmabuf.h | File | 643 B | 0644 |
|
| udp.h | File | 1.65 KB | 0644 |
|
| uhid.h | File | 4.54 KB | 0644 |
|
| uinput.h | File | 9.04 KB | 0644 |
|
| uio.h | File | 732 B | 0644 |
|
| uleds.h | File | 798 B | 0644 |
|
| ultrasound.h | File | 4.46 KB | 0644 |
|
| um_timetravel.h | File | 3.87 KB | 0644 |
|
| un.h | File | 384 B | 0644 |
|
| unistd.h | File | 220 B | 0644 |
|
| unix_diag.h | File | 1.3 KB | 0644 |
|
| usbdevice_fs.h | File | 8.12 KB | 0644 |
|
| usbip.h | File | 1.47 KB | 0644 |
|
| user_events.h | File | 2.29 KB | 0644 |
|
| userfaultfd.h | File | 11.74 KB | 0644 |
|
| userio.h | File | 1.48 KB | 0644 |
|
| utime.h | File | 223 B | 0644 |
|
| utsname.h | File | 669 B | 0644 |
|
| uuid.h | File | 28 B | 0644 |
|
| uvcvideo.h | File | 2.57 KB | 0644 |
|
| v4l2-common.h | File | 2.01 KB | 0644 |
|
| v4l2-controls.h | File | 145.84 KB | 0644 |
|
| v4l2-dv-timings.h | File | 30.39 KB | 0644 |
|
| v4l2-mediabus.h | File | 5.11 KB | 0644 |
|
| v4l2-subdev.h | File | 9.77 KB | 0644 |
|
| vbox_err.h | File | 7.09 KB | 0644 |
|
| vbox_vmmdev_types.h | File | 11.38 KB | 0644 |
|
| vboxguest.h | File | 9.15 KB | 0644 |
|
| vdpa.h | File | 1.74 KB | 0644 |
|
| vduse.h | File | 9.58 KB | 0644 |
|
| version.h | File | 216 B | 0644 |
|
| veth.h | File | 224 B | 0644 |
|
| vfio.h | File | 70.18 KB | 0644 |
|
| vfio_ccw.h | File | 1.29 KB | 0644 |
|
| vfio_zdev.h | File | 2.48 KB | 0644 |
|
| vhost.h | File | 9.74 KB | 0644 |
|
| vhost_types.h | File | 5.14 KB | 0644 |
|
| videodev2.h | File | 98.5 KB | 0644 |
|
| virtio_9p.h | File | 2 KB | 0644 |
|
| virtio_balloon.h | File | 5.16 KB | 0644 |
|
| virtio_blk.h | File | 9.75 KB | 0644 |
|
| virtio_bt.h | File | 910 B | 0644 |
|
| virtio_config.h | File | 4.65 KB | 0644 |
|
| virtio_console.h | File | 3.08 KB | 0644 |
|
| virtio_crypto.h | File | 16.09 KB | 0644 |
|
| virtio_fs.h | File | 573 B | 0644 |
|
| virtio_gpio.h | File | 1.67 KB | 0644 |
|
| virtio_gpu.h | File | 11.19 KB | 0644 |
|
| virtio_i2c.h | File | 1.16 KB | 0644 |
|
| virtio_ids.h | File | 4.2 KB | 0644 |
|
| virtio_input.h | File | 2.46 KB | 0644 |
|
| virtio_iommu.h | File | 3.84 KB | 0644 |
|
| virtio_mem.h | File | 6.99 KB | 0644 |
|
| virtio_mmio.h | File | 4.85 KB | 0644 |
|
| virtio_net.h | File | 15.08 KB | 0644 |
|
| virtio_pci.h | File | 9.41 KB | 0644 |
|
| virtio_pcidev.h | File | 2.39 KB | 0644 |
|
| virtio_pmem.h | File | 882 B | 0644 |
|
| virtio_ring.h | File | 8.52 KB | 0644 |
|
| virtio_rng.h | File | 265 B | 0644 |
|
| virtio_scmi.h | File | 637 B | 0644 |
|
| virtio_scsi.h | File | 5.94 KB | 0644 |
|
| virtio_snd.h | File | 9.09 KB | 0644 |
|
| virtio_types.h | File | 2.1 KB | 0644 |
|
| virtio_vsock.h | File | 3.27 KB | 0644 |
|
| vm_sockets.h | File | 7.18 KB | 0644 |
|
| vm_sockets_diag.h | File | 963 B | 0644 |
|
| vmcore.h | File | 455 B | 0644 |
|
| vsockmon.h | File | 1.84 KB | 0644 |
|
| vt.h | File | 2.99 KB | 0644 |
|
| vtpm_proxy.h | File | 1.68 KB | 0644 |
|
| wait.h | File | 682 B | 0644 |
|
| watch_queue.h | File | 3.41 KB | 0644 |
|
| watchdog.h | File | 2.28 KB | 0644 |
|
| wireguard.h | File | 7.57 KB | 0644 |
|
| wireless.h | File | 41.7 KB | 0644 |
|
| wmi.h | File | 1.72 KB | 0644 |
|
| wwan.h | File | 295 B | 0644 |
|
| x25.h | File | 3.48 KB | 0644 |
|
| xattr.h | File | 2.95 KB | 0644 |
|
| xdp_diag.h | File | 1.43 KB | 0644 |
|
| xfrm.h | File | 12.42 KB | 0644 |
|
| xilinx-v4l2-controls.h | File | 2.91 KB | 0644 |
|
| zorro.h | File | 3.22 KB | 0644 |
|
| zorro_ids.h | File | 29.36 KB | 0644 |
|