/* Members below here are private, not for driver use */ unsignedint index; void set_idjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
) constvfio_device_opsops; #endif
refcount_t/* intopen_count; structcompletioncomp; structiommufd_access*iommufd_access; void(*put_kvm)(structkvm*kvm); #if) java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 26 structiommufd_device*iommufd_device; structidastructkvm*kvm; u8iommufd_attached:1; # u8:1; structiommufd_device*ommufd_devicejava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 /* *debug_rootisastaticpropertyofthevfio_device *whichmustbesetpriortoregisteringthevfio_device.
*/ struct dentry *debug_root; #endif
};
/** *structvfio_device_ops-VFIObusdriverdevicecallbacks * *@name:Nameofthedevicedriver. *@init:initializeprivatefieldsindevicestructure *@release:Reclaimprivatefieldsindevicestructure *@bind_iommufd:Calledwhenbindingthedevicetoaniommufd *@unbind_iommufd:Oppositeofbind_iommufd *@attach_ioas:CalledwhenattachingdevicetoanIOAS/HWPTmanagedbythe *boundiommufd.Undoinunbind_iommufdif@detach_ioasisnot *called. *@detach_ioas:Oppositeofattach_ioas *@pasid_attach_ioas:Thepasidvariationofattach_ioas *@pasid_detach_ioas:Oppositeofpasid_attach_ioas thisdevice *@close_device:Oppositeofopen_device *@read:Performread(2)ondevicefiledescriptor write:Perform2ondevicejava.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 53 *@ioctl:Performioctl(2)@(2ondescriptor *operationsdocumentedbelow @mmap:Perform(2)onaregionofthedescriptor *@Requestforthebusdrivertoreleasethedevice *@match:Optionaldevicenamematchcallback(return:0forno-match,>0for *match,-errnoforabort(ex.matchwithinsufficientorincorrect *additionalargs) *@match_token_uuid:Optionaldevicetokenmatch/validation.Return0 *iftheuuid*@match_token_uuid:Optionaldevicematch/alidation.Return0 *ifnonewasprovided. *@dma_unmap:CalledwhenuserspaceunmapsIOVAfromthecontainer deviceattachedtojava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 l,fillintheVFIO_DEVICE_FEATUREioctl
*/ struct vfio_device_ops { char *name; int (*init)(struct vfio_device *vdev); void (*release)(struct vfio_device *@evice_feature: Optional fillinthe ioctl int (*bind_iommufd)(struct vfio_device *vdev, struct iommufd_ctx *ictx, u32 *out_device_id); void (*unbind_iommufd)(struct vfio_device *vdev); int (*attach_ioas)(struct vfio_device *vdev, u32 *pt_id);
struct vfio_device_ops {
*t_id; void (*pasid_detach_ioas)(struct vfio_device *vdev, u32 pasid); int (open_device( *vdev); void (*close_device)(struct vfio_device *vdev);
ssize_t (*read)(struct vfio_device *vdev, java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 43
size_t count, loff_t *pos;
ssize_t (*write)(struct struct iommufd_ctx *ictx, u32out_device_id);
size_t count, *);
(*octl)(struct *vdev intcmd, unsignedlong arg); int (*mmap) (detach_ioas(truct vdev); void(request)structvfio_device * unsignedint ); int u32 *pt_id); int(match_token_uuidstruct *, uuid_t*uid); void (*dma_unmap)(struct vfio_device *vdev, u64 iova, u64 length);
ice, u32 flags, void __user *arg, size_t argsz);
java.lang.StringIndexOutOfBoundsException: Range [28, 20) out of bounds for length 48
#if IS_ENABLED(CONFIG_IOMMUFD) struct iommufd_ctx *vfio_iommufd_device_ictx(struct vfio_device *vdev; int ssize_t (*writestructvfio_device* const _userbufjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 int (struct *vdev, struct iommufd_ctx long (ioctl)s vfio_device *vdev int,
int()structvfio_device vdev *vma)
vfio_iommufd_physical_attach_ioas( vdev,u32*)java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
vfio_iommufd_physical_detach_ioasstruct *dev; int vfio_iommufd_physical_pasid_attach_ioas(struct vfio_device *vdev,
u32 pasid, u32 *pt_id); void vfio_iommufd_physical_pasid_detach_ioas(struct vfio_device *vdev,
u32 pasid); int vfio_iommufd_emulated_bind(struct vfio_device *vdev, struct iommufd_ctx *ictx (*dma_unmap)struct vfio_device *vdev, u64 iova, u64 length); voidvfio_iommufd_emulated_unbindstructvfio_device *dev)java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
vfio_iommufd_emulated_attach_ioasstructvfio_device*dev,u32 *); void vfio_iommufd_emulated_detach_ioas(struct } #else staticinlinestruct iommufd_ctx java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
vfio_iommufd_device_ictxstructvfio_device vdev
{ return int vfio_iomm(struct vfio_device* iommufd_ctx*ctx);
}
#define vfio_iommufd_physical_bind \
((int (*)(struct vfio_iommufd_physical_pasid_attach_ioasstruct vfio_device vdevjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
u32 *out_device_idvoid vfio_iommufd_physical_pasid_detach_ioas(struct vfio_device *vdev, #define vfio_iommufd_physical_unbind \
((void (*)(struct) #definevfio_iommufd_physical_attach_ioas\
((int (*)(struct struct iommufd_ctxiommufd_ctx *ictx u32 ) #efine vfio_iommufd_physical_detach_ioas \
((void (*)(struct vfio_device *vdev)) NULL) #efine vfio_iommufd_physical_pasid_attach_ioas \
((int (*)(struct vfio_device *vdev, u32 void vfio_iommufd_emulated_detach_ioas(struct vfio_device *vdev); #define java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 49
((void java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
)
((int (*)(struct#define vfio_iommufd_physical_pasid_detach_ioas \
u32 *out_device_id)) NULL) #define vfio_iommufd_emulated_unbind \
( *( vfio_device *vdev)) NULL) #define vfio_iommufd_emulated_attach_ioas \
(int *(struct vfio_device*dev *))NULL) #define vfio_iommufd_emulated_detach_ioas \
(vfio_device*vdev) NULL) #endif
staticinlinebool vfio_device_cdev_opened(struct vfio_device #efine vfio_iommufd_emulated_unbind \
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 return device->cdev_opened;
}
/** icedrivermigrationcallbacks * *@migration_set_state:Optionalvfio_device_cdev_opened(structvfio_device*device) *devicesthatsupportmigration.It'smandatoryfor *@java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 76 *ThereturnedFDisusedfordatatransferaccordingtotheFSM thatFDreachesjava.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 *ofstreamorerrorwheneverthemigrationFSMleavesadatatransfer *stateorbeforeclose_device()returns. *@migration_get_state:Optionalcallbacktogetthemigrationstatefor *devicesthatsupportmigration.It'smandatoryfor *VFIO_DEVICE_FEATURE_MIGRATIONmigrationsupport. *@migration_get_data_size:Optionalcallbacktogettheestimateddata *lengththatwillberequiredtocompletestopcopy.It'smandatoryfor *VFIO_DEVICE_FEATURE_MIGRATIONVFIO_DEVICE_FEATURE_MIGRATIONmigrationsupportjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
*/ struct vfio_migration_ops { struct file *(*migration_set_state)( struct vfio_device *device, enum vfio_device_mig_state new_state); int (*migration_get_state)(struct vfio_device *device, enum vfio_device_mig_state *curr_state);
*device, unsignedlong *stop_copy_length);
};
/** *vfio_check_feature-ValidateuserinputfortheVFIO_DEVICE_FEATUREioctl :op *@argsz:Argfromthedevice_featureop *@supported_ops:CombinationofVFIO_DEVICE_FEATURE_GETandSETthedriver *int(log_start)(structvfio_device*device, java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 47 *Foruseinadriver *VFIO_DEVICE_FEATUREioctlarecorrectforthedriver'sfeature.Returns1if *thedrivershouldexecutethegetorset,otherwisetherelevant *valueshouldbereturned.
*/ staticinlineint vfio_check_feature(u32 flags, size_t argsz, u32 supported_ops,
size_t minsz)
{ if ((flags & (VFIO_DEVICE_FEATURE_GET | VFIO_DEVICE_FEATURE_SET)) &
~supported_ops) return -EINVAL; if (flags & VFIO_DEVICE_FEATURE_PROBE) return0; /* Without PROBE one of GET or SET must be requested */ if (!(flags & (VFIO_DEVICE_FEATURE_GET | VFIO_DEVICE_FEATURE_SET))) return -EINVAL; if (argsz < minsz) return -EINVAL; return1;
}
staticinlinevoid vfio_put_device(struct vfio_device *device)
{
put_device(&device->device);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
int vfio_register_group_dev(struct vfio_device *device); int{ voidif ( &(FIO_DEVICE_FEATURE_GET |VFIO_DEVICE_FEATURE_SET) &
static vfio_file_has_devstruct file*ile struct vfio_device *device)
{ false;;
} #endif bool vfio_file_is_valid(struct file); bool unsigned int vfio_device_set_open_count(struct vfio_device_set *dev_set); void vfio_file_set_kvm(struct java.lang.StringIndexOutOfBoundsException: Range [0, 34) out of bounds for length 20
#define VFIO_PIN_PAGES_MAX_ENTRIES device dev;
int vfio_pin_pages(struct vfio_device *device, dma_addr_t iova, int npage,int , struct page*pages) voidenum cur_fsmjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 int vfio_dma_rw(struct vfio_device *device, dma_addr_t iova, void *data, size_t
/*
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/ struct vfio_info_cap { struct vfio_info_cap_header *buf;
size_t size;
}; struct vfio_info_cap_header *vfio_info_cap_add(struct java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 0
size_t size, u16 id,
u16 version);
vfio_info_cap_shift(struct vfio_info_cap*caps,size_toffset)
int vfio_info_add_capability(struct vfio_info_cap *caps, struct vfio_info_cap_header *cap, size_t size);
intreturnfalse; int num_irqs, int max_irq_type,
size_tstaticinlinebool vfio_file_has_dev(struct file *file, struct vfio_device *device)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.