You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
891 lines
32 KiB
891 lines
32 KiB
# mypy: ignore-errors
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# TARGET arch is: []
|
|
# WORD_SIZE is: 8
|
|
# POINTER_SIZE is: 8
|
|
# LONGDOUBLE_SIZE is: 16
|
|
#
|
|
import ctypes
|
|
|
|
|
|
from tinygrad.runtime.support.hcq import HWInterface
|
|
import functools
|
|
|
|
def _do_ioctl_io(__idir, __base, __nr, __fd:HWInterface, val=0, __len=0):
|
|
return __fd.ioctl((__idir<<30) | (__len<<16) | (__base<<8) | __nr, val)
|
|
|
|
def _do_ioctl(__idir, __base, __nr, __user_struct, __fd:HWInterface, __val=None, **kwargs):
|
|
ret = __fd.ioctl((__idir<<30) | (ctypes.sizeof(made := (__made or __user_struct(**kwargs)))<<16) | (__base<<8) | __nr, made)
|
|
if ret != 0: raise RuntimeError(f"ioctl returned {ret}")
|
|
return made
|
|
|
|
def _IO(base, nr): return functools.partial(_do_ioctl_io, 0, ord(base) if isinstance(base, str) else base, nr)
|
|
def _IOW(base, nr, type): return functools.partial(_do_ioctl, 1, ord(base) if isinstance(base, str) else base, nr, type)
|
|
def _IOR(base, nr, type): return functools.partial(_do_ioctl, 2, ord(base) if isinstance(base, str) else base, nr, type)
|
|
def _IOWR(base, nr, type): return functools.partial(_do_ioctl, 3, ord(base) if isinstance(base, str) else base, nr, type)
|
|
|
|
class AsDictMixin:
|
|
@classmethod
|
|
def as_dict(cls, self):
|
|
result = {}
|
|
if not isinstance(self, AsDictMixin):
|
|
# not a structure, assume it's already a python object
|
|
return self
|
|
if not hasattr(cls, "_fields_"):
|
|
return result
|
|
# sys.version_info >= (3, 5)
|
|
# for (field, *_) in cls._fields_: # noqa
|
|
for field_tuple in cls._fields_: # noqa
|
|
field = field_tuple[0]
|
|
if field.startswith('PADDING_'):
|
|
continue
|
|
value = getattr(self, field)
|
|
type_ = type(value)
|
|
if hasattr(value, "_length_") and hasattr(value, "_type_"):
|
|
# array
|
|
if not hasattr(type_, "as_dict"):
|
|
value = [v for v in value]
|
|
else:
|
|
type_ = type_._type_
|
|
value = [type_.as_dict(v) for v in value]
|
|
elif hasattr(value, "contents") and hasattr(value, "_type_"):
|
|
# pointer
|
|
try:
|
|
if not hasattr(type_, "as_dict"):
|
|
value = value.contents
|
|
else:
|
|
type_ = type_._type_
|
|
value = type_.as_dict(value.contents)
|
|
except ValueError:
|
|
# nullptr
|
|
value = None
|
|
elif isinstance(value, AsDictMixin):
|
|
# other structure
|
|
value = type_.as_dict(value)
|
|
result[field] = value
|
|
return result
|
|
|
|
|
|
class Structure(ctypes.Structure, AsDictMixin):
|
|
|
|
def __init__(self, *args, **kwds):
|
|
# We don't want to use positional arguments fill PADDING_* fields
|
|
|
|
args = dict(zip(self.__class__._field_names_(), args))
|
|
args.update(kwds)
|
|
super(Structure, self).__init__(**args)
|
|
|
|
@classmethod
|
|
def _field_names_(cls):
|
|
if hasattr(cls, '_fields_'):
|
|
return (f[0] for f in cls._fields_ if not f[0].startswith('PADDING'))
|
|
else:
|
|
return ()
|
|
|
|
@classmethod
|
|
def get_type(cls, field):
|
|
for f in cls._fields_:
|
|
if f[0] == field:
|
|
return f[1]
|
|
return None
|
|
|
|
@classmethod
|
|
def bind(cls, bound_fields):
|
|
fields = {}
|
|
for name, type_ in cls._fields_:
|
|
if hasattr(type_, "restype"):
|
|
if name in bound_fields:
|
|
if bound_fields[name] is None:
|
|
fields[name] = type_()
|
|
else:
|
|
# use a closure to capture the callback from the loop scope
|
|
fields[name] = (
|
|
type_((lambda callback: lambda *args: callback(*args))(
|
|
bound_fields[name]))
|
|
)
|
|
del bound_fields[name]
|
|
else:
|
|
# default callback implementation (does nothing)
|
|
try:
|
|
default_ = type_(0).restype().value
|
|
except TypeError:
|
|
default_ = None
|
|
fields[name] = type_((
|
|
lambda default_: lambda *args: default_)(default_))
|
|
else:
|
|
# not a callback function, use default initialization
|
|
if name in bound_fields:
|
|
fields[name] = bound_fields[name]
|
|
del bound_fields[name]
|
|
else:
|
|
fields[name] = type_()
|
|
if len(bound_fields) != 0:
|
|
raise ValueError(
|
|
"Cannot bind the following unknown callback(s) {}.{}".format(
|
|
cls.__name__, bound_fields.keys()
|
|
))
|
|
return cls(**fields)
|
|
|
|
|
|
class Union(ctypes.Union, AsDictMixin):
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
VFIO_H = True # macro
|
|
VFIO_API_VERSION = 0 # macro
|
|
VFIO_TYPE1_IOMMU = 1 # macro
|
|
VFIO_SPAPR_TCE_IOMMU = 2 # macro
|
|
VFIO_TYPE1v2_IOMMU = 3 # macro
|
|
VFIO_DMA_CC_IOMMU = 4 # macro
|
|
VFIO_EEH = 5 # macro
|
|
VFIO_TYPE1_NESTING_IOMMU = 6 # macro
|
|
VFIO_SPAPR_TCE_v2_IOMMU = 7 # macro
|
|
VFIO_NOIOMMU_IOMMU = 8 # macro
|
|
VFIO_UNMAP_ALL = 9 # macro
|
|
VFIO_UPDATE_VADDR = 10 # macro
|
|
VFIO_TYPE = (';') # macro
|
|
VFIO_BASE = 100 # macro
|
|
VFIO_GET_API_VERSION = _IO ( ( ';' ) , 100 + 0 ) # macro (from list)
|
|
VFIO_CHECK_EXTENSION = _IO ( ( ';' ) , 100 + 1 ) # macro (from list)
|
|
VFIO_SET_IOMMU = _IO ( ( ';' ) , 100 + 2 ) # macro (from list)
|
|
VFIO_GROUP_FLAGS_VIABLE = (1<<0) # macro
|
|
VFIO_GROUP_FLAGS_CONTAINER_SET = (1<<1) # macro
|
|
VFIO_GROUP_GET_STATUS = _IO ( ( ';' ) , 100 + 3 ) # macro (from list)
|
|
VFIO_GROUP_SET_CONTAINER = _IO ( ( ';' ) , 100 + 4 ) # macro (from list)
|
|
VFIO_GROUP_UNSET_CONTAINER = _IO ( ( ';' ) , 100 + 5 ) # macro (from list)
|
|
VFIO_GROUP_GET_DEVICE_FD = _IO ( ( ';' ) , 100 + 6 ) # macro (from list)
|
|
VFIO_DEVICE_FLAGS_RESET = (1<<0) # macro
|
|
VFIO_DEVICE_FLAGS_PCI = (1<<1) # macro
|
|
VFIO_DEVICE_FLAGS_PLATFORM = (1<<2) # macro
|
|
VFIO_DEVICE_FLAGS_AMBA = (1<<3) # macro
|
|
VFIO_DEVICE_FLAGS_CCW = (1<<4) # macro
|
|
VFIO_DEVICE_FLAGS_AP = (1<<5) # macro
|
|
VFIO_DEVICE_FLAGS_FSL_MC = (1<<6) # macro
|
|
VFIO_DEVICE_FLAGS_CAPS = (1<<7) # macro
|
|
VFIO_DEVICE_GET_INFO = _IO ( ( ';' ) , 100 + 7 ) # macro (from list)
|
|
VFIO_DEVICE_API_PCI_STRING = "vfio-pci" # macro
|
|
VFIO_DEVICE_API_PLATFORM_STRING = "vfio-platform" # macro
|
|
VFIO_DEVICE_API_AMBA_STRING = "vfio-amba" # macro
|
|
VFIO_DEVICE_API_CCW_STRING = "vfio-ccw" # macro
|
|
VFIO_DEVICE_API_AP_STRING = "vfio-ap" # macro
|
|
VFIO_DEVICE_INFO_CAP_ZPCI_BASE = 1 # macro
|
|
VFIO_DEVICE_INFO_CAP_ZPCI_GROUP = 2 # macro
|
|
VFIO_DEVICE_INFO_CAP_ZPCI_UTIL = 3 # macro
|
|
VFIO_DEVICE_INFO_CAP_ZPCI_PFIP = 4 # macro
|
|
VFIO_REGION_INFO_FLAG_READ = (1<<0) # macro
|
|
VFIO_REGION_INFO_FLAG_WRITE = (1<<1) # macro
|
|
VFIO_REGION_INFO_FLAG_MMAP = (1<<2) # macro
|
|
VFIO_REGION_INFO_FLAG_CAPS = (1<<3) # macro
|
|
VFIO_DEVICE_GET_REGION_INFO = _IO ( ( ';' ) , 100 + 8 ) # macro (from list)
|
|
VFIO_REGION_INFO_CAP_SPARSE_MMAP = 1 # macro
|
|
VFIO_REGION_INFO_CAP_TYPE = 2 # macro
|
|
VFIO_REGION_TYPE_PCI_VENDOR_TYPE = (1<<31) # macro
|
|
VFIO_REGION_TYPE_PCI_VENDOR_MASK = (0xffff) # macro
|
|
VFIO_REGION_TYPE_GFX = (1) # macro
|
|
VFIO_REGION_TYPE_CCW = (2) # macro
|
|
VFIO_REGION_TYPE_MIGRATION = (3) # macro
|
|
VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION = (1) # macro
|
|
VFIO_REGION_SUBTYPE_INTEL_IGD_HOST_CFG = (2) # macro
|
|
VFIO_REGION_SUBTYPE_INTEL_IGD_LPC_CFG = (3) # macro
|
|
VFIO_REGION_SUBTYPE_NVIDIA_NVLINK2_RAM = (1) # macro
|
|
VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD = (1) # macro
|
|
VFIO_REGION_SUBTYPE_GFX_EDID = (1) # macro
|
|
VFIO_DEVICE_GFX_LINK_STATE_UP = 1 # macro
|
|
VFIO_DEVICE_GFX_LINK_STATE_DOWN = 2 # macro
|
|
VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD = (1) # macro
|
|
VFIO_REGION_SUBTYPE_CCW_SCHIB = (2) # macro
|
|
VFIO_REGION_SUBTYPE_CCW_CRW = (3) # macro
|
|
VFIO_REGION_SUBTYPE_MIGRATION = (1) # macro
|
|
VFIO_DEVICE_STATE_STOP = (0) # macro
|
|
VFIO_DEVICE_STATE_RUNNING = (1<<0) # macro
|
|
VFIO_DEVICE_STATE_SAVING = (1<<1) # macro
|
|
VFIO_DEVICE_STATE_RESUMING = (1<<2) # macro
|
|
VFIO_DEVICE_STATE_MASK = ((1<<0)|(1<<1)|(1<<2)) # macro
|
|
# def VFIO_DEVICE_STATE_VALID(state): # macro
|
|
# return (state&(1<<2)?(state&((1<<0)|(1<<1)|(1<<2)))==(1<<2):1)
|
|
def VFIO_DEVICE_STATE_IS_ERROR(state): # macro
|
|
return ((state&((1<<0)|(1<<1)|(1<<2)))==((1<<1)|(1<<2)))
|
|
# def VFIO_DEVICE_STATE_SET_ERROR(state): # macro
|
|
# return ((state&~((1<<0)|(1<<1)|(1<<2)))|VFIO_DEVICE_SATE_SAVING|(1<<2))
|
|
VFIO_REGION_INFO_CAP_MSIX_MAPPABLE = 3 # macro
|
|
VFIO_REGION_INFO_CAP_NVLINK2_SSATGT = 4 # macro
|
|
VFIO_REGION_INFO_CAP_NVLINK2_LNKSPD = 5 # macro
|
|
VFIO_IRQ_INFO_EVENTFD = (1<<0) # macro
|
|
VFIO_IRQ_INFO_MASKABLE = (1<<1) # macro
|
|
VFIO_IRQ_INFO_AUTOMASKED = (1<<2) # macro
|
|
VFIO_IRQ_INFO_NORESIZE = (1<<3) # macro
|
|
VFIO_DEVICE_GET_IRQ_INFO = _IO ( ( ';' ) , 100 + 9 ) # macro (from list)
|
|
VFIO_IRQ_SET_DATA_NONE = (1<<0) # macro
|
|
VFIO_IRQ_SET_DATA_BOOL = (1<<1) # macro
|
|
VFIO_IRQ_SET_DATA_EVENTFD = (1<<2) # macro
|
|
VFIO_IRQ_SET_ACTION_MASK = (1<<3) # macro
|
|
VFIO_IRQ_SET_ACTION_UNMASK = (1<<4) # macro
|
|
VFIO_IRQ_SET_ACTION_TRIGGER = (1<<5) # macro
|
|
VFIO_DEVICE_SET_IRQS = _IO ( ( ';' ) , 100 + 10 ) # macro (from list)
|
|
VFIO_IRQ_SET_DATA_TYPE_MASK = ((1<<0)|(1<<1)|(1<<2)) # macro
|
|
VFIO_IRQ_SET_ACTION_TYPE_MASK = ((1<<3)|(1<<4)|(1<<5)) # macro
|
|
VFIO_DEVICE_RESET = _IO ( ( ';' ) , 100 + 11 ) # macro (from list)
|
|
VFIO_DEVICE_GET_PCI_HOT_RESET_INFO = _IO ( ( ';' ) , 100 + 12 ) # macro (from list)
|
|
VFIO_DEVICE_PCI_HOT_RESET = _IO ( ( ';' ) , 100 + 13 ) # macro (from list)
|
|
VFIO_GFX_PLANE_TYPE_PROBE = (1<<0) # macro
|
|
VFIO_GFX_PLANE_TYPE_DMABUF = (1<<1) # macro
|
|
VFIO_GFX_PLANE_TYPE_REGION = (1<<2) # macro
|
|
VFIO_DEVICE_QUERY_GFX_PLANE = _IO ( ( ';' ) , 100 + 14 ) # macro (from list)
|
|
VFIO_DEVICE_GET_GFX_DMABUF = _IO ( ( ';' ) , 100 + 15 ) # macro (from list)
|
|
VFIO_DEVICE_IOEVENTFD_8 = (1<<0) # macro
|
|
VFIO_DEVICE_IOEVENTFD_16 = (1<<1) # macro
|
|
VFIO_DEVICE_IOEVENTFD_32 = (1<<2) # macro
|
|
VFIO_DEVICE_IOEVENTFD_64 = (1<<3) # macro
|
|
VFIO_DEVICE_IOEVENTFD_SIZE_MASK = (0xf) # macro
|
|
VFIO_DEVICE_IOEVENTFD = _IO ( ( ';' ) , 100 + 16 ) # macro (from list)
|
|
VFIO_DEVICE_FEATURE_MASK = (0xffff) # macro
|
|
VFIO_DEVICE_FEATURE_GET = (1<<16) # macro
|
|
VFIO_DEVICE_FEATURE_SET = (1<<17) # macro
|
|
VFIO_DEVICE_FEATURE_PROBE = (1<<18) # macro
|
|
VFIO_DEVICE_FEATURE = _IO ( ( ';' ) , 100 + 17 ) # macro (from list)
|
|
VFIO_DEVICE_FEATURE_PCI_VF_TOKEN = (0) # macro
|
|
VFIO_IOMMU_INFO_PGSIZES = (1<<0) # macro
|
|
VFIO_IOMMU_INFO_CAPS = (1<<1) # macro
|
|
VFIO_IOMMU_TYPE1_INFO_CAP_IOVA_RANGE = 1 # macro
|
|
VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION = 2 # macro
|
|
VFIO_IOMMU_TYPE1_INFO_DMA_AVAIL = 3 # macro
|
|
VFIO_IOMMU_GET_INFO = _IO ( ( ';' ) , 100 + 12 ) # macro (from list)
|
|
VFIO_DMA_MAP_FLAG_READ = (1<<0) # macro
|
|
VFIO_DMA_MAP_FLAG_WRITE = (1<<1) # macro
|
|
VFIO_DMA_MAP_FLAG_VADDR = (1<<2) # macro
|
|
VFIO_IOMMU_MAP_DMA = _IO ( ( ';' ) , 100 + 13 ) # macro (from list)
|
|
VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP = (1<<0) # macro
|
|
VFIO_DMA_UNMAP_FLAG_ALL = (1<<1) # macro
|
|
VFIO_DMA_UNMAP_FLAG_VADDR = (1<<2) # macro
|
|
VFIO_IOMMU_UNMAP_DMA = _IO ( ( ';' ) , 100 + 14 ) # macro (from list)
|
|
VFIO_IOMMU_ENABLE = _IO ( ( ';' ) , 100 + 15 ) # macro (from list)
|
|
VFIO_IOMMU_DISABLE = _IO ( ( ';' ) , 100 + 16 ) # macro (from list)
|
|
VFIO_IOMMU_DIRTY_PAGES_FLAG_START = (1<<0) # macro
|
|
VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP = (1<<1) # macro
|
|
VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP = (1<<2) # macro
|
|
VFIO_IOMMU_DIRTY_PAGES = _IO ( ( ';' ) , 100 + 17 ) # macro (from list)
|
|
VFIO_IOMMU_SPAPR_INFO_DDW = (1<<0) # macro
|
|
VFIO_IOMMU_SPAPR_TCE_GET_INFO = _IO ( ( ';' ) , 100 + 12 ) # macro (from list)
|
|
VFIO_EEH_PE_DISABLE = 0 # macro
|
|
VFIO_EEH_PE_ENABLE = 1 # macro
|
|
VFIO_EEH_PE_UNFREEZE_IO = 2 # macro
|
|
VFIO_EEH_PE_UNFREEZE_DMA = 3 # macro
|
|
VFIO_EEH_PE_GET_STATE = 4 # macro
|
|
VFIO_EEH_PE_STATE_NORMAL = 0 # macro
|
|
VFIO_EEH_PE_STATE_RESET = 1 # macro
|
|
VFIO_EEH_PE_STATE_STOPPED = 2 # macro
|
|
VFIO_EEH_PE_STATE_STOPPED_DMA = 4 # macro
|
|
VFIO_EEH_PE_STATE_UNAVAIL = 5 # macro
|
|
VFIO_EEH_PE_RESET_DEACTIVATE = 5 # macro
|
|
VFIO_EEH_PE_RESET_HOT = 6 # macro
|
|
VFIO_EEH_PE_RESET_FUNDAMENTAL = 7 # macro
|
|
VFIO_EEH_PE_CONFIGURE = 8 # macro
|
|
VFIO_EEH_PE_INJECT_ERR = 9 # macro
|
|
VFIO_EEH_PE_OP = _IO ( ( ';' ) , 100 + 21 ) # macro (from list)
|
|
VFIO_IOMMU_SPAPR_REGISTER_MEMORY = _IO ( ( ';' ) , 100 + 17 ) # macro (from list)
|
|
VFIO_IOMMU_SPAPR_UNREGISTER_MEMORY = _IO ( ( ';' ) , 100 + 18 ) # macro (from list)
|
|
VFIO_IOMMU_SPAPR_TCE_CREATE = _IO ( ( ';' ) , 100 + 19 ) # macro (from list)
|
|
VFIO_IOMMU_SPAPR_TCE_REMOVE = _IO ( ( ';' ) , 100 + 20 ) # macro (from list)
|
|
class struct_vfio_info_cap_header(Structure):
|
|
pass
|
|
|
|
struct_vfio_info_cap_header._pack_ = 1 # source:False
|
|
struct_vfio_info_cap_header._fields_ = [
|
|
('id', ctypes.c_uint16),
|
|
('version', ctypes.c_uint16),
|
|
('next', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_group_status(Structure):
|
|
pass
|
|
|
|
struct_vfio_group_status._pack_ = 1 # source:False
|
|
struct_vfio_group_status._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_device_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_device_info._pack_ = 1 # source:False
|
|
struct_vfio_device_info._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('num_regions', ctypes.c_uint32),
|
|
('num_irqs', ctypes.c_uint32),
|
|
('cap_offset', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_region_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_region_info._pack_ = 1 # source:False
|
|
struct_vfio_region_info._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('index', ctypes.c_uint32),
|
|
('cap_offset', ctypes.c_uint32),
|
|
('size', ctypes.c_uint64),
|
|
('offset', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_region_sparse_mmap_area(Structure):
|
|
pass
|
|
|
|
struct_vfio_region_sparse_mmap_area._pack_ = 1 # source:False
|
|
struct_vfio_region_sparse_mmap_area._fields_ = [
|
|
('offset', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_region_info_cap_sparse_mmap(Structure):
|
|
pass
|
|
|
|
struct_vfio_region_info_cap_sparse_mmap._pack_ = 1 # source:False
|
|
struct_vfio_region_info_cap_sparse_mmap._fields_ = [
|
|
('header', struct_vfio_info_cap_header),
|
|
('nr_areas', ctypes.c_uint32),
|
|
('reserved', ctypes.c_uint32),
|
|
('areas', struct_vfio_region_sparse_mmap_area * 0),
|
|
]
|
|
|
|
class struct_vfio_region_info_cap_type(Structure):
|
|
pass
|
|
|
|
struct_vfio_region_info_cap_type._pack_ = 1 # source:False
|
|
struct_vfio_region_info_cap_type._fields_ = [
|
|
('header', struct_vfio_info_cap_header),
|
|
('type', ctypes.c_uint32),
|
|
('subtype', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_region_gfx_edid(Structure):
|
|
pass
|
|
|
|
struct_vfio_region_gfx_edid._pack_ = 1 # source:False
|
|
struct_vfio_region_gfx_edid._fields_ = [
|
|
('edid_offset', ctypes.c_uint32),
|
|
('edid_max_size', ctypes.c_uint32),
|
|
('edid_size', ctypes.c_uint32),
|
|
('max_xres', ctypes.c_uint32),
|
|
('max_yres', ctypes.c_uint32),
|
|
('link_state', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_device_migration_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_device_migration_info._pack_ = 1 # source:False
|
|
struct_vfio_device_migration_info._fields_ = [
|
|
('device_state', ctypes.c_uint32),
|
|
('reserved', ctypes.c_uint32),
|
|
('pending_bytes', ctypes.c_uint64),
|
|
('data_offset', ctypes.c_uint64),
|
|
('data_size', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_region_info_cap_nvlink2_ssatgt(Structure):
|
|
pass
|
|
|
|
struct_vfio_region_info_cap_nvlink2_ssatgt._pack_ = 1 # source:False
|
|
struct_vfio_region_info_cap_nvlink2_ssatgt._fields_ = [
|
|
('header', struct_vfio_info_cap_header),
|
|
('tgt', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_region_info_cap_nvlink2_lnkspd(Structure):
|
|
pass
|
|
|
|
struct_vfio_region_info_cap_nvlink2_lnkspd._pack_ = 1 # source:False
|
|
struct_vfio_region_info_cap_nvlink2_lnkspd._fields_ = [
|
|
('header', struct_vfio_info_cap_header),
|
|
('link_speed', ctypes.c_uint32),
|
|
('__pad', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_irq_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_irq_info._pack_ = 1 # source:False
|
|
struct_vfio_irq_info._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('index', ctypes.c_uint32),
|
|
('count', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_irq_set(Structure):
|
|
pass
|
|
|
|
struct_vfio_irq_set._pack_ = 1 # source:False
|
|
struct_vfio_irq_set._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('index', ctypes.c_uint32),
|
|
('start', ctypes.c_uint32),
|
|
('count', ctypes.c_uint32),
|
|
('data', ctypes.c_int * 1),
|
|
]
|
|
|
|
|
|
# values for enumeration 'c__Ea_VFIO_PCI_BAR0_REGION_INDEX'
|
|
c__Ea_VFIO_PCI_BAR0_REGION_INDEX__enumvalues = {
|
|
0: 'VFIO_PCI_BAR0_REGION_INDEX',
|
|
1: 'VFIO_PCI_BAR1_REGION_INDEX',
|
|
2: 'VFIO_PCI_BAR2_REGION_INDEX',
|
|
3: 'VFIO_PCI_BAR3_REGION_INDEX',
|
|
4: 'VFIO_PCI_BAR4_REGION_INDEX',
|
|
5: 'VFIO_PCI_BAR5_REGION_INDEX',
|
|
6: 'VFIO_PCI_ROM_REGION_INDEX',
|
|
7: 'VFIO_PCI_CONFIG_REGION_INDEX',
|
|
8: 'VFIO_PCI_VGA_REGION_INDEX',
|
|
9: 'VFIO_PCI_NUM_REGIONS',
|
|
}
|
|
VFIO_PCI_BAR0_REGION_INDEX = 0
|
|
VFIO_PCI_BAR1_REGION_INDEX = 1
|
|
VFIO_PCI_BAR2_REGION_INDEX = 2
|
|
VFIO_PCI_BAR3_REGION_INDEX = 3
|
|
VFIO_PCI_BAR4_REGION_INDEX = 4
|
|
VFIO_PCI_BAR5_REGION_INDEX = 5
|
|
VFIO_PCI_ROM_REGION_INDEX = 6
|
|
VFIO_PCI_CONFIG_REGION_INDEX = 7
|
|
VFIO_PCI_VGA_REGION_INDEX = 8
|
|
VFIO_PCI_NUM_REGIONS = 9
|
|
c__Ea_VFIO_PCI_BAR0_REGION_INDEX = ctypes.c_uint32 # enum
|
|
|
|
# values for enumeration 'c__Ea_VFIO_PCI_INTX_IRQ_INDEX'
|
|
c__Ea_VFIO_PCI_INTX_IRQ_INDEX__enumvalues = {
|
|
0: 'VFIO_PCI_INTX_IRQ_INDEX',
|
|
1: 'VFIO_PCI_MSI_IRQ_INDEX',
|
|
2: 'VFIO_PCI_MSIX_IRQ_INDEX',
|
|
3: 'VFIO_PCI_ERR_IRQ_INDEX',
|
|
4: 'VFIO_PCI_REQ_IRQ_INDEX',
|
|
5: 'VFIO_PCI_NUM_IRQS',
|
|
}
|
|
VFIO_PCI_INTX_IRQ_INDEX = 0
|
|
VFIO_PCI_MSI_IRQ_INDEX = 1
|
|
VFIO_PCI_MSIX_IRQ_INDEX = 2
|
|
VFIO_PCI_ERR_IRQ_INDEX = 3
|
|
VFIO_PCI_REQ_IRQ_INDEX = 4
|
|
VFIO_PCI_NUM_IRQS = 5
|
|
c__Ea_VFIO_PCI_INTX_IRQ_INDEX = ctypes.c_uint32 # enum
|
|
|
|
# values for enumeration 'c__Ea_VFIO_CCW_CONFIG_REGION_INDEX'
|
|
c__Ea_VFIO_CCW_CONFIG_REGION_INDEX__enumvalues = {
|
|
0: 'VFIO_CCW_CONFIG_REGION_INDEX',
|
|
1: 'VFIO_CCW_NUM_REGIONS',
|
|
}
|
|
VFIO_CCW_CONFIG_REGION_INDEX = 0
|
|
VFIO_CCW_NUM_REGIONS = 1
|
|
c__Ea_VFIO_CCW_CONFIG_REGION_INDEX = ctypes.c_uint32 # enum
|
|
|
|
# values for enumeration 'c__Ea_VFIO_CCW_IO_IRQ_INDEX'
|
|
c__Ea_VFIO_CCW_IO_IRQ_INDEX__enumvalues = {
|
|
0: 'VFIO_CCW_IO_IRQ_INDEX',
|
|
1: 'VFIO_CCW_CRW_IRQ_INDEX',
|
|
2: 'VFIO_CCW_REQ_IRQ_INDEX',
|
|
3: 'VFIO_CCW_NUM_IRQS',
|
|
}
|
|
VFIO_CCW_IO_IRQ_INDEX = 0
|
|
VFIO_CCW_CRW_IRQ_INDEX = 1
|
|
VFIO_CCW_REQ_IRQ_INDEX = 2
|
|
VFIO_CCW_NUM_IRQS = 3
|
|
c__Ea_VFIO_CCW_IO_IRQ_INDEX = ctypes.c_uint32 # enum
|
|
class struct_vfio_pci_dependent_device(Structure):
|
|
pass
|
|
|
|
struct_vfio_pci_dependent_device._pack_ = 1 # source:False
|
|
struct_vfio_pci_dependent_device._fields_ = [
|
|
('group_id', ctypes.c_uint32),
|
|
('segment', ctypes.c_uint16),
|
|
('bus', ctypes.c_ubyte),
|
|
('devfn', ctypes.c_ubyte),
|
|
]
|
|
|
|
class struct_vfio_pci_hot_reset_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_pci_hot_reset_info._pack_ = 1 # source:False
|
|
struct_vfio_pci_hot_reset_info._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('count', ctypes.c_uint32),
|
|
('devices', struct_vfio_pci_dependent_device * 0),
|
|
]
|
|
|
|
class struct_vfio_pci_hot_reset(Structure):
|
|
pass
|
|
|
|
struct_vfio_pci_hot_reset._pack_ = 1 # source:False
|
|
struct_vfio_pci_hot_reset._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('count', ctypes.c_uint32),
|
|
('group_fds', ctypes.c_int32 * 0),
|
|
]
|
|
|
|
class struct_vfio_device_gfx_plane_info(Structure):
|
|
pass
|
|
|
|
class union_vfio_device_gfx_plane_info_0(Union):
|
|
pass
|
|
|
|
union_vfio_device_gfx_plane_info_0._pack_ = 1 # source:False
|
|
union_vfio_device_gfx_plane_info_0._fields_ = [
|
|
('region_index', ctypes.c_uint32),
|
|
('dmabuf_id', ctypes.c_uint32),
|
|
]
|
|
|
|
struct_vfio_device_gfx_plane_info._pack_ = 1 # source:False
|
|
struct_vfio_device_gfx_plane_info._anonymous_ = ('_0',)
|
|
struct_vfio_device_gfx_plane_info._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('drm_plane_type', ctypes.c_uint32),
|
|
('drm_format', ctypes.c_uint32),
|
|
('drm_format_mod', ctypes.c_uint64),
|
|
('width', ctypes.c_uint32),
|
|
('height', ctypes.c_uint32),
|
|
('stride', ctypes.c_uint32),
|
|
('size', ctypes.c_uint32),
|
|
('x_pos', ctypes.c_uint32),
|
|
('y_pos', ctypes.c_uint32),
|
|
('x_hot', ctypes.c_uint32),
|
|
('y_hot', ctypes.c_uint32),
|
|
('_0', union_vfio_device_gfx_plane_info_0),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_vfio_device_ioeventfd(Structure):
|
|
pass
|
|
|
|
struct_vfio_device_ioeventfd._pack_ = 1 # source:False
|
|
struct_vfio_device_ioeventfd._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('offset', ctypes.c_uint64),
|
|
('data', ctypes.c_uint64),
|
|
('fd', ctypes.c_int32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_vfio_device_feature(Structure):
|
|
pass
|
|
|
|
struct_vfio_device_feature._pack_ = 1 # source:False
|
|
struct_vfio_device_feature._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('data', ctypes.c_ubyte * 0),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_info._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_info._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('iova_pgsizes', ctypes.c_uint64),
|
|
('cap_offset', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
]
|
|
|
|
class struct_vfio_iova_range(Structure):
|
|
pass
|
|
|
|
struct_vfio_iova_range._pack_ = 1 # source:False
|
|
struct_vfio_iova_range._fields_ = [
|
|
('start', ctypes.c_uint64),
|
|
('end', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_info_cap_iova_range(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_info_cap_iova_range._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_info_cap_iova_range._fields_ = [
|
|
('header', struct_vfio_info_cap_header),
|
|
('nr_iovas', ctypes.c_uint32),
|
|
('reserved', ctypes.c_uint32),
|
|
('iova_ranges', struct_vfio_iova_range * 0),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_info_cap_migration(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_info_cap_migration._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_info_cap_migration._fields_ = [
|
|
('header', struct_vfio_info_cap_header),
|
|
('flags', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('pgsize_bitmap', ctypes.c_uint64),
|
|
('max_dirty_bitmap_size', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_info_dma_avail(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_info_dma_avail._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_info_dma_avail._fields_ = [
|
|
('header', struct_vfio_info_cap_header),
|
|
('avail', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_dma_map(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_dma_map._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_dma_map._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('vaddr', ctypes.c_uint64),
|
|
('iova', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_bitmap(Structure):
|
|
pass
|
|
|
|
struct_vfio_bitmap._pack_ = 1 # source:False
|
|
struct_vfio_bitmap._fields_ = [
|
|
('pgsize', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('data', ctypes.POINTER(ctypes.c_uint64)),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_dma_unmap(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_dma_unmap._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_dma_unmap._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('iova', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('data', ctypes.c_ubyte * 0),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_dirty_bitmap(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_dirty_bitmap._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_dirty_bitmap._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('data', ctypes.c_ubyte * 0),
|
|
]
|
|
|
|
class struct_vfio_iommu_type1_dirty_bitmap_get(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_type1_dirty_bitmap_get._pack_ = 1 # source:False
|
|
struct_vfio_iommu_type1_dirty_bitmap_get._fields_ = [
|
|
('iova', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
('bitmap', struct_vfio_bitmap),
|
|
]
|
|
|
|
class struct_vfio_iommu_spapr_tce_ddw_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_spapr_tce_ddw_info._pack_ = 1 # source:False
|
|
struct_vfio_iommu_spapr_tce_ddw_info._fields_ = [
|
|
('pgsizes', ctypes.c_uint64),
|
|
('max_dynamic_windows_supported', ctypes.c_uint32),
|
|
('levels', ctypes.c_uint32),
|
|
]
|
|
|
|
class struct_vfio_iommu_spapr_tce_info(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_spapr_tce_info._pack_ = 1 # source:False
|
|
struct_vfio_iommu_spapr_tce_info._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('dma32_window_start', ctypes.c_uint32),
|
|
('dma32_window_size', ctypes.c_uint32),
|
|
('ddw', struct_vfio_iommu_spapr_tce_ddw_info),
|
|
]
|
|
|
|
class struct_vfio_eeh_pe_err(Structure):
|
|
pass
|
|
|
|
struct_vfio_eeh_pe_err._pack_ = 1 # source:False
|
|
struct_vfio_eeh_pe_err._fields_ = [
|
|
('type', ctypes.c_uint32),
|
|
('func', ctypes.c_uint32),
|
|
('addr', ctypes.c_uint64),
|
|
('mask', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_eeh_pe_op(Structure):
|
|
pass
|
|
|
|
class union_vfio_eeh_pe_op_0(Union):
|
|
_pack_ = 1 # source:False
|
|
_fields_ = [
|
|
('err', struct_vfio_eeh_pe_err),
|
|
]
|
|
|
|
struct_vfio_eeh_pe_op._pack_ = 1 # source:False
|
|
struct_vfio_eeh_pe_op._anonymous_ = ('_0',)
|
|
struct_vfio_eeh_pe_op._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('op', ctypes.c_uint32),
|
|
('PADDING_0', ctypes.c_ubyte * 4),
|
|
('_0', union_vfio_eeh_pe_op_0),
|
|
]
|
|
|
|
class struct_vfio_iommu_spapr_register_memory(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_spapr_register_memory._pack_ = 1 # source:False
|
|
struct_vfio_iommu_spapr_register_memory._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('vaddr', ctypes.c_uint64),
|
|
('size', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_iommu_spapr_tce_create(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_spapr_tce_create._pack_ = 1 # source:False
|
|
struct_vfio_iommu_spapr_tce_create._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('page_shift', ctypes.c_uint32),
|
|
('__resv1', ctypes.c_uint32),
|
|
('window_size', ctypes.c_uint64),
|
|
('levels', ctypes.c_uint32),
|
|
('__resv2', ctypes.c_uint32),
|
|
('start_addr', ctypes.c_uint64),
|
|
]
|
|
|
|
class struct_vfio_iommu_spapr_tce_remove(Structure):
|
|
pass
|
|
|
|
struct_vfio_iommu_spapr_tce_remove._pack_ = 1 # source:False
|
|
struct_vfio_iommu_spapr_tce_remove._fields_ = [
|
|
('argsz', ctypes.c_uint32),
|
|
('flags', ctypes.c_uint32),
|
|
('start_addr', ctypes.c_uint64),
|
|
]
|
|
|
|
__all__ = \
|
|
['VFIO_API_VERSION', 'VFIO_BASE', 'VFIO_CCW_CONFIG_REGION_INDEX',
|
|
'VFIO_CCW_CRW_IRQ_INDEX', 'VFIO_CCW_IO_IRQ_INDEX',
|
|
'VFIO_CCW_NUM_IRQS', 'VFIO_CCW_NUM_REGIONS',
|
|
'VFIO_CCW_REQ_IRQ_INDEX', 'VFIO_DEVICE_API_AMBA_STRING',
|
|
'VFIO_DEVICE_API_AP_STRING', 'VFIO_DEVICE_API_CCW_STRING',
|
|
'VFIO_DEVICE_API_PCI_STRING', 'VFIO_DEVICE_API_PLATFORM_STRING',
|
|
'VFIO_DEVICE_FEATURE_GET', 'VFIO_DEVICE_FEATURE_MASK',
|
|
'VFIO_DEVICE_FEATURE_PCI_VF_TOKEN', 'VFIO_DEVICE_FEATURE_PROBE',
|
|
'VFIO_DEVICE_FEATURE_SET', 'VFIO_DEVICE_FLAGS_AMBA',
|
|
'VFIO_DEVICE_FLAGS_AP', 'VFIO_DEVICE_FLAGS_CAPS',
|
|
'VFIO_DEVICE_FLAGS_CCW', 'VFIO_DEVICE_FLAGS_FSL_MC',
|
|
'VFIO_DEVICE_FLAGS_PCI', 'VFIO_DEVICE_FLAGS_PLATFORM',
|
|
'VFIO_DEVICE_FLAGS_RESET', 'VFIO_DEVICE_GFX_LINK_STATE_DOWN',
|
|
'VFIO_DEVICE_GFX_LINK_STATE_UP', 'VFIO_DEVICE_INFO_CAP_ZPCI_BASE',
|
|
'VFIO_DEVICE_INFO_CAP_ZPCI_GROUP',
|
|
'VFIO_DEVICE_INFO_CAP_ZPCI_PFIP',
|
|
'VFIO_DEVICE_INFO_CAP_ZPCI_UTIL', 'VFIO_DEVICE_IOEVENTFD_16',
|
|
'VFIO_DEVICE_IOEVENTFD_32', 'VFIO_DEVICE_IOEVENTFD_64',
|
|
'VFIO_DEVICE_IOEVENTFD_8', 'VFIO_DEVICE_IOEVENTFD_SIZE_MASK',
|
|
'VFIO_DEVICE_STATE_MASK', 'VFIO_DEVICE_STATE_RESUMING',
|
|
'VFIO_DEVICE_STATE_RUNNING', 'VFIO_DEVICE_STATE_SAVING',
|
|
'VFIO_DEVICE_STATE_STOP', 'VFIO_DMA_CC_IOMMU',
|
|
'VFIO_DMA_MAP_FLAG_READ', 'VFIO_DMA_MAP_FLAG_VADDR',
|
|
'VFIO_DMA_MAP_FLAG_WRITE', 'VFIO_DMA_UNMAP_FLAG_ALL',
|
|
'VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP',
|
|
'VFIO_DMA_UNMAP_FLAG_VADDR', 'VFIO_EEH', 'VFIO_EEH_PE_CONFIGURE',
|
|
'VFIO_EEH_PE_DISABLE', 'VFIO_EEH_PE_ENABLE',
|
|
'VFIO_EEH_PE_GET_STATE', 'VFIO_EEH_PE_INJECT_ERR',
|
|
'VFIO_EEH_PE_RESET_DEACTIVATE', 'VFIO_EEH_PE_RESET_FUNDAMENTAL',
|
|
'VFIO_EEH_PE_RESET_HOT', 'VFIO_EEH_PE_STATE_NORMAL',
|
|
'VFIO_EEH_PE_STATE_RESET', 'VFIO_EEH_PE_STATE_STOPPED',
|
|
'VFIO_EEH_PE_STATE_STOPPED_DMA', 'VFIO_EEH_PE_STATE_UNAVAIL',
|
|
'VFIO_EEH_PE_UNFREEZE_DMA', 'VFIO_EEH_PE_UNFREEZE_IO',
|
|
'VFIO_GFX_PLANE_TYPE_DMABUF', 'VFIO_GFX_PLANE_TYPE_PROBE',
|
|
'VFIO_GFX_PLANE_TYPE_REGION', 'VFIO_GROUP_FLAGS_CONTAINER_SET',
|
|
'VFIO_GROUP_FLAGS_VIABLE', 'VFIO_H',
|
|
'VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP',
|
|
'VFIO_IOMMU_DIRTY_PAGES_FLAG_START',
|
|
'VFIO_IOMMU_DIRTY_PAGES_FLAG_STOP', 'VFIO_IOMMU_INFO_CAPS',
|
|
'VFIO_IOMMU_INFO_PGSIZES', 'VFIO_IOMMU_SPAPR_INFO_DDW',
|
|
'VFIO_IOMMU_TYPE1_INFO_CAP_IOVA_RANGE',
|
|
'VFIO_IOMMU_TYPE1_INFO_CAP_MIGRATION',
|
|
'VFIO_IOMMU_TYPE1_INFO_DMA_AVAIL', 'VFIO_IRQ_INFO_AUTOMASKED',
|
|
'VFIO_IRQ_INFO_EVENTFD', 'VFIO_IRQ_INFO_MASKABLE',
|
|
'VFIO_IRQ_INFO_NORESIZE', 'VFIO_IRQ_SET_ACTION_MASK',
|
|
'VFIO_IRQ_SET_ACTION_TRIGGER', 'VFIO_IRQ_SET_ACTION_TYPE_MASK',
|
|
'VFIO_IRQ_SET_ACTION_UNMASK', 'VFIO_IRQ_SET_DATA_BOOL',
|
|
'VFIO_IRQ_SET_DATA_EVENTFD', 'VFIO_IRQ_SET_DATA_NONE',
|
|
'VFIO_IRQ_SET_DATA_TYPE_MASK', 'VFIO_NOIOMMU_IOMMU',
|
|
'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_CONFIG_REGION_INDEX', 'VFIO_PCI_ERR_IRQ_INDEX',
|
|
'VFIO_PCI_INTX_IRQ_INDEX', 'VFIO_PCI_MSIX_IRQ_INDEX',
|
|
'VFIO_PCI_MSI_IRQ_INDEX', 'VFIO_PCI_NUM_IRQS',
|
|
'VFIO_PCI_NUM_REGIONS', 'VFIO_PCI_REQ_IRQ_INDEX',
|
|
'VFIO_PCI_ROM_REGION_INDEX', 'VFIO_PCI_VGA_REGION_INDEX',
|
|
'VFIO_REGION_INFO_CAP_MSIX_MAPPABLE',
|
|
'VFIO_REGION_INFO_CAP_NVLINK2_LNKSPD',
|
|
'VFIO_REGION_INFO_CAP_NVLINK2_SSATGT',
|
|
'VFIO_REGION_INFO_CAP_SPARSE_MMAP', 'VFIO_REGION_INFO_CAP_TYPE',
|
|
'VFIO_REGION_INFO_FLAG_CAPS', 'VFIO_REGION_INFO_FLAG_MMAP',
|
|
'VFIO_REGION_INFO_FLAG_READ', 'VFIO_REGION_INFO_FLAG_WRITE',
|
|
'VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD',
|
|
'VFIO_REGION_SUBTYPE_CCW_CRW', 'VFIO_REGION_SUBTYPE_CCW_SCHIB',
|
|
'VFIO_REGION_SUBTYPE_GFX_EDID',
|
|
'VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD',
|
|
'VFIO_REGION_SUBTYPE_INTEL_IGD_HOST_CFG',
|
|
'VFIO_REGION_SUBTYPE_INTEL_IGD_LPC_CFG',
|
|
'VFIO_REGION_SUBTYPE_INTEL_IGD_OPREGION',
|
|
'VFIO_REGION_SUBTYPE_MIGRATION',
|
|
'VFIO_REGION_SUBTYPE_NVIDIA_NVLINK2_RAM', 'VFIO_REGION_TYPE_CCW',
|
|
'VFIO_REGION_TYPE_GFX', 'VFIO_REGION_TYPE_MIGRATION',
|
|
'VFIO_REGION_TYPE_PCI_VENDOR_MASK',
|
|
'VFIO_REGION_TYPE_PCI_VENDOR_TYPE', 'VFIO_SPAPR_TCE_IOMMU',
|
|
'VFIO_SPAPR_TCE_v2_IOMMU', 'VFIO_TYPE', 'VFIO_TYPE1_IOMMU',
|
|
'VFIO_TYPE1_NESTING_IOMMU', 'VFIO_TYPE1v2_IOMMU',
|
|
'VFIO_UNMAP_ALL', 'VFIO_UPDATE_VADDR', '_IO', '_IOR', '_IOW',
|
|
'_IOWR', 'c__Ea_VFIO_CCW_CONFIG_REGION_INDEX',
|
|
'c__Ea_VFIO_CCW_IO_IRQ_INDEX', 'c__Ea_VFIO_PCI_BAR0_REGION_INDEX',
|
|
'c__Ea_VFIO_PCI_INTX_IRQ_INDEX', 'struct_vfio_bitmap',
|
|
'struct_vfio_device_feature', 'struct_vfio_device_gfx_plane_info',
|
|
'struct_vfio_device_info', 'struct_vfio_device_ioeventfd',
|
|
'struct_vfio_device_migration_info', 'struct_vfio_eeh_pe_err',
|
|
'struct_vfio_eeh_pe_op', 'struct_vfio_group_status',
|
|
'struct_vfio_info_cap_header',
|
|
'struct_vfio_iommu_spapr_register_memory',
|
|
'struct_vfio_iommu_spapr_tce_create',
|
|
'struct_vfio_iommu_spapr_tce_ddw_info',
|
|
'struct_vfio_iommu_spapr_tce_info',
|
|
'struct_vfio_iommu_spapr_tce_remove',
|
|
'struct_vfio_iommu_type1_dirty_bitmap',
|
|
'struct_vfio_iommu_type1_dirty_bitmap_get',
|
|
'struct_vfio_iommu_type1_dma_map',
|
|
'struct_vfio_iommu_type1_dma_unmap',
|
|
'struct_vfio_iommu_type1_info',
|
|
'struct_vfio_iommu_type1_info_cap_iova_range',
|
|
'struct_vfio_iommu_type1_info_cap_migration',
|
|
'struct_vfio_iommu_type1_info_dma_avail',
|
|
'struct_vfio_iova_range', 'struct_vfio_irq_info',
|
|
'struct_vfio_irq_set', 'struct_vfio_pci_dependent_device',
|
|
'struct_vfio_pci_hot_reset', 'struct_vfio_pci_hot_reset_info',
|
|
'struct_vfio_region_gfx_edid', 'struct_vfio_region_info',
|
|
'struct_vfio_region_info_cap_nvlink2_lnkspd',
|
|
'struct_vfio_region_info_cap_nvlink2_ssatgt',
|
|
'struct_vfio_region_info_cap_sparse_mmap',
|
|
'struct_vfio_region_info_cap_type',
|
|
'struct_vfio_region_sparse_mmap_area',
|
|
'union_vfio_device_gfx_plane_info_0', 'union_vfio_eeh_pe_op_0']
|
|
|