[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.12.146.108: ~ $
/*
 * VFIO API definition
 *
 * Copyright (C) 2012 Red Hat, Inc.  All rights reserved.
 *     Author: Alex Williamson <alex.williamson@redhat.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#ifndef VFIO_H
#define VFIO_H

#include <linux/types.h>
#include <linux/ioctl.h>

#define VFIO_API_VERSION	0


/* Kernel & User level defines for VFIO IOCTLs. */

/* Extensions */

#define VFIO_TYPE1_IOMMU		1
#define VFIO_SPAPR_TCE_IOMMU		2
#define VFIO_TYPE1v2_IOMMU		3
/*
 * IOMMU enforces DMA cache coherence (ex. PCIe NoSnoop stripping).  This
 * capability is subject to change as groups are added or removed.
 */
#define VFIO_DMA_CC_IOMMU		4

/* Check if EEH is supported */
#define VFIO_EEH			5

#define VFIO_SPAPR_TCE_v2_IOMMU		7

/*
 * The No-IOMMU IOMMU offers no translation or isolation for devices and
 * supports no ioctls outside of VFIO_CHECK_EXTENSION.  Use of VFIO's No-IOMMU
 * code will taint the host kernel and should be used with extreme caution.
 */
#define VFIO_NOIOMMU_IOMMU		8

/*
 * The IOCTL interface is designed for extensibility by embedding the
 * structure length (argsz) and flags into structures passed between
 * kernel and userspace.  We therefore use the _IO() macro for these
 * defines to avoid implicitly embedding a size into the ioctl request.
 * As structure fields are added, argsz will increase to match and flag
 * bits will be defined to indicate additional fields with valid data.
 * It's *always* the caller's responsibility to indicate the size of
 * the structure passed by setting argsz appropriately.
 */

#define VFIO_TYPE	(';')
#define VFIO_BASE	100

/*
 * For extension of INFO ioctls, VFIO makes use of a capability chain
 * designed after PCI/e capabilities.  A flag bit indicates whether
 * this capability chain is supported and a field defined in the fixed
 * structure defines the offset of the first capability in the chain.
 * This field is only valid when the corresponding bit in the flags
 * bitmap is set.  This offset field is relative to the start of the
 * INFO buffer, as is the next field within each capability header.
 * The id within the header is a shared address space per INFO ioctl,
 * while the version field is specific to the capability id.  The
 * contents following the header are specific to the capability id.
 */
struct vfio_info_cap_header {
	__u16	id;		/* Identifies capability */
	__u16	version;	/* Version specific to the capability ID */
	__u32	next;		/* Offset of next capability */
};

/*
 * Callers of INFO ioctls passing insufficiently sized buffers will see
 * the capability chain flag bit set, a zero value for the first capability
 * offset (if available within the provided argsz), and argsz will be
 * updated to report the necessary buffer size.  For compatibility, the
 * INFO ioctl will not report error in this case, but the capability chain
 * will not be available.
 */

/* -------- IOCTLs for VFIO file descriptor (/dev/vfio/vfio) -------- */

/**
 * VFIO_GET_API_VERSION - _IO(VFIO_TYPE, VFIO_BASE + 0)
 *
 * Report the version of the VFIO API.  This allows us to bump the entire
 * API version should we later need to add or change features in incompatible
 * ways.
 * Return: VFIO_API_VERSION
 * Availability: Always
 */
#define VFIO_GET_API_VERSION		_IO(VFIO_TYPE, VFIO_BASE + 0)

/**
 * VFIO_CHECK_EXTENSION - _IOW(VFIO_TYPE, VFIO_BASE + 1, __u32)
 *
 * Check whether an extension is supported.
 * Return: 0 if not supported, 1 (or some other positive integer) if supported.
 * Availability: Always
 */
#define VFIO_CHECK_EXTENSION		_IO(VFIO_TYPE, VFIO_BASE + 1)

/**
 * VFIO_SET_IOMMU - _IOW(VFIO_TYPE, VFIO_BASE + 2, __s32)
 *
 * Set the iommu to the given type.  The type must be supported by an
 * iommu driver as verified by calling CHECK_EXTENSION using the same
 * type.  A group must be set to this file descriptor before this
 * ioctl is available.  The IOMMU interfaces enabled by this call are
 * specific to the value set.
 * Return: 0 on success, -errno on failure
 * Availability: When VFIO group attached
 */
#define VFIO_SET_IOMMU			_IO(VFIO_TYPE, VFIO_BASE + 2)

/* -------- IOCTLs for GROUP file descriptors (/dev/vfio/$GROUP) -------- */

/**
 * VFIO_GROUP_GET_STATUS - _IOR(VFIO_TYPE, VFIO_BASE + 3,
 *						struct vfio_group_status)
 *
 * Retrieve information about the group.  Fills in provided
 * struct vfio_group_info.  Caller sets argsz.
 * Return: 0 on succes, -errno on failure.
 * Availability: Always
 */
struct vfio_group_status {
	__u32	argsz;
	__u32	flags;
#define VFIO_GROUP_FLAGS_VIABLE		(1 << 0)
#define VFIO_GROUP_FLAGS_CONTAINER_SET	(1 << 1)
};
#define VFIO_GROUP_GET_STATUS		_IO(VFIO_TYPE, VFIO_BASE + 3)

/**
 * VFIO_GROUP_SET_CONTAINER - _IOW(VFIO_TYPE, VFIO_BASE + 4, __s32)
 *
 * Set the container for the VFIO group to the open VFIO file
 * descriptor provided.  Groups may only belong to a single
 * container.  Containers may, at their discretion, support multiple
 * groups.  Only when a container is set are all of the interfaces
 * of the VFIO file descriptor and the VFIO group file descriptor
 * available to the user.
 * Return: 0 on success, -errno on failure.
 * Availability: Always
 */
#define VFIO_GROUP_SET_CONTAINER	_IO(VFIO_TYPE, VFIO_BASE + 4)

/**
 * VFIO_GROUP_UNSET_CONTAINER - _IO(VFIO_TYPE, VFIO_BASE + 5)
 *
 * Remove the group from the attached container.  This is the
 * opposite of the SET_CONTAINER call and returns the group to
 * an initial state.  All device file descriptors must be released
 * prior to calling this interface.  When removing the last group
 * from a container, the IOMMU will be disabled and all state lost,
 * effectively also returning the VFIO file descriptor to an initial
 * state.
 * Return: 0 on success, -errno on failure.
 * Availability: When attached to container
 */
#define VFIO_GROUP_UNSET_CONTAINER	_IO(VFIO_TYPE, VFIO_BASE + 5)

/**
 * VFIO_GROUP_GET_DEVICE_FD - _IOW(VFIO_TYPE, VFIO_BASE + 6, char)
 *
 * Return a new file descriptor for the device object described by
 * the provided string.  The string should match a device listed in
 * the devices subdirectory of the IOMMU group sysfs entry.  The
 * group containing the device must already be added to this context.
 * Return: new file descriptor on success, -errno on failure.
 * Availability: When attached to container
 */
#define VFIO_GROUP_GET_DEVICE_FD	_IO(VFIO_TYPE, VFIO_BASE + 6)

/* --------------- IOCTLs for DEVICE file descriptors --------------- */

/**
 * VFIO_DEVICE_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 7,
 *						struct vfio_device_info)
 *
 * Retrieve information about the device.  Fills in provided
 * struct vfio_device_info.  Caller sets argsz.
 * Return: 0 on success, -errno on failure.
 */
struct vfio_device_info {
	__u32	argsz;
	__u32	flags;
#define VFIO_DEVICE_FLAGS_RESET	(1 << 0)	/* Device supports reset */
#define VFIO_DEVICE_FLAGS_PCI	(1 << 1)	/* vfio-pci device */
	__u32	num_regions;	/* Max region index + 1 */
	__u32	num_irqs;	/* Max IRQ index + 1 */
};
#define VFIO_DEVICE_GET_INFO		_IO(VFIO_TYPE, VFIO_BASE + 7)

/*
 * Vendor driver using Mediated device framework should provide device_api
 * attribute in supported type attribute groups. Device API string should be one
 * of the following corresponding to device flags in vfio_device_info structure.
 */

#define VFIO_DEVICE_API_PCI_STRING		"vfio-pci"
#define VFIO_DEVICE_API_PLATFORM_STRING		"vfio-platform"
#define VFIO_DEVICE_API_AMBA_STRING		"vfio-amba"

/**
 * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8,
 *				       struct vfio_region_info)
 *
 * Retrieve information about a device region.  Caller provides
 * struct vfio_region_info with index value set.  Caller sets argsz.
 * Implementation of region mapping is bus driver specific.  This is
 * intended to describe MMIO, I/O port, as well as bus specific
 * regions (ex. PCI config space).  Zero sized regions may be used
 * to describe unimplemented regions (ex. unimplemented PCI BARs).
 * Return: 0 on success, -errno on failure.
 */
struct vfio_region_info {
	__u32	argsz;
	__u32	flags;
#define VFIO_REGION_INFO_FLAG_READ	(1 << 0) /* Region supports read */
#define VFIO_REGION_INFO_FLAG_WRITE	(1 << 1) /* Region supports write */
#define VFIO_REGION_INFO_FLAG_MMAP	(1 << 2) /* Region supports mmap */
#define VFIO_REGION_INFO_FLAG_CAPS	(1 << 3) /* Info supports caps */
	__u32	index;		/* Region index */
	__u32	cap_offset;	/* Offset within info struct of first cap */
	__u64	size;		/* Region size (bytes) */
	__u64	offset;		/* Region offset from start of device fd */
};
#define VFIO_DEVICE_GET_REGION_INFO	_IO(VFIO_TYPE, VFIO_BASE + 8)

/*
 * The sparse mmap capability allows finer granularity of specifying areas
 * within a region with mmap support.  When specified, the user should only
 * mmap the offset ranges specified by the areas array.  mmaps outside of the
 * areas specified may fail (such as the range covering a PCI MSI-X table) or
 * may result in improper device behavior.
 *
 * The structures below define version 1 of this capability.
 */
#define VFIO_REGION_INFO_CAP_SPARSE_MMAP	1

struct vfio_region_sparse_mmap_area {
	__u64	offset;	/* Offset of mmap'able area within region */
	__u64	size;	/* Size of mmap'able area */
};

struct vfio_region_info_cap_sparse_mmap {
	struct vfio_info_cap_header header;
	__u32	nr_areas;
	__u32	reserved;
	struct vfio_region_sparse_mmap_area areas[];
};

/*
 * The device specific type capability allows regions unique to a specific
 * device or class of devices to be exposed.  This helps solve the problem for
 * vfio bus drivers of defining which region indexes correspond to which region
 * on the device, without needing to resort to static indexes, as done by
 * vfio-pci.  For instance, if we were to go back in time, we might remove
 * VFIO_PCI_VGA_REGION_INDEX and let vfio-pci simply define that all indexes
 * greater than or equal to VFIO_PCI_NUM_REGIONS are device specific and we'd
 * make a "VGA" device specific type to describe the VGA access space.  This
 * means that non-VGA devices wouldn't need to waste this index, and thus the
 * address space associated with it due to implementation of device file
 * descriptor offsets in vfio-pci.
 *
 * The current implementation is now part of the user ABI, so we can't use this
 * for VGA, but there are other upcoming use cases, such as opregions for Intel
 * IGD devices and framebuffers for vGPU devices.  We missed VGA, but we'll
 * use this for future additions.
 *
 * The structure below defines version 1 of this capability.
 */
#define VFIO_REGION_INFO_CAP_TYPE	2

struct vfio_region_info_cap_type {
	struct vfio_info_cap_header header;
	__u32 type;	/* global per bus driver */
	__u32 subtype;	/* type specific */
};

#define VFIO_REGION_TYPE_PCI_VENDOR_TYPE	(1 << 31)
#define VFIO_REGION_TYPE_PCI_VENDOR_MASK	(0xffff)

#define VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION	(1)

/**
 * VFIO_DEVICE_GET_IRQ_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 9,
 *				    struct vfio_irq_info)
 *
 * Retrieve information about a device IRQ.  Caller provides
 * struct vfio_irq_info with index value set.  Caller sets argsz.
 * Implementation of IRQ mapping is bus driver specific.  Indexes
 * using multiple IRQs are primarily intended to support MSI-like
 * interrupt blocks.  Zero count irq blocks may be used to describe
 * unimplemented interrupt types.
 *
 * The EVENTFD flag indicates the interrupt index supports eventfd based
 * signaling.
 *
 * The MASKABLE flags indicates the index supports MASK and UNMASK
 * actions described below.
 *
 * AUTOMASKED indicates that after signaling, the interrupt line is
 * automatically masked by VFIO and the user needs to unmask the line
 * to receive new interrupts.  This is primarily intended to distinguish
 * level triggered interrupts.
 *
 * The NORESIZE flag indicates that the interrupt lines within the index
 * are setup as a set and new subindexes cannot be enabled without first
 * disabling the entire index.  This is used for interrupts like PCI MSI
 * and MSI-X where the driver may only use a subset of the available
 * indexes, but VFIO needs to enable a specific number of vectors
 * upfront.  In the case of MSI-X, where the user can enable MSI-X and
 * then add and unmask vectors, it's up to userspace to make the decision
 * whether to allocate the maximum supported number of vectors or tear
 * down setup and incrementally increase the vectors as each is enabled.
 */
struct vfio_irq_info {
	__u32	argsz;
	__u32	flags;
#define VFIO_IRQ_INFO_EVENTFD		(1 << 0)
#define VFIO_IRQ_INFO_MASKABLE		(1 << 1)
#define VFIO_IRQ_INFO_AUTOMASKED	(1 << 2)
#define VFIO_IRQ_INFO_NORESIZE		(1 << 3)
	__u32	index;		/* IRQ index */
	__u32	count;		/* Number of IRQs within this index */
};
#define VFIO_DEVICE_GET_IRQ_INFO	_IO(VFIO_TYPE, VFIO_BASE + 9)

/**
 * VFIO_DEVICE_SET_IRQS - _IOW(VFIO_TYPE, VFIO_BASE + 10, struct vfio_irq_set)
 *
 * Set signaling, masking, and unmasking of interrupts.  Caller provides
 * struct vfio_irq_set with all fields set.  'start' and 'count' indicate
 * the range of subindexes being specified.
 *
 * The DATA flags specify the type of data provided.  If DATA_NONE, the
 * operation performs the specified action immediately on the specified
 * interrupt(s).  For example, to unmask AUTOMASKED interrupt [0,0]:
 * flags = (DATA_NONE|ACTION_UNMASK), index = 0, start = 0, count = 1.
 *
 * DATA_BOOL allows sparse support for the same on arrays of interrupts.
 * For example, to mask interrupts [0,1] and [0,3] (but not [0,2]):
 * flags = (DATA_BOOL|ACTION_MASK), index = 0, start = 1, count = 3,
 * data = {1,0,1}
 *
 * DATA_EVENTFD binds the specified ACTION to the provided __s32 eventfd.
 * A value of -1 can be used to either de-assign interrupts if already
 * assigned or skip un-assigned interrupts.  For example, to set an eventfd
 * to be trigger for interrupts [0,0] and [0,2]:
 * flags = (DATA_EVENTFD|ACTION_TRIGGER), index = 0, start = 0, count = 3,
 * data = {fd1, -1, fd2}
 * If index [0,1] is previously set, two count = 1 ioctls calls would be
 * required to set [0,0] and [0,2] without changing [0,1].
 *
 * Once a signaling mechanism is set, DATA_BOOL or DATA_NONE can be used
 * with ACTION_TRIGGER to perform kernel level interrupt loopback testing
 * from userspace (ie. simulate hardware triggering).
 *
 * Setting of an event triggering mechanism to userspace for ACTION_TRIGGER
 * enables the interrupt index for the device.  Individual subindex interrupts
 * can be disabled using the -1 value for DATA_EVENTFD or the index can be
 * disabled as a whole with: flags = (DATA_NONE|ACTION_TRIGGER), count = 0.
 *
 * Note that ACTION_[UN]MASK specify user->kernel signaling (irqfds) while
 * ACTION_TRIGGER specifies kernel->user signaling.
 */
struct vfio_irq_set {
	__u32	argsz;
	__u32	flags;
#define VFIO_IRQ_SET_DATA_NONE		(1 << 0) /* Data not present */
#define VFIO_IRQ_SET_DATA_BOOL		(1 << 1) /* Data is bool (u8) */
#define VFIO_IRQ_SET_DATA_EVENTFD	(1 << 2) /* Data is eventfd (s32) */
#define VFIO_IRQ_SET_ACTION_MASK	(1 << 3) /* Mask interrupt */
#define VFIO_IRQ_SET_ACTION_UNMASK	(1 << 4) /* Unmask interrupt */
#define VFIO_IRQ_SET_ACTION_TRIGGER	(1 << 5) /* Trigger interrupt */
	__u32	index;
	__u32	start;
	__u32	count;
	__u8	data[];
};
#define VFIO_DEVICE_SET_IRQS		_IO(VFIO_TYPE, VFIO_BASE + 10)

#define VFIO_IRQ_SET_DATA_TYPE_MASK	(VFIO_IRQ_SET_DATA_NONE | \
					 VFIO_IRQ_SET_DATA_BOOL | \
					 VFIO_IRQ_SET_DATA_EVENTFD)
#define VFIO_IRQ_SET_ACTION_TYPE_MASK	(VFIO_IRQ_SET_ACTION_MASK | \
					 VFIO_IRQ_SET_ACTION_UNMASK | \
					 VFIO_IRQ_SET_ACTION_TRIGGER)
/**
 * VFIO_DEVICE_RESET - _IO(VFIO_TYPE, VFIO_BASE + 11)
 *
 * Reset a device.
 */
#define VFIO_DEVICE_RESET		_IO(VFIO_TYPE, VFIO_BASE + 11)

/*
 * The VFIO-PCI bus driver makes use of the following fixed region and
 * IRQ index mapping.  Unimplemented regions return a size of zero.
 * Unimplemented IRQ types return a count of zero.
 */

enum {
	VFIO_PCI_BAR0_REGION_INDEX,
	VFIO_PCI_BAR1_REGION_INDEX,
	VFIO_PCI_BAR2_REGION_INDEX,
	VFIO_PCI_BAR3_REGION_INDEX,
	VFIO_PCI_BAR4_REGION_INDEX,
	VFIO_PCI_BAR5_REGION_INDEX,
	VFIO_PCI_ROM_REGION_INDEX,
	VFIO_PCI_CONFIG_REGION_INDEX,
	/*
	 * Expose VGA regions defined for PCI base class 03, subclass 00.
	 * This includes I/O port ranges 0x3b0 to 0x3bb and 0x3c0 to 0x3df
	 * as well as the MMIO range 0xa0000 to 0xbffff.  Each implemented
	 * range is found at it's identity mapped offset from the region
	 * offset, for example 0x3b0 is region_info.offset + 0x3b0.  Areas
	 * between described ranges are unimplemented.
	 */
	VFIO_PCI_VGA_REGION_INDEX,
	VFIO_PCI_NUM_REGIONS = 9 /* Fixed user ABI, region indexes >=9 use */
				 /* device specific cap to define content. */
};

enum {
	VFIO_PCI_INTX_IRQ_INDEX,
	VFIO_PCI_MSI_IRQ_INDEX,
	VFIO_PCI_MSIX_IRQ_INDEX,
	VFIO_PCI_ERR_IRQ_INDEX,
	VFIO_PCI_REQ_IRQ_INDEX,
	VFIO_PCI_NUM_IRQS
};

/**
 * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12,
 *					      struct vfio_pci_hot_reset_info)
 *
 * Return: 0 on success, -errno on failure:
 *	-enospc = insufficient buffer, -enodev = unsupported for device.
 */
struct vfio_pci_dependent_device {
	__u32	group_id;
	__u16	segment;
	__u8	bus;
	__u8	devfn; /* Use PCI_SLOT/PCI_FUNC */
};

struct vfio_pci_hot_reset_info {
	__u32	argsz;
	__u32	flags;
	__u32	count;
	struct vfio_pci_dependent_device	devices[];
};

#define VFIO_DEVICE_GET_PCI_HOT_RESET_INFO	_IO(VFIO_TYPE, VFIO_BASE + 12)

/**
 * VFIO_DEVICE_PCI_HOT_RESET - _IOW(VFIO_TYPE, VFIO_BASE + 13,
 *				    struct vfio_pci_hot_reset)
 *
 * Return: 0 on success, -errno on failure.
 */
struct vfio_pci_hot_reset {
	__u32	argsz;
	__u32	flags;
	__u32	count;
	__s32	group_fds[];
};

#define VFIO_DEVICE_PCI_HOT_RESET	_IO(VFIO_TYPE, VFIO_BASE + 13)

/**
 * VFIO_DEVICE_QUERY_GFX_PLANE - _IOW(VFIO_TYPE, VFIO_BASE + 14,
 *                                    struct vfio_device_query_gfx_plane)
 *
 * Set the drm_plane_type and flags, then retrieve the gfx plane info.
 *
 * flags supported:
 * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_DMABUF are set
 *   to ask if the mdev supports dma-buf. 0 on support, -EINVAL on no
 *   support for dma-buf.
 * - VFIO_GFX_PLANE_TYPE_PROBE and VFIO_GFX_PLANE_TYPE_REGION are set
 *   to ask if the mdev supports region. 0 on support, -EINVAL on no
 *   support for region.
 * - VFIO_GFX_PLANE_TYPE_DMABUF or VFIO_GFX_PLANE_TYPE_REGION is set
 *   with each call to query the plane info.
 * - Others are invalid and return -EINVAL.
 *
 * Note:
 * 1. Plane could be disabled by guest. In that case, success will be
 *    returned with zero-initialized drm_format, size, width and height
 *    fields.
 * 2. x_hot/y_hot is set to 0xFFFFFFFF if no hotspot information available
 *
 * Return: 0 on success, -errno on other failure.
 */
struct vfio_device_gfx_plane_info {
	__u32 argsz;
	__u32 flags;
#define VFIO_GFX_PLANE_TYPE_PROBE (1 << 0)
#define VFIO_GFX_PLANE_TYPE_DMABUF (1 << 1)
#define VFIO_GFX_PLANE_TYPE_REGION (1 << 2)
	/* in */
	__u32 drm_plane_type;	/* type of plane: DRM_PLANE_TYPE_* */
	/* out */
	__u32 drm_format;	/* drm format of plane */
	__u64 drm_format_mod;   /* tiled mode */
	__u32 width;	/* width of plane */
	__u32 height;	/* height of plane */
	__u32 stride;	/* stride of plane */
	__u32 size;	/* size of plane in bytes, align on page*/
	__u32 x_pos;	/* horizontal position of cursor plane */
	__u32 y_pos;	/* vertical position of cursor plane*/
	__u32 x_hot;    /* horizontal position of cursor hotspot */
	__u32 y_hot;    /* vertical position of cursor hotspot */
	union {
		__u32 region_index;	/* region index */
		__u32 dmabuf_id;	/* dma-buf id */
	};
};

#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14)

/**
 * VFIO_DEVICE_GET_GFX_DMABUF - _IOW(VFIO_TYPE, VFIO_BASE + 15, __u32)
 *
 * Return a new dma-buf file descriptor for an exposed guest framebuffer
 * described by the provided dmabuf_id. The dmabuf_id is returned from VFIO_
 * DEVICE_QUERY_GFX_PLANE as a token of the exposed guest framebuffer.
 */

#define VFIO_DEVICE_GET_GFX_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 15)

/* -------- API for Type1 VFIO IOMMU -------- */

/**
 * VFIO_IOMMU_GET_INFO - _IOR(VFIO_TYPE, VFIO_BASE + 12, struct vfio_iommu_info)
 *
 * Retrieve information about the IOMMU object. Fills in provided
 * struct vfio_iommu_info. Caller sets argsz.
 *
 * XXX Should we do these by CHECK_EXTENSION too?
 */
struct vfio_iommu_type1_info {
	__u32	argsz;
	__u32	flags;
#define VFIO_IOMMU_INFO_PGSIZES (1 << 0)	/* supported page sizes info */
	__u64	iova_pgsizes;		/* Bitmap of supported page sizes */
};

#define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)

/**
 * VFIO_IOMMU_MAP_DMA - _IOW(VFIO_TYPE, VFIO_BASE + 13, struct vfio_dma_map)
 *
 * Map process virtual addresses to IO virtual addresses using the
 * provided struct vfio_dma_map. Caller sets argsz. READ &/ WRITE required.
 */
struct vfio_iommu_type1_dma_map {
	__u32	argsz;
	__u32	flags;
#define VFIO_DMA_MAP_FLAG_READ (1 << 0)		/* readable from device */
#define VFIO_DMA_MAP_FLAG_WRITE (1 << 1)	/* writable from device */
	__u64	vaddr;				/* Process virtual address */
	__u64	iova;				/* IO virtual address */
	__u64	size;				/* Size of mapping (bytes) */
};

#define VFIO_IOMMU_MAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 13)

/**
 * VFIO_IOMMU_UNMAP_DMA - _IOWR(VFIO_TYPE, VFIO_BASE + 14,
 *							struct vfio_dma_unmap)
 *
 * Unmap IO virtual addresses using the provided struct vfio_dma_unmap.
 * Caller sets argsz.  The actual unmapped size is returned in the size
 * field.  No guarantee is made to the user that arbitrary unmaps of iova
 * or size different from those used in the original mapping call will
 * succeed.
 */
struct vfio_iommu_type1_dma_unmap {
	__u32	argsz;
	__u32	flags;
	__u64	iova;				/* IO virtual address */
	__u64	size;				/* Size of mapping (bytes) */
};

#define VFIO_IOMMU_UNMAP_DMA _IO(VFIO_TYPE, VFIO_BASE + 14)

/*
 * IOCTLs to enable/disable IOMMU container usage.
 * No parameters are supported.
 */
#define VFIO_IOMMU_ENABLE	_IO(VFIO_TYPE, VFIO_BASE + 15)
#define VFIO_IOMMU_DISABLE	_IO(VFIO_TYPE, VFIO_BASE + 16)

/* -------- Additional API for SPAPR TCE (Server POWERPC) IOMMU -------- */

/*
 * The SPAPR TCE DDW info struct provides the information about
 * the details of Dynamic DMA window capability.
 *
 * @pgsizes contains a page size bitmask, 4K/64K/16M are supported.
 * @max_dynamic_windows_supported tells the maximum number of windows
 * which the platform can create.
 * @levels tells the maximum number of levels in multi-level IOMMU tables;
 * this allows splitting a table into smaller chunks which reduces
 * the amount of physically contiguous memory required for the table.
 */
struct vfio_iommu_spapr_tce_ddw_info {
	__u64 pgsizes;			/* Bitmap of supported page sizes */
	__u32 max_dynamic_windows_supported;
	__u32 levels;
};

/*
 * The SPAPR TCE info struct provides the information about the PCI bus
 * address ranges available for DMA, these values are programmed into
 * the hardware so the guest has to know that information.
 *
 * The DMA 32 bit window start is an absolute PCI bus address.
 * The IOVA address passed via map/unmap ioctls are absolute PCI bus
 * addresses too so the window works as a filter rather than an offset
 * for IOVA addresses.
 *
 * Flags supported:
 * - VFIO_IOMMU_SPAPR_INFO_DDW: informs the userspace that dynamic DMA windows
 *   (DDW) support is present. @ddw is only supported when DDW is present.
 */
struct vfio_iommu_spapr_tce_info {
	__u32 argsz;
	__u32 flags;
#define VFIO_IOMMU_SPAPR_INFO_DDW	(1 << 0)	/* DDW supported */
	__u32 dma32_window_start;	/* 32 bit window start (bytes) */
	__u32 dma32_window_size;	/* 32 bit window size (bytes) */
	struct vfio_iommu_spapr_tce_ddw_info ddw;
};

#define VFIO_IOMMU_SPAPR_TCE_GET_INFO	_IO(VFIO_TYPE, VFIO_BASE + 12)

/*
 * EEH PE operation struct provides ways to:
 * - enable/disable EEH functionality;
 * - unfreeze IO/DMA for frozen PE;
 * - read PE state;
 * - reset PE;
 * - configure PE.
 */
struct vfio_eeh_pe_op {
	__u32 argsz;
	__u32 flags;
	__u32 op;
};

#define VFIO_EEH_PE_DISABLE		0	/* Disable EEH functionality */
#define VFIO_EEH_PE_ENABLE		1	/* Enable EEH functionality  */
#define VFIO_EEH_PE_UNFREEZE_IO		2	/* Enable IO for frozen PE   */
#define VFIO_EEH_PE_UNFREEZE_DMA	3	/* Enable DMA for frozen PE  */
#define VFIO_EEH_PE_GET_STATE		4	/* PE state retrieval        */
#define  VFIO_EEH_PE_STATE_NORMAL	0	/* PE in functional state    */
#define  VFIO_EEH_PE_STATE_RESET	1	/* PE reset in progress      */
#define  VFIO_EEH_PE_STATE_STOPPED	2	/* Stopped DMA and IO        */
#define  VFIO_EEH_PE_STATE_STOPPED_DMA	4	/* Stopped DMA only          */
#define  VFIO_EEH_PE_STATE_UNAVAIL	5	/* State unavailable         */
#define VFIO_EEH_PE_RESET_DEACTIVATE	5	/* Deassert PE reset         */
#define VFIO_EEH_PE_RESET_HOT		6	/* Assert hot reset          */
#define VFIO_EEH_PE_RESET_FUNDAMENTAL	7	/* Assert fundamental reset  */
#define VFIO_EEH_PE_CONFIGURE		8	/* PE configuration          */

#define VFIO_EEH_PE_OP			_IO(VFIO_TYPE, VFIO_BASE + 21)

/**
 * VFIO_IOMMU_SPAPR_REGISTER_MEMORY - _IOW(VFIO_TYPE, VFIO_BASE + 17, struct vfio_iommu_spapr_register_memory)
 *
 * Registers user space memory where DMA is allowed. It pins
 * user pages and does the locked memory accounting so
 * subsequent VFIO_IOMMU_MAP_DMA/VFIO_IOMMU_UNMAP_DMA calls
 * get faster.
 */
struct vfio_iommu_spapr_register_memory {
	__u32	argsz;
	__u32	flags;
	__u64	vaddr;				/* Process virtual address */
	__u64	size;				/* Size of mapping (bytes) */
};
#define VFIO_IOMMU_SPAPR_REGISTER_MEMORY	_IO(VFIO_TYPE, VFIO_BASE + 17)

/**
 * VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY - _IOW(VFIO_TYPE, VFIO_BASE + 18, struct vfio_iommu_spapr_register_memory)
 *
 * Unregisters user space memory registered with
 * VFIO_IOMMU_SPAPR_REGISTER_MEMORY.
 * Uses vfio_iommu_spapr_register_memory for parameters.
 */
#define VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY	_IO(VFIO_TYPE, VFIO_BASE + 18)

/**
 * VFIO_IOMMU_SPAPR_TCE_CREATE - _IOWR(VFIO_TYPE, VFIO_BASE + 19, struct vfio_iommu_spapr_tce_create)
 *
 * Creates an additional TCE table and programs it (sets a new DMA window)
 * to every IOMMU group in the container. It receives page shift, window
 * size and number of levels in the TCE table being created.
 *
 * It allocates and returns an offset on a PCI bus of the new DMA window.
 */
struct vfio_iommu_spapr_tce_create {
	__u32 argsz;
	__u32 flags;
	/* in */
	__u32 page_shift;
	__u64 window_size;
	__u32 levels;
	/* out */
	__u64 start_addr;
};
#define VFIO_IOMMU_SPAPR_TCE_CREATE	_IO(VFIO_TYPE, VFIO_BASE + 19)

/**
 * VFIO_IOMMU_SPAPR_TCE_REMOVE - _IOW(VFIO_TYPE, VFIO_BASE + 20, struct vfio_iommu_spapr_tce_remove)
 *
 * Unprograms a TCE table from all groups in the container and destroys it.
 * It receives a PCI bus offset as a window id.
 */
struct vfio_iommu_spapr_tce_remove {
	__u32 argsz;
	__u32 flags;
	/* in */
	__u64 start_addr;
};
#define VFIO_IOMMU_SPAPR_TCE_REMOVE	_IO(VFIO_TYPE, VFIO_BASE + 20)

/* ***************************************************************** */

#endif /* VFIO_H */

Filemanager

Name Type Size Permission Actions
byteorder Folder 0755
caif Folder 0755
can Folder 0755
dvb Folder 0755
hdlc Folder 0755
hsi Folder 0755
iio Folder 0755
isdn 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
spi Folder 0755
sunrpc Folder 0755
tc_act Folder 0755
tc_ematch Folder 0755
usb Folder 0755
wimax Folder 0755
a.out.h File 7.15 KB 0644
acct.h File 3.58 KB 0644
adb.h File 1.05 KB 0644
adfs_fs.h File 873 B 0644
affs_hardblocks.h File 1.45 KB 0644
agpgart.h File 3.83 KB 0644
aio_abi.h File 3.1 KB 0644
apm_bios.h File 3.46 KB 0644
arcfb.h File 150 B 0644
atalk.h File 960 B 0644
atm.h File 7.64 KB 0644
atm_eni.h File 585 B 0644
atm_he.h File 343 B 0644
atm_idt77105.h File 892 B 0644
atm_nicstar.h File 1.19 KB 0644
atm_tcp.h File 1.52 KB 0644
atm_zatm.h File 1.57 KB 0644
atmapi.h File 889 B 0644
atmarp.h File 1.2 KB 0644
atmbr2684.h File 3.13 KB 0644
atmclip.h File 513 B 0644
atmdev.h File 7.44 KB 0644
atmioc.h File 1.55 KB 0644
atmlec.h File 2.26 KB 0644
atmmpc.h File 4.07 KB 0644
atmppp.h File 576 B 0644
atmsap.h File 4.79 KB 0644
atmsvc.h File 1.75 KB 0644
audit.h File 18.03 KB 0644
auto_fs.h File 2.53 KB 0644
auto_fs4.h File 4.3 KB 0644
auxvec.h File 1.4 KB 0644
ax25.h File 2.7 KB 0644
b1lli.h File 1.62 KB 0644
baycom.h File 820 B 0644
bfs_fs.h File 1.79 KB 0644
binfmts.h File 565 B 0644
blkpg.h File 1.53 KB 0644
blktrace_api.h File 4.38 KB 0644
bpf.h File 22.04 KB 0644
bpf_common.h File 1.2 KB 0644
bpf_perf_event.h File 453 B 0644
bpqether.h File 952 B 0644
bsg.h File 2.37 KB 0644
bt-bmc.h File 508 B 0644
btrfs.h File 25.07 KB 0644
can.h File 5.46 KB 0644
capability.h File 11.25 KB 0644
capi.h File 2.99 KB 0644
cciss_defs.h File 3.14 KB 0644
cciss_ioctl.h File 2.63 KB 0644
cdrom.h File 28.12 KB 0644
cgroupstats.h File 2.1 KB 0644
chio.h File 5.16 KB 0644
cm4000_cs.h File 1.68 KB 0644
cn_proc.h File 3.19 KB 0644
coda.h File 17.09 KB 0644
coda_psdev.h File 720 B 0644
coff.h File 12.12 KB 0644
connector.h File 2.14 KB 0644
const.h File 673 B 0644
cramfs_fs.h File 2.68 KB 0644
cuda.h File 842 B 0644
cyclades.h File 16.65 KB 0644
cycx_cfm.h File 2.86 KB 0644
dcbnl.h File 24.5 KB 0644
dccp.h File 6.22 KB 0644
devlink.h File 9.66 KB 0644
dlm.h File 2.43 KB 0644
dlm_device.h File 2.42 KB 0644
dlm_netlink.h File 1.04 KB 0644
dlm_plock.h File 831 B 0644
dlmconstants.h File 4.9 KB 0644
dm-ioctl.h File 10.55 KB 0644
dm-log-userspace.h File 14.82 KB 0644
dn.h File 4.42 KB 0644
dqblk_xfs.h File 8.72 KB 0644
edd.h File 5.41 KB 0644
efs_fs_sb.h File 2.11 KB 0644
elf-em.h File 1.83 KB 0644
elf-fdpic.h File 1.04 KB 0644
elf.h File 12.69 KB 0644
elfcore.h File 2.86 KB 0644
errno.h File 23 B 0644
errqueue.h File 1.1 KB 0644
ethtool.h File 71.11 KB 0644
eventpoll.h File 1.76 KB 0644
fadvise.h File 779 B 0644
falloc.h File 2.72 KB 0644
fanotify.h File 3.52 KB 0644
fb.h File 16 KB 0644
fcntl.h File 2.16 KB 0644
fd.h File 11.31 KB 0644
fdreg.h File 5.23 KB 0644
fib_rules.h File 1.58 KB 0644
fiemap.h File 2.65 KB 0644
filter.h File 1.99 KB 0644
firewire-cdev.h File 42.86 KB 0644
firewire-constants.h File 3.16 KB 0644
flat.h File 2.04 KB 0644
fou.h File 617 B 0644
fs.h File 8.47 KB 0644
fsl_hypervisor.h File 7.05 KB 0644
fuse.h File 16.41 KB 0644
futex.h File 4.81 KB 0644
gameport.h File 834 B 0644
gen_stats.h File 1.5 KB 0644
genetlink.h File 1.82 KB 0644
gfs2_ondisk.h File 12 KB 0644
gigaset_dev.h File 1.35 KB 0644
hdlc.h File 574 B 0644
hdlcdrv.h File 2.78 KB 0644
hdreg.h File 22.11 KB 0644
hid.h File 1.79 KB 0644
hiddev.h File 6.13 KB 0644
hidraw.h File 1.41 KB 0644
hpet.h File 680 B 0644
hw_breakpoint.h File 679 B 0644
hyperv.h File 10.22 KB 0644
hysdn_if.h File 1.29 KB 0644
i2c-dev.h File 2.37 KB 0644
i2c.h File 6.66 KB 0644
i2o-dev.h File 11.22 KB 0644
i8k.h File 1.4 KB 0644
icmp.h File 2.82 KB 0644
icmpv6.h File 3.82 KB 0644
if.h File 9.26 KB 0644
if_addr.h File 1.7 KB 0644
if_addrlabel.h File 658 B 0644
if_alg.h File 816 B 0644
if_arcnet.h File 3.63 KB 0644
if_arp.h File 6.3 KB 0644
if_bonding.h File 4.66 KB 0644
if_bridge.h File 6.46 KB 0644
if_cablemodem.h File 922 B 0644
if_eql.h File 1.26 KB 0644
if_ether.h File 7.25 KB 0644
if_fc.h File 1.63 KB 0644
if_fddi.h File 3.6 KB 0644
if_frad.h File 2.89 KB 0644
if_hippi.h File 4.07 KB 0644
if_infiniband.h File 1.13 KB 0644
if_link.h File 19.58 KB 0644
if_ltalk.h File 147 B 0644
if_macsec.h File 5.42 KB 0644
if_packet.h File 7.15 KB 0644
if_phonet.h File 361 B 0644
if_plip.h File 596 B 0644
if_ppp.h File 29 B 0644
if_pppol2tp.h File 3.18 KB 0644
if_pppox.h File 4.64 KB 0644
if_slip.h File 809 B 0644
if_team.h File 2.48 KB 0644
if_tun.h File 3.71 KB 0644
if_tunnel.h File 3.03 KB 0644
if_vlan.h File 1.69 KB 0644
if_x25.h File 817 B 0644
ife.h File 288 B 0644
igmp.h File 2.88 KB 0644
in.h File 9.36 KB 0644
in6.h File 6.97 KB 0644
in_route.h File 873 B 0644
inet_diag.h File 2.77 KB 0644
inotify.h File 2.85 KB 0644
input.h File 32.52 KB 0644
ioctl.h File 100 B 0644
ip.h File 3.47 KB 0644
ip6_tunnel.h File 1.67 KB 0644
ip_vs.h File 12.77 KB 0644
ipc.h File 1.99 KB 0644
ipmi.h File 14.63 KB 0644
ipmi_msgdefs.h File 3.21 KB 0644
ipsec.h File 884 B 0644
ipv6.h File 3.66 KB 0644
ipv6_route.h File 1.73 KB 0644
ipx.h File 1.79 KB 0644
irda.h File 7.31 KB 0644
irqnr.h File 104 B 0644
isdn.h File 5.58 KB 0644
isdn_divertif.h File 1.11 KB 0644
isdn_ppp.h File 1.82 KB 0644
isdnif.h File 2.25 KB 0644
iso_fs.h File 6.29 KB 0644
ivtv.h File 2.89 KB 0644
ivtvfb.h File 1.12 KB 0644
ixjuser.h File 24.53 KB 0644
jffs2.h File 6.85 KB 0644
joystick.h File 3.5 KB 0644
kd.h File 6.04 KB 0644
kdev_t.h File 320 B 0644
kernel-page-flags.h File 788 B 0644
kernel.h File 375 B 0644
kernelcapi.h File 956 B 0644
kexec.h File 1.92 KB 0644
keyboard.h File 12.42 KB 0644
keyctl.h File 2.98 KB 0644
kvm.h File 33.89 KB 0644
kvm_para.h File 819 B 0644
l2tp.h File 4.98 KB 0644
libc-compat.h File 4.03 KB 0644
limits.h File 874 B 0644
llc.h File 2.98 KB 0644
loop.h File 2.31 KB 0644
lp.h File 3.72 KB 0644
lwtunnel.h File 839 B 0644
magic.h File 2.9 KB 0644
major.h File 4.48 KB 0644
map_to_7segment.h File 7.02 KB 0644
matroxfb.h File 1.37 KB 0644
mdio.h File 13.74 KB 0644
media.h File 3.5 KB 0644
mei.h File 4.62 KB 0644
membarrier.h File 7.71 KB 0644
memfd.h File 186 B 0644
mempolicy.h File 2.35 KB 0644
meye.h File 2.41 KB 0644
mii.h File 7.76 KB 0644
minix_fs.h File 2.01 KB 0644
mman.h File 230 B 0644
mmtimer.h File 2.01 KB 0644
mpls.h File 1.33 KB 0644
mqueue.h File 2.01 KB 0644
mroute.h File 4.06 KB 0644
mroute6.h File 4.08 KB 0644
msdos_fs.h File 6.28 KB 0644
msg.h File 3.21 KB 0644
mtio.h File 7.92 KB 0644
n_r3964.h File 2.29 KB 0644
nbd.h File 2.34 KB 0644
ncp.h File 4.94 KB 0644
ncp_fs.h File 3.27 KB 0644
ncp_mount.h File 2.06 KB 0644
ncp_no.h File 651 B 0644
ndctl.h File 6.6 KB 0644
neighbour.h File 4.17 KB 0644
net.h File 1.97 KB 0644
net_dropmon.h File 1.07 KB 0644
net_namespace.h File 609 B 0644
net_tstamp.h File 4.06 KB 0644
netconf.h File 423 B 0644
netdevice.h File 1.46 KB 0644
netfilter.h File 1.6 KB 0644
netfilter_arp.h File 380 B 0644
netfilter_bridge.h File 768 B 0644
netfilter_decnet.h File 1.83 KB 0644
netfilter_ipv4.h File 2.02 KB 0644
netfilter_ipv6.h File 2.04 KB 0644
netlink.h File 6.13 KB 0644
netlink_diag.h File 1005 B 0644
netrom.h File 744 B 0644
nfc.h File 7.72 KB 0644
nfs.h File 4.31 KB 0644
nfs2.h File 1.37 KB 0644
nfs3.h File 2.24 KB 0644
nfs4.h File 5.95 KB 0644
nfs4_mount.h File 1.83 KB 0644
nfs_fs.h File 1.51 KB 0644
nfs_idmap.h File 2.19 KB 0644
nfs_mount.h File 2.32 KB 0644
nfsacl.h File 605 B 0644
nl80211.h File 270.89 KB 0644
nubus.h File 8.17 KB 0644
nvme_ioctl.h File 1.55 KB 0644
nvram.h File 469 B 0644
omap3isp.h File 20.19 KB 0644
omapfb.h File 5.72 KB 0644
oom.h File 448 B 0644
openvswitch.h File 31.79 KB 0644
packet_diag.h File 1.5 KB 0644
param.h File 78 B 0644
parport.h File 3.56 KB 0644
patchkey.h File 829 B 0644
pci.h File 1.29 KB 0644
pci_regs.h File 50.79 KB 0644
perf_event.h File 31.96 KB 0644
personality.h File 1.99 KB 0644
pfkeyv2.h File 9.91 KB 0644
pg.h File 2.23 KB 0644
phantom.h File 1.55 KB 0644
phonet.h File 4.51 KB 0644
pkt_cls.h File 12.49 KB 0644
pkt_sched.h File 20.63 KB 0644
pktcdvd.h File 2.56 KB 0644
pmu.h File 5.13 KB 0644
poll.h File 22 B 0644
posix_types.h File 1.01 KB 0644
ppdev.h File 3.07 KB 0644
ppp-comp.h File 2.41 KB 0644
ppp-ioctl.h File 5.29 KB 0644
ppp_defs.h File 4.93 KB 0644
pps.h File 4.06 KB 0644
prctl.h File 6.75 KB 0644
psample.h File 735 B 0644
ptp_clock.h File 5.09 KB 0644
ptrace.h File 3.08 KB 0644
qnx4_fs.h File 2.21 KB 0644
qnxtypes.h File 561 B 0644
quota.h File 5.78 KB 0644
radeonfb.h File 297 B 0644
random.h File 1.2 KB 0644
raw.h File 302 B 0644
rds.h File 7.9 KB 0644
reboot.h File 1.25 KB 0644
reiserfs_fs.h File 712 B 0644
reiserfs_xattr.h File 470 B 0644
resource.h File 2.09 KB 0644
rfkill.h File 3.5 KB 0644
romfs_fs.h File 1.15 KB 0644
rose.h File 2.12 KB 0644
route.h File 2.21 KB 0644
rtc.h File 3.85 KB 0644
rtnetlink.h File 17.02 KB 0644
scc.h File 4.43 KB 0644
sched.h File 2.26 KB 0644
screen_info.h File 2.36 KB 0644
sctp.h File 29.53 KB 0644
sdla.h File 2.71 KB 0644
seccomp.h File 1.83 KB 0644
securebits.h File 2.58 KB 0644
selinux_netlink.h File 1.11 KB 0644
sem.h File 2.54 KB 0644
serial.h File 3.04 KB 0644
serial_core.h File 5.11 KB 0644
serial_reg.h File 15.66 KB 0644
serio.h File 1.81 KB 0644
shm.h File 2.19 KB 0644
signal.h File 171 B 0644
signalfd.h File 1.07 KB 0644
snmp.h File 12.42 KB 0644
sock_diag.h File 431 B 0644
socket.h File 738 B 0644
sockios.h File 5.83 KB 0644
som.h File 5.35 KB 0644
sonet.h File 2.17 KB 0644
sonypi.h File 5.12 KB 0644
sound.h File 1.15 KB 0644
soundcard.h File 44.96 KB 0644
stat.h File 1 KB 0644
stddef.h File 1 B 0644
string.h File 175 B 0644
suspend_ioctls.h File 1.34 KB 0644
swab.h File 6.36 KB 0644
synclink.h File 8.71 KB 0644
sysctl.h File 25.46 KB 0644
sysinfo.h File 986 B 0644
target_core_user.h File 3.65 KB 0644
taskstats.h File 6.83 KB 0644
tcp.h File 5.93 KB 0644
tcp_metrics.h File 1.45 KB 0644
telephony.h File 8.84 KB 0644
termios.h File 443 B 0644
time.h File 1.54 KB 0644
times.h File 215 B 0644
timex.h File 6.17 KB 0644
tiocl.h File 1.63 KB 0644
tipc.h File 5.44 KB 0644
tipc_config.h File 14.1 KB 0644
toshiba.h File 1.24 KB 0644
tty.h File 1.33 KB 0644
tty_flags.h File 3.66 KB 0644
types.h File 1.4 KB 0644
udf_fs_i.h File 634 B 0644
udp.h File 1.28 KB 0644
uhid.h File 2.15 KB 0644
uinput.h File 5 KB 0644
uio.h File 668 B 0644
ultrasound.h File 4.39 KB 0644
un.h File 239 B 0644
unistd.h File 157 B 0644
unix_diag.h File 1.1 KB 0644
usbdevice_fs.h File 6.78 KB 0644
userfaultfd.h File 6.59 KB 0644
utime.h File 152 B 0644
utsname.h File 606 B 0644
uuid.h File 1.5 KB 0644
uvcvideo.h File 1.6 KB 0644
v4l2-common.h File 2.38 KB 0644
v4l2-controls.h File 37.34 KB 0644
v4l2-dv-timings.h File 25.75 KB 0644
v4l2-mediabus.h File 4.55 KB 0644
v4l2-subdev.h File 5.27 KB 0644
version.h File 332 B 0644
veth.h File 161 B 0644
vfio.h File 26.54 KB 0644
vhost.h File 7.13 KB 0644
videodev2.h File 67.36 KB 0644
virtio_9p.h File 1.99 KB 0644
virtio_balloon.h File 3.71 KB 0644
virtio_blk.h File 5.2 KB 0644
virtio_config.h File 3.34 KB 0644
virtio_console.h File 2.94 KB 0644
virtio_gpu.h File 8.23 KB 0644
virtio_ids.h File 2.32 KB 0644
virtio_input.h File 2.45 KB 0644
virtio_net.h File 9.5 KB 0644
virtio_pci.h File 6.63 KB 0644
virtio_ring.h File 6.18 KB 0644
virtio_rng.h File 265 B 0644
virtio_scsi.h File 5.13 KB 0644
virtio_types.h File 2.11 KB 0644
virtio_vsock.h File 3.01 KB 0644
vm_sockets.h File 5.13 KB 0644
vsockmon.h File 1.78 KB 0644
vt.h File 2.98 KB 0644
vtpm_proxy.h File 1.62 KB 0644
wait.h File 600 B 0644
wanrouter.h File 390 B 0644
watchdog.h File 2.22 KB 0644
wimax.h File 8.17 KB 0644
wireless.h File 41.65 KB 0644
wmi.h File 1.84 KB 0644
x25.h File 3.42 KB 0644
xattr.h File 2.53 KB 0644
xfrm.h File 11 KB 0644