Linux jobworks 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:53:05 UTC 2026 x86_64
Apache/2.4.58 (Ubuntu)
Server IP : 10.0.1.5 & Your IP : 216.73.217.52
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
include /
linux /
Delete
Unzip
Name
Size
Permission
Date
Action
android
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
byteorder
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
caif
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
can
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
cifs
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
dvb
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
genwqe
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
hdlc
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
hsi
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
iio
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
isdn
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
misc
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
mmc
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
netfilter
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
netfilter_arp
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
netfilter_bridge
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
netfilter_ipv4
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
netfilter_ipv6
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
nfsd
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
raid
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
sched
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
spi
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
sunrpc
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
surface_aggregator
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
tc_act
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
tc_ematch
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
usb
[ DIR ]
drwxr-xr-x
2026-07-17 06:29
a.out.h
6.73
KB
-rw-r--r--
2026-07-01 19:48
acct.h
3.82
KB
-rw-r--r--
2026-07-01 19:48
acrn.h
18.51
KB
-rw-r--r--
2026-07-01 19:48
adb.h
1.11
KB
-rw-r--r--
2026-07-01 19:48
adfs_fs.h
993
B
-rw-r--r--
2026-07-01 19:48
affs_hardblocks.h
1.54
KB
-rw-r--r--
2026-07-01 19:48
agpgart.h
3.86
KB
-rw-r--r--
2026-07-01 19:48
aio_abi.h
3.32
KB
-rw-r--r--
2026-07-01 19:48
am437x-vpfe.h
3.59
KB
-rw-r--r--
2026-07-01 19:48
amt.h
1.71
KB
-rw-r--r--
2026-07-01 19:48
apm_bios.h
3.6
KB
-rw-r--r--
2026-07-01 19:48
apparmor.h
3.4
KB
-rw-r--r--
2026-07-01 19:48
arcfb.h
213
B
-rw-r--r--
2026-07-01 19:48
arm_sdei.h
2.69
KB
-rw-r--r--
2026-07-01 19:48
aspeed-lpc-ctrl.h
1.74
KB
-rw-r--r--
2026-07-01 19:48
aspeed-p2a-ctrl.h
1.86
KB
-rw-r--r--
2026-07-01 19:48
aspeed-video.h
389
B
-rw-r--r--
2026-07-01 19:48
atalk.h
1023
B
-rw-r--r--
2026-07-01 19:48
atm.h
7.7
KB
-rw-r--r--
2026-07-01 19:48
atm_eni.h
648
B
-rw-r--r--
2026-07-01 19:48
atm_he.h
406
B
-rw-r--r--
2026-07-01 19:48
atm_idt77105.h
955
B
-rw-r--r--
2026-07-01 19:48
atm_nicstar.h
1.25
KB
-rw-r--r--
2026-07-01 19:48
atm_tcp.h
1.58
KB
-rw-r--r--
2026-07-01 19:48
atm_zatm.h
1.5
KB
-rw-r--r--
2026-07-01 19:48
atmapi.h
952
B
-rw-r--r--
2026-07-01 19:48
atmarp.h
1.27
KB
-rw-r--r--
2026-07-01 19:48
atmbr2684.h
3.2
KB
-rw-r--r--
2026-07-01 19:48
atmclip.h
576
B
-rw-r--r--
2026-07-01 19:48
atmdev.h
7.32
KB
-rw-r--r--
2026-07-01 19:48
atmioc.h
1.61
KB
-rw-r--r--
2026-07-01 19:48
atmlec.h
2.33
KB
-rw-r--r--
2026-07-01 19:48
atmmpc.h
4.13
KB
-rw-r--r--
2026-07-01 19:48
atmppp.h
639
B
-rw-r--r--
2026-07-01 19:48
atmsap.h
4.85
KB
-rw-r--r--
2026-07-01 19:48
atmsvc.h
1.81
KB
-rw-r--r--
2026-07-01 19:48
audit.h
21.2
KB
-rw-r--r--
2026-07-01 19:48
auto_dev-ioctl.h
4.87
KB
-rw-r--r--
2026-07-01 19:48
auto_fs.h
6.28
KB
-rw-r--r--
2026-07-01 19:48
auto_fs4.h
451
B
-rw-r--r--
2026-07-01 19:48
auxvec.h
1.68
KB
-rw-r--r--
2026-07-01 19:48
ax25.h
2.76
KB
-rw-r--r--
2026-07-01 19:48
batadv_packet.h
21.13
KB
-rw-r--r--
2026-07-01 19:48
batman_adv.h
16.49
KB
-rw-r--r--
2026-07-01 19:48
baycom.h
883
B
-rw-r--r--
2026-07-01 19:48
bcm933xx_hcs.h
419
B
-rw-r--r--
2026-07-01 19:48
bfs_fs.h
1.86
KB
-rw-r--r--
2026-07-01 19:48
binfmts.h
776
B
-rw-r--r--
2026-07-01 19:48
blkpg.h
904
B
-rw-r--r--
2026-07-01 19:48
blktrace_api.h
4.59
KB
-rw-r--r--
2026-07-01 19:48
blkzoned.h
6.34
KB
-rw-r--r--
2026-07-01 19:48
bpf.h
269.3
KB
-rw-r--r--
2026-07-01 19:48
bpf_common.h
1.33
KB
-rw-r--r--
2026-07-01 19:48
bpf_perf_event.h
529
B
-rw-r--r--
2026-07-01 19:48
bpqether.h
981
B
-rw-r--r--
2026-07-01 19:48
bsg.h
2.44
KB
-rw-r--r--
2026-07-01 19:48
bt-bmc.h
572
B
-rw-r--r--
2026-07-01 19:48
btf.h
5.46
KB
-rw-r--r--
2026-07-01 19:48
btrfs.h
36.28
KB
-rw-r--r--
2026-07-01 19:48
btrfs_tree.h
34.77
KB
-rw-r--r--
2026-07-01 19:48
cachefiles.h
1.61
KB
-rw-r--r--
2026-07-01 19:48
can.h
10.95
KB
-rw-r--r--
2026-07-01 19:48
capability.h
13.21
KB
-rw-r--r--
2026-07-01 19:48
capi.h
3.05
KB
-rw-r--r--
2026-07-01 19:48
cciss_defs.h
3.2
KB
-rw-r--r--
2026-07-01 19:48
cciss_ioctl.h
2.7
KB
-rw-r--r--
2026-07-01 19:48
ccs.h
767
B
-rw-r--r--
2026-07-01 19:48
cdrom.h
28.87
KB
-rw-r--r--
2026-07-01 19:48
cec-funcs.h
53.14
KB
-rw-r--r--
2026-07-01 19:48
cec.h
41.17
KB
-rw-r--r--
2026-07-01 19:48
cfm_bridge.h
1.42
KB
-rw-r--r--
2026-07-01 19:48
cgroupstats.h
2.06
KB
-rw-r--r--
2026-07-01 19:48
chio.h
5.16
KB
-rw-r--r--
2026-07-01 19:48
close_range.h
377
B
-rw-r--r--
2026-07-01 19:48
cn_proc.h
4.06
KB
-rw-r--r--
2026-07-01 19:48
coda.h
17.79
KB
-rw-r--r--
2026-07-01 19:48
coff.h
12.25
KB
-rw-r--r--
2026-07-01 19:48
comedi.h
54.18
KB
-rw-r--r--
2026-07-01 19:48
connector.h
2.2
KB
-rw-r--r--
2026-07-01 19:48
const.h
991
B
-rw-r--r--
2026-07-01 19:48
coresight-stm.h
747
B
-rw-r--r--
2026-07-01 19:48
counter.h
4.77
KB
-rw-r--r--
2026-07-01 19:48
cramfs_fs.h
3.47
KB
-rw-r--r--
2026-07-01 19:48
cryptouser.h
5.2
KB
-rw-r--r--
2026-07-01 19:48
cuda.h
905
B
-rw-r--r--
2026-07-01 19:48
cxl_mem.h
7.8
KB
-rw-r--r--
2026-07-01 19:48
cyclades.h
969
B
-rw-r--r--
2026-07-01 19:48
cycx_cfm.h
2.92
KB
-rw-r--r--
2026-07-01 19:48
dcbnl.h
24.97
KB
-rw-r--r--
2026-07-01 19:48
dccp.h
6.29
KB
-rw-r--r--
2026-07-01 19:48
devlink.h
22.17
KB
-rw-r--r--
2026-07-01 19:48
dlm.h
2.52
KB
-rw-r--r--
2026-07-01 19:48
dlm_device.h
2.48
KB
-rw-r--r--
2026-07-01 19:48
dlm_plock.h
916
B
-rw-r--r--
2026-07-01 19:48
dlmconstants.h
4.97
KB
-rw-r--r--
2026-07-01 19:48
dm-ioctl.h
11.33
KB
-rw-r--r--
2026-07-01 19:48
dm-log-userspace.h
14.83
KB
-rw-r--r--
2026-07-01 19:48
dma-buf.h
7.17
KB
-rw-r--r--
2026-07-01 19:48
dma-heap.h
1.36
KB
-rw-r--r--
2026-07-01 19:48
dns_resolver.h
3.86
KB
-rw-r--r--
2026-07-01 19:48
dpll.h
5.84
KB
-rw-r--r--
2026-07-01 19:48
dqblk_xfs.h
9.17
KB
-rw-r--r--
2026-07-01 19:48
dw100.h
357
B
-rw-r--r--
2026-07-01 19:48
edd.h
5.47
KB
-rw-r--r--
2026-07-01 19:48
efs_fs_sb.h
2.17
KB
-rw-r--r--
2026-07-01 19:48
elf-em.h
2.57
KB
-rw-r--r--
2026-07-01 19:48
elf-fdpic.h
1.58
KB
-rw-r--r--
2026-07-01 19:48
elf.h
15.13
KB
-rw-r--r--
2026-07-01 19:48
errno.h
23
B
-rw-r--r--
2026-07-01 19:48
errqueue.h
1.94
KB
-rw-r--r--
2026-07-01 19:48
erspan.h
1.03
KB
-rw-r--r--
2026-07-01 19:48
ethtool.h
86.73
KB
-rw-r--r--
2026-07-01 19:48
ethtool_netlink.h
26.38
KB
-rw-r--r--
2026-07-01 19:48
eventfd.h
264
B
-rw-r--r--
2026-07-01 19:48
eventpoll.h
2.53
KB
-rw-r--r--
2026-07-01 19:48
ext4.h
4.03
KB
-rw-r--r--
2026-07-01 19:48
f2fs.h
3.28
KB
-rw-r--r--
2026-07-01 19:48
fadvise.h
842
B
-rw-r--r--
2026-07-01 19:48
falloc.h
3.56
KB
-rw-r--r--
2026-07-01 19:48
fanotify.h
8.17
KB
-rw-r--r--
2026-07-01 19:48
fb.h
16.09
KB
-rw-r--r--
2026-07-01 19:48
fcntl.h
4.44
KB
-rw-r--r--
2026-07-01 19:48
fd.h
11.83
KB
-rw-r--r--
2026-07-01 19:48
fdreg.h
5.24
KB
-rw-r--r--
2026-07-01 19:48
fib_rules.h
1.99
KB
-rw-r--r--
2026-07-01 19:48
fiemap.h
2.71
KB
-rw-r--r--
2026-07-01 19:48
filter.h
2.16
KB
-rw-r--r--
2026-07-01 19:48
firewire-cdev.h
49.53
KB
-rw-r--r--
2026-07-01 19:48
firewire-constants.h
3.16
KB
-rw-r--r--
2026-07-01 19:48
fou.h
819
B
-rw-r--r--
2026-07-01 19:48
fpga-dfl.h
8.52
KB
-rw-r--r--
2026-07-01 19:48
fs.h
13.94
KB
-rw-r--r--
2026-07-01 19:48
fscrypt.h
6.44
KB
-rw-r--r--
2026-07-01 19:48
fsi.h
3.02
KB
-rw-r--r--
2026-07-01 19:48
fsl_hypervisor.h
7.13
KB
-rw-r--r--
2026-07-01 19:48
fsl_mc.h
734
B
-rw-r--r--
2026-07-01 19:48
fsmap.h
4.3
KB
-rw-r--r--
2026-07-01 19:48
fsverity.h
3.11
KB
-rw-r--r--
2026-07-01 19:48
fuse.h
27.04
KB
-rw-r--r--
2026-07-01 19:48
futex.h
5.98
KB
-rw-r--r--
2026-07-01 19:48
gameport.h
897
B
-rw-r--r--
2026-07-01 19:48
gen_stats.h
1.49
KB
-rw-r--r--
2026-07-01 19:48
genetlink.h
2.19
KB
-rw-r--r--
2026-07-01 19:48
gfs2_ondisk.h
14.43
KB
-rw-r--r--
2026-07-01 19:48
gpio.h
19.46
KB
-rw-r--r--
2026-07-01 19:48
gsmmux.h
4.4
KB
-rw-r--r--
2026-07-01 19:48
gtp.h
734
B
-rw-r--r--
2026-07-01 19:48
handshake.h
1.61
KB
-rw-r--r--
2026-07-01 19:48
hash_info.h
1.01
KB
-rw-r--r--
2026-07-01 19:48
hdlc.h
637
B
-rw-r--r--
2026-07-01 19:48
hdlcdrv.h
2.84
KB
-rw-r--r--
2026-07-01 19:48
hdreg.h
22.17
KB
-rw-r--r--
2026-07-01 19:48
hid.h
2.04
KB
-rw-r--r--
2026-07-01 19:48
hiddev.h
6.2
KB
-rw-r--r--
2026-07-01 19:48
hidraw.h
2
KB
-rw-r--r--
2026-07-01 19:48
hpet.h
743
B
-rw-r--r--
2026-07-01 19:48
hsr_netlink.h
1.08
KB
-rw-r--r--
2026-07-01 19:48
hw_breakpoint.h
605
B
-rw-r--r--
2026-07-01 19:48
hyperv.h
10.91
KB
-rw-r--r--
2026-07-01 19:48
i2c-dev.h
1.83
KB
-rw-r--r--
2026-07-01 19:48
i2c.h
6.73
KB
-rw-r--r--
2026-07-01 19:48
i2o-dev.h
11.28
KB
-rw-r--r--
2026-07-01 19:48
i8k.h
1.49
KB
-rw-r--r--
2026-07-01 19:48
icmp.h
4.67
KB
-rw-r--r--
2026-07-01 19:48
icmpv6.h
4.17
KB
-rw-r--r--
2026-07-01 19:48
idxd.h
9.11
KB
-rw-r--r--
2026-07-01 19:48
if.h
10.67
KB
-rw-r--r--
2026-07-01 19:48
if_addr.h
2.09
KB
-rw-r--r--
2026-07-01 19:48
if_addrlabel.h
721
B
-rw-r--r--
2026-07-01 19:48
if_alg.h
1.56
KB
-rw-r--r--
2026-07-01 19:48
if_arcnet.h
3.63
KB
-rw-r--r--
2026-07-01 19:48
if_arp.h
6.43
KB
-rw-r--r--
2026-07-01 19:48
if_bonding.h
5.02
KB
-rw-r--r--
2026-07-01 19:48
if_bridge.h
20.18
KB
-rw-r--r--
2026-07-01 19:48
if_cablemodem.h
986
B
-rw-r--r--
2026-07-01 19:48
if_eql.h
1.32
KB
-rw-r--r--
2026-07-01 19:48
if_ether.h
8.56
KB
-rw-r--r--
2026-07-01 19:48
if_fc.h
1.7
KB
-rw-r--r--
2026-07-01 19:48
if_fddi.h
4.27
KB
-rw-r--r--
2026-07-01 19:48
if_hippi.h
4.14
KB
-rw-r--r--
2026-07-01 19:48
if_infiniband.h
1.22
KB
-rw-r--r--
2026-07-01 19:48
if_link.h
54.63
KB
-rw-r--r--
2026-07-01 19:48
if_ltalk.h
210
B
-rw-r--r--
2026-07-01 19:48
if_macsec.h
6.35
KB
-rw-r--r--
2026-07-01 19:48
if_packet.h
8.07
KB
-rw-r--r--
2026-07-01 19:48
if_phonet.h
424
B
-rw-r--r--
2026-07-01 19:48
if_plip.h
660
B
-rw-r--r--
2026-07-01 19:48
if_ppp.h
29
B
-rw-r--r--
2026-07-01 19:48
if_pppol2tp.h
3.23
KB
-rw-r--r--
2026-07-01 19:48
if_pppox.h
4.76
KB
-rw-r--r--
2026-07-01 19:48
if_slip.h
872
B
-rw-r--r--
2026-07-01 19:48
if_team.h
2.54
KB
-rw-r--r--
2026-07-01 19:48
if_tun.h
4.21
KB
-rw-r--r--
2026-07-01 19:48
if_tunnel.h
4.79
KB
-rw-r--r--
2026-07-01 19:48
if_vlan.h
1.79
KB
-rw-r--r--
2026-07-01 19:48
if_x25.h
881
B
-rw-r--r--
2026-07-01 19:48
if_xdp.h
4.89
KB
-rw-r--r--
2026-07-01 19:48
ife.h
351
B
-rw-r--r--
2026-07-01 19:48
igmp.h
2.99
KB
-rw-r--r--
2026-07-01 19:48
ila.h
1.22
KB
-rw-r--r--
2026-07-01 19:48
in.h
10.61
KB
-rw-r--r--
2026-07-01 19:48
in6.h
7.4
KB
-rw-r--r--
2026-07-01 19:48
in_route.h
936
B
-rw-r--r--
2026-07-01 19:48
inet_diag.h
4.9
KB
-rw-r--r--
2026-07-01 19:48
inotify.h
3.21
KB
-rw-r--r--
2026-07-01 19:48
input-event-codes.h
29.55
KB
-rw-r--r--
2026-07-01 19:48
input.h
15.84
KB
-rw-r--r--
2026-07-01 19:48
io_uring.h
19.25
KB
-rw-r--r--
2026-07-01 19:48
ioam6.h
2.33
KB
-rw-r--r--
2026-07-01 19:48
ioam6_genl.h
945
B
-rw-r--r--
2026-07-01 19:48
ioam6_iptunnel.h
1.26
KB
-rw-r--r--
2026-07-01 19:48
ioctl.h
163
B
-rw-r--r--
2026-07-01 19:48
iommu.h
4.79
KB
-rw-r--r--
2026-07-01 19:48
iommufd.h
25.24
KB
-rw-r--r--
2026-07-01 19:48
ioprio.h
4.08
KB
-rw-r--r--
2026-07-01 19:48
ip.h
4.73
KB
-rw-r--r--
2026-07-01 19:48
ip6_tunnel.h
1.91
KB
-rw-r--r--
2026-07-01 19:48
ip_vs.h
13.8
KB
-rw-r--r--
2026-07-01 19:48
ipc.h
2.05
KB
-rw-r--r--
2026-07-01 19:48
ipmi.h
15.08
KB
-rw-r--r--
2026-07-01 19:48
ipmi_bmc.h
488
B
-rw-r--r--
2026-07-01 19:48
ipmi_msgdefs.h
3.35
KB
-rw-r--r--
2026-07-01 19:48
ipmi_ssif_bmc.h
441
B
-rw-r--r--
2026-07-01 19:48
ipsec.h
947
B
-rw-r--r--
2026-07-01 19:48
ipv6.h
4.22
KB
-rw-r--r--
2026-07-01 19:48
ipv6_route.h
1.86
KB
-rw-r--r--
2026-07-01 19:48
irqnr.h
104
B
-rw-r--r--
2026-07-01 19:48
iso_fs.h
6.33
KB
-rw-r--r--
2026-07-01 19:48
isst_if.h
14.92
KB
-rw-r--r--
2026-07-01 19:48
ivtv.h
2.95
KB
-rw-r--r--
2026-07-01 19:48
ivtvfb.h
1.18
KB
-rw-r--r--
2026-07-01 19:48
jffs2.h
6.65
KB
-rw-r--r--
2026-07-01 19:48
joystick.h
3.35
KB
-rw-r--r--
2026-07-01 19:48
kcm.h
822
B
-rw-r--r--
2026-07-01 19:48
kcmp.h
522
B
-rw-r--r--
2026-07-01 19:48
kcov.h
1.92
KB
-rw-r--r--
2026-07-01 19:48
kd.h
6.3
KB
-rw-r--r--
2026-07-01 19:48
kdev_t.h
383
B
-rw-r--r--
2026-07-01 19:48
kernel-page-flags.h
900
B
-rw-r--r--
2026-07-01 19:48
kernel.h
194
B
-rw-r--r--
2026-07-01 19:48
kernelcapi.h
1019
B
-rw-r--r--
2026-07-01 19:48
kexec.h
2
KB
-rw-r--r--
2026-07-01 19:48
keyboard.h
13.14
KB
-rw-r--r--
2026-07-01 19:48
keyctl.h
5.86
KB
-rw-r--r--
2026-07-01 19:48
kfd_ioctl.h
52.73
KB
-rw-r--r--
2026-07-01 19:48
kfd_sysfs.h
5.01
KB
-rw-r--r--
2026-07-01 19:48
kvm.h
62.28
KB
-rw-r--r--
2026-07-01 19:48
kvm_para.h
1001
B
-rw-r--r--
2026-07-01 19:48
l2tp.h
5.61
KB
-rw-r--r--
2026-07-01 19:48
landlock.h
9.19
KB
-rw-r--r--
2026-07-01 19:48
libc-compat.h
8.09
KB
-rw-r--r--
2026-07-01 19:48
limits.h
937
B
-rw-r--r--
2026-07-01 19:48
lirc.h
8.13
KB
-rw-r--r--
2026-07-01 19:48
llc.h
3.09
KB
-rw-r--r--
2026-07-01 19:48
loadpin.h
834
B
-rw-r--r--
2026-07-01 19:48
loop.h
3.32
KB
-rw-r--r--
2026-07-01 19:48
lp.h
4.09
KB
-rw-r--r--
2026-07-01 19:48
lsm.h
2.5
KB
-rw-r--r--
2026-07-01 19:48
lwtunnel.h
2.31
KB
-rw-r--r--
2026-07-01 19:48
magic.h
3.77
KB
-rw-r--r--
2026-07-01 19:48
major.h
4.55
KB
-rw-r--r--
2026-07-01 19:48
map_to_14segment.h
9.28
KB
-rw-r--r--
2026-07-01 19:48
map_to_7segment.h
6.45
KB
-rw-r--r--
2026-07-01 19:48
matroxfb.h
1.43
KB
-rw-r--r--
2026-07-01 19:48
max2175.h
1.01
KB
-rw-r--r--
2026-07-01 19:48
mctp.h
1.45
KB
-rw-r--r--
2026-07-01 19:48
mdio.h
23.54
KB
-rw-r--r--
2026-07-01 19:48
media-bus-format.h
7.15
KB
-rw-r--r--
2026-07-01 19:48
media.h
12.46
KB
-rw-r--r--
2026-07-01 19:48
mei.h
3.39
KB
-rw-r--r--
2026-07-01 19:48
mei_uuid.h
738
B
-rw-r--r--
2026-07-01 19:48
membarrier.h
9.34
KB
-rw-r--r--
2026-07-01 19:48
memfd.h
1.43
KB
-rw-r--r--
2026-07-01 19:48
mempolicy.h
2.51
KB
-rw-r--r--
2026-07-01 19:48
mii.h
9.33
KB
-rw-r--r--
2026-07-01 19:48
minix_fs.h
2.07
KB
-rw-r--r--
2026-07-01 19:48
mman.h
1.75
KB
-rw-r--r--
2026-07-01 19:48
mmtimer.h
2.07
KB
-rw-r--r--
2026-07-01 19:48
module.h
293
B
-rw-r--r--
2026-07-01 19:48
mount.h
7.75
KB
-rw-r--r--
2026-07-01 19:48
mpls.h
2.25
KB
-rw-r--r--
2026-07-01 19:48
mpls_iptunnel.h
761
B
-rw-r--r--
2026-07-01 19:48
mptcp.h
3.77
KB
-rw-r--r--
2026-07-01 19:48
mptcp_pm.h
4.48
KB
-rw-r--r--
2026-07-01 19:48
mqueue.h
2.15
KB
-rw-r--r--
2026-07-01 19:48
mroute.h
5.78
KB
-rw-r--r--
2026-07-01 19:48
mroute6.h
4.89
KB
-rw-r--r--
2026-07-01 19:48
mrp_bridge.h
1.67
KB
-rw-r--r--
2026-07-01 19:48
msdos_fs.h
6.57
KB
-rw-r--r--
2026-07-01 19:48
msg.h
3.31
KB
-rw-r--r--
2026-07-01 19:48
mtio.h
7.98
KB
-rw-r--r--
2026-07-01 19:48
nbd-netlink.h
2.35
KB
-rw-r--r--
2026-07-01 19:48
nbd.h
3.53
KB
-rw-r--r--
2026-07-01 19:48
ncsi.h
4.71
KB
-rw-r--r--
2026-07-01 19:48
ndctl.h
6.66
KB
-rw-r--r--
2026-07-01 19:48
neighbour.h
5.96
KB
-rw-r--r--
2026-07-01 19:48
net.h
2.04
KB
-rw-r--r--
2026-07-01 19:48
net_dropmon.h
2.85
KB
-rw-r--r--
2026-07-01 19:48
net_namespace.h
715
B
-rw-r--r--
2026-07-01 19:48
net_tstamp.h
5.97
KB
-rw-r--r--
2026-07-01 19:48
netconf.h
614
B
-rw-r--r--
2026-07-01 19:48
netdev.h
4.23
KB
-rw-r--r--
2026-07-01 19:48
netdevice.h
2.2
KB
-rw-r--r--
2026-07-01 19:48
netfilter.h
1.69
KB
-rw-r--r--
2026-07-01 19:48
netfilter_arp.h
445
B
-rw-r--r--
2026-07-01 19:48
netfilter_bridge.h
1.21
KB
-rw-r--r--
2026-07-01 19:48
netfilter_ipv4.h
1.45
KB
-rw-r--r--
2026-07-01 19:48
netfilter_ipv6.h
1.35
KB
-rw-r--r--
2026-07-01 19:48
netlink.h
12.1
KB
-rw-r--r--
2026-07-01 19:48
netlink_diag.h
1.49
KB
-rw-r--r--
2026-07-01 19:48
netrom.h
807
B
-rw-r--r--
2026-07-01 19:48
nexthop.h
2.76
KB
-rw-r--r--
2026-07-01 19:48
nfc.h
10.97
KB
-rw-r--r--
2026-07-01 19:48
nfs.h
4.36
KB
-rw-r--r--
2026-07-01 19:48
nfs2.h
1.43
KB
-rw-r--r--
2026-07-01 19:48
nfs3.h
2.4
KB
-rw-r--r--
2026-07-01 19:48
nfs4.h
6.39
KB
-rw-r--r--
2026-07-01 19:48
nfs4_mount.h
1.89
KB
-rw-r--r--
2026-07-01 19:48
nfs_fs.h
1.62
KB
-rw-r--r--
2026-07-01 19:48
nfs_idmap.h
2.19
KB
-rw-r--r--
2026-07-01 19:48
nfs_mount.h
2.09
KB
-rw-r--r--
2026-07-01 19:48
nfsacl.h
718
B
-rw-r--r--
2026-07-01 19:48
nfsd_netlink.h
933
B
-rw-r--r--
2026-07-01 19:48
nilfs2_api.h
7.41
KB
-rw-r--r--
2026-07-01 19:48
nilfs2_ondisk.h
17.66
KB
-rw-r--r--
2026-07-01 19:48
nitro_enclaves.h
12.85
KB
-rw-r--r--
2026-07-01 19:48
nl80211-vnd-intel.h
4.49
KB
-rw-r--r--
2026-07-01 19:48
nl80211.h
334.96
KB
-rw-r--r--
2026-07-01 19:48
npcm-video.h
1.19
KB
-rw-r--r--
2026-07-01 19:48
nsfs.h
639
B
-rw-r--r--
2026-07-01 19:48
nsm.h
740
B
-rw-r--r--
2026-07-01 19:48
nubus.h
8
KB
-rw-r--r--
2026-07-01 19:48
nvme_ioctl.h
2.43
KB
-rw-r--r--
2026-07-01 19:48
nvram.h
532
B
-rw-r--r--
2026-07-01 19:48
omap3isp.h
20.45
KB
-rw-r--r--
2026-07-01 19:48
omapfb.h
5.78
KB
-rw-r--r--
2026-07-01 19:48
oom.h
511
B
-rw-r--r--
2026-07-01 19:48
openat2.h
1.42
KB
-rw-r--r--
2026-07-01 19:48
openvswitch.h
40.05
KB
-rw-r--r--
2026-07-01 19:48
packet_diag.h
1.63
KB
-rw-r--r--
2026-07-01 19:48
param.h
141
B
-rw-r--r--
2026-07-01 19:48
parport.h
3.75
KB
-rw-r--r--
2026-07-01 19:48
patchkey.h
892
B
-rw-r--r--
2026-07-01 19:48
pci.h
1.35
KB
-rw-r--r--
2026-07-01 19:48
pci_regs.h
60.43
KB
-rw-r--r--
2026-07-01 19:48
pcitest.h
920
B
-rw-r--r--
2026-07-01 19:48
perf_event.h
42.28
KB
-rw-r--r--
2026-07-01 19:48
personality.h
2.05
KB
-rw-r--r--
2026-07-01 19:48
pfkeyv2.h
10.39
KB
-rw-r--r--
2026-07-01 19:48
pfrut.h
7.82
KB
-rw-r--r--
2026-07-01 19:48
pg.h
2.34
KB
-rw-r--r--
2026-07-01 19:48
phantom.h
1.62
KB
-rw-r--r--
2026-07-01 19:48
phonet.h
4.57
KB
-rw-r--r--
2026-07-01 19:48
pidfd.h
256
B
-rw-r--r--
2026-07-01 19:48
pkt_cls.h
18.15
KB
-rw-r--r--
2026-07-01 19:48
pkt_sched.h
28.66
KB
-rw-r--r--
2026-07-01 19:48
pktcdvd.h
2.35
KB
-rw-r--r--
2026-07-01 19:48
pmu.h
5.32
KB
-rw-r--r--
2026-07-01 19:48
poll.h
22
B
-rw-r--r--
2026-07-01 19:48
posix_acl.h
1.22
KB
-rw-r--r--
2026-07-01 19:48
posix_acl_xattr.h
1.09
KB
-rw-r--r--
2026-07-01 19:48
posix_types.h
1.07
KB
-rw-r--r--
2026-07-01 19:48
ppdev.h
3.21
KB
-rw-r--r--
2026-07-01 19:48
ppp-comp.h
2.47
KB
-rw-r--r--
2026-07-01 19:48
ppp-ioctl.h
5.59
KB
-rw-r--r--
2026-07-01 19:48
ppp_defs.h
5.43
KB
-rw-r--r--
2026-07-01 19:48
pps.h
4.62
KB
-rw-r--r--
2026-07-01 19:48
pr.h
1.59
KB
-rw-r--r--
2026-07-01 19:48
prctl.h
10.42
KB
-rw-r--r--
2026-07-01 19:48
psample.h
2.22
KB
-rw-r--r--
2026-07-01 19:48
psci.h
5.02
KB
-rw-r--r--
2026-07-01 19:48
psp-dbc.h
5.16
KB
-rw-r--r--
2026-07-01 19:48
psp-sev.h
4.39
KB
-rw-r--r--
2026-07-01 19:48
ptp_clock.h
7.46
KB
-rw-r--r--
2026-07-01 19:48
ptrace.h
5.37
KB
-rw-r--r--
2026-07-01 19:48
qemu_fw_cfg.h
2.41
KB
-rw-r--r--
2026-07-01 19:48
qnx4_fs.h
2.27
KB
-rw-r--r--
2026-07-01 19:48
qnxtypes.h
624
B
-rw-r--r--
2026-07-01 19:48
qrtr.h
893
B
-rw-r--r--
2026-07-01 19:48
quota.h
6.16
KB
-rw-r--r--
2026-07-01 19:48
radeonfb.h
360
B
-rw-r--r--
2026-07-01 19:48
random.h
1.38
KB
-rw-r--r--
2026-07-01 19:48
rds.h
10.91
KB
-rw-r--r--
2026-07-01 19:48
reboot.h
1.31
KB
-rw-r--r--
2026-07-01 19:48
reiserfs_fs.h
775
B
-rw-r--r--
2026-07-01 19:48
reiserfs_xattr.h
542
B
-rw-r--r--
2026-07-01 19:48
remoteproc_cdev.h
1.08
KB
-rw-r--r--
2026-07-01 19:48
resource.h
2.53
KB
-rw-r--r--
2026-07-01 19:48
rfkill.h
5.96
KB
-rw-r--r--
2026-07-01 19:48
rio_cm_cdev.h
3.17
KB
-rw-r--r--
2026-07-01 19:48
rio_mport_cdev.h
9.11
KB
-rw-r--r--
2026-07-01 19:48
rkisp1-config.h
33.39
KB
-rw-r--r--
2026-07-01 19:48
romfs_fs.h
1.21
KB
-rw-r--r--
2026-07-01 19:48
rose.h
2.18
KB
-rw-r--r--
2026-07-01 19:48
route.h
2.28
KB
-rw-r--r--
2026-07-01 19:48
rpl.h
854
B
-rw-r--r--
2026-07-01 19:48
rpl_iptunnel.h
424
B
-rw-r--r--
2026-07-01 19:48
rpmsg.h
1.29
KB
-rw-r--r--
2026-07-01 19:48
rpmsg_types.h
288
B
-rw-r--r--
2026-07-01 19:48
rseq.h
5.32
KB
-rw-r--r--
2026-07-01 19:48
rtc.h
5.19
KB
-rw-r--r--
2026-07-01 19:48
rtnetlink.h
20.85
KB
-rw-r--r--
2026-07-01 19:48
rxrpc.h
4.81
KB
-rw-r--r--
2026-07-01 19:48
scc.h
4.52
KB
-rw-r--r--
2026-07-01 19:48
sched.h
6.12
KB
-rw-r--r--
2026-07-01 19:48
scif_ioctl.h
6.23
KB
-rw-r--r--
2026-07-01 19:48
screen_info.h
2.42
KB
-rw-r--r--
2026-07-01 19:48
sctp.h
35.17
KB
-rw-r--r--
2026-07-01 19:48
seccomp.h
5.85
KB
-rw-r--r--
2026-07-01 19:48
securebits.h
2.64
KB
-rw-r--r--
2026-07-01 19:48
sed-opal.h
5.22
KB
-rw-r--r--
2026-07-01 19:48
seg6.h
1.14
KB
-rw-r--r--
2026-07-01 19:48
seg6_genl.h
589
B
-rw-r--r--
2026-07-01 19:48
seg6_hmac.h
423
B
-rw-r--r--
2026-07-01 19:48
seg6_iptunnel.h
983
B
-rw-r--r--
2026-07-01 19:48
seg6_local.h
3.78
KB
-rw-r--r--
2026-07-01 19:48
selinux_netlink.h
1.17
KB
-rw-r--r--
2026-07-01 19:48
sem.h
2.98
KB
-rw-r--r--
2026-07-01 19:48
serial.h
5.12
KB
-rw-r--r--
2026-07-01 19:48
serial_core.h
4.93
KB
-rw-r--r--
2026-07-01 19:48
serial_reg.h
15.65
KB
-rw-r--r--
2026-07-01 19:48
serio.h
2.05
KB
-rw-r--r--
2026-07-01 19:48
sev-guest.h
2.31
KB
-rw-r--r--
2026-07-01 19:48
shm.h
3.71
KB
-rw-r--r--
2026-07-01 19:48
signal.h
388
B
-rw-r--r--
2026-07-01 19:48
signalfd.h
1.2
KB
-rw-r--r--
2026-07-01 19:48
smc.h
8.46
KB
-rw-r--r--
2026-07-01 19:48
smc_diag.h
2.88
KB
-rw-r--r--
2026-07-01 19:48
smiapp.h
1.03
KB
-rw-r--r--
2026-07-01 19:48
snmp.h
14.19
KB
-rw-r--r--
2026-07-01 19:48
sock_diag.h
1.27
KB
-rw-r--r--
2026-07-01 19:48
socket.h
1.02
KB
-rw-r--r--
2026-07-01 19:48
sockios.h
6.69
KB
-rw-r--r--
2026-07-01 19:48
sonet.h
2.24
KB
-rw-r--r--
2026-07-01 19:48
sonypi.h
5.18
KB
-rw-r--r--
2026-07-01 19:48
sound.h
1.21
KB
-rw-r--r--
2026-07-01 19:48
soundcard.h
44.97
KB
-rw-r--r--
2026-07-01 19:48
stat.h
6.84
KB
-rw-r--r--
2026-07-01 19:48
stddef.h
1.94
KB
-rw-r--r--
2026-07-01 19:48
stm.h
1.24
KB
-rw-r--r--
2026-07-01 19:48
string.h
238
B
-rw-r--r--
2026-07-01 19:48
suspend_ioctls.h
1.4
KB
-rw-r--r--
2026-07-01 19:48
swab.h
6.78
KB
-rw-r--r--
2026-07-01 19:48
switchtec_ioctl.h
5.14
KB
-rw-r--r--
2026-07-01 19:48
sync_file.h
3.37
KB
-rw-r--r--
2026-07-01 19:48
synclink.h
8.77
KB
-rw-r--r--
2026-07-01 19:48
sysctl.h
25.42
KB
-rw-r--r--
2026-07-01 19:48
sysinfo.h
1.02
KB
-rw-r--r--
2026-07-01 19:48
target_core_user.h
4.54
KB
-rw-r--r--
2026-07-01 19:48
taskstats.h
8.13
KB
-rw-r--r--
2026-07-01 19:48
tcp.h
16.62
KB
-rw-r--r--
2026-07-01 19:48
tcp_metrics.h
1.51
KB
-rw-r--r--
2026-07-01 19:48
tdx-guest.h
1.27
KB
-rw-r--r--
2026-07-01 19:48
tee.h
13.09
KB
-rw-r--r--
2026-07-01 19:48
termios.h
172
B
-rw-r--r--
2026-07-01 19:48
thermal.h
3.23
KB
-rw-r--r--
2026-07-01 19:48
thp7312.h
659
B
-rw-r--r--
2026-07-01 19:48
time.h
1.71
KB
-rw-r--r--
2026-07-01 19:48
time_types.h
1.24
KB
-rw-r--r--
2026-07-01 19:48
timerfd.h
936
B
-rw-r--r--
2026-07-01 19:48
times.h
278
B
-rw-r--r--
2026-07-01 19:48
timex.h
7.63
KB
-rw-r--r--
2026-07-01 19:48
tiocl.h
1.69
KB
-rw-r--r--
2026-07-01 19:48
tipc.h
8.62
KB
-rw-r--r--
2026-07-01 19:48
tipc_config.h
14.57
KB
-rw-r--r--
2026-07-01 19:48
tipc_netlink.h
9.17
KB
-rw-r--r--
2026-07-01 19:48
tipc_sockets_diag.h
468
B
-rw-r--r--
2026-07-01 19:48
tls.h
7.06
KB
-rw-r--r--
2026-07-01 19:48
toshiba.h
1.88
KB
-rw-r--r--
2026-07-01 19:48
tps6594_pfsm.h
1.13
KB
-rw-r--r--
2026-07-01 19:48
tty.h
1.74
KB
-rw-r--r--
2026-07-01 19:48
tty_flags.h
4.4
KB
-rw-r--r--
2026-07-01 19:48
types.h
1.79
KB
-rw-r--r--
2026-07-01 19:48
ublk_cmd.h
11.69
KB
-rw-r--r--
2026-07-01 19:48
udf_fs_i.h
697
B
-rw-r--r--
2026-07-01 19:48
udmabuf.h
643
B
-rw-r--r--
2026-07-01 19:48
udp.h
1.65
KB
-rw-r--r--
2026-07-01 19:48
uhid.h
4.54
KB
-rw-r--r--
2026-07-01 19:48
uinput.h
9.04
KB
-rw-r--r--
2026-07-01 19:48
uio.h
732
B
-rw-r--r--
2026-07-01 19:48
uleds.h
798
B
-rw-r--r--
2026-07-01 19:48
ultrasound.h
4.46
KB
-rw-r--r--
2026-07-01 19:48
um_timetravel.h
3.87
KB
-rw-r--r--
2026-07-01 19:48
un.h
384
B
-rw-r--r--
2026-07-01 19:48
unistd.h
220
B
-rw-r--r--
2026-07-01 19:48
unix_diag.h
1.3
KB
-rw-r--r--
2026-07-01 19:48
usbdevice_fs.h
8.12
KB
-rw-r--r--
2026-07-01 19:48
usbip.h
1.47
KB
-rw-r--r--
2026-07-01 19:48
user_events.h
2.29
KB
-rw-r--r--
2026-07-01 19:48
userfaultfd.h
11.74
KB
-rw-r--r--
2026-07-01 19:48
userio.h
1.48
KB
-rw-r--r--
2026-07-01 19:48
utime.h
223
B
-rw-r--r--
2026-07-01 19:48
utsname.h
669
B
-rw-r--r--
2026-07-01 19:48
uuid.h
28
B
-rw-r--r--
2026-07-01 19:48
uvcvideo.h
2.57
KB
-rw-r--r--
2026-07-01 19:48
v4l2-common.h
2.01
KB
-rw-r--r--
2026-07-01 19:48
v4l2-controls.h
145.84
KB
-rw-r--r--
2026-07-01 19:48
v4l2-dv-timings.h
30.39
KB
-rw-r--r--
2026-07-01 19:48
v4l2-mediabus.h
5.11
KB
-rw-r--r--
2026-07-01 19:48
v4l2-subdev.h
9.77
KB
-rw-r--r--
2026-07-01 19:48
vbox_err.h
7.09
KB
-rw-r--r--
2026-07-01 19:48
vbox_vmmdev_types.h
11.42
KB
-rw-r--r--
2026-07-01 19:48
vboxguest.h
9.15
KB
-rw-r--r--
2026-07-01 19:48
vdpa.h
1.74
KB
-rw-r--r--
2026-07-01 19:48
vduse.h
9.58
KB
-rw-r--r--
2026-07-01 19:48
version.h
216
B
-rw-r--r--
2026-07-01 19:48
veth.h
224
B
-rw-r--r--
2026-07-01 19:48
vfio.h
70.18
KB
-rw-r--r--
2026-07-01 19:48
vfio_ccw.h
1.29
KB
-rw-r--r--
2026-07-01 19:48
vfio_zdev.h
2.48
KB
-rw-r--r--
2026-07-01 19:48
vhost.h
10.75
KB
-rw-r--r--
2026-07-01 19:48
vhost_types.h
5.14
KB
-rw-r--r--
2026-07-01 19:48
videodev2.h
98.5
KB
-rw-r--r--
2026-07-01 19:48
virtio_9p.h
2
KB
-rw-r--r--
2026-07-01 19:48
virtio_balloon.h
5.16
KB
-rw-r--r--
2026-07-01 19:48
virtio_blk.h
9.75
KB
-rw-r--r--
2026-07-01 19:48
virtio_bt.h
910
B
-rw-r--r--
2026-07-01 19:48
virtio_config.h
4.65
KB
-rw-r--r--
2026-07-01 19:48
virtio_console.h
3.08
KB
-rw-r--r--
2026-07-01 19:48
virtio_crypto.h
16.09
KB
-rw-r--r--
2026-07-01 19:48
virtio_fs.h
573
B
-rw-r--r--
2026-07-01 19:48
virtio_gpio.h
1.67
KB
-rw-r--r--
2026-07-01 19:48
virtio_gpu.h
11.19
KB
-rw-r--r--
2026-07-01 19:48
virtio_i2c.h
1.16
KB
-rw-r--r--
2026-07-01 19:48
virtio_ids.h
4.2
KB
-rw-r--r--
2026-07-01 19:48
virtio_input.h
2.46
KB
-rw-r--r--
2026-07-01 19:48
virtio_iommu.h
3.84
KB
-rw-r--r--
2026-07-01 19:48
virtio_mem.h
6.99
KB
-rw-r--r--
2026-07-01 19:48
virtio_mmio.h
4.85
KB
-rw-r--r--
2026-07-01 19:48
virtio_net.h
15.08
KB
-rw-r--r--
2026-07-01 19:48
virtio_pci.h
9.41
KB
-rw-r--r--
2026-07-01 19:48
virtio_pcidev.h
2.39
KB
-rw-r--r--
2026-07-01 19:48
virtio_pmem.h
882
B
-rw-r--r--
2026-07-01 19:48
virtio_ring.h
8.52
KB
-rw-r--r--
2026-07-01 19:48
virtio_rng.h
265
B
-rw-r--r--
2026-07-01 19:48
virtio_scmi.h
637
B
-rw-r--r--
2026-07-01 19:48
virtio_scsi.h
5.94
KB
-rw-r--r--
2026-07-01 19:48
virtio_snd.h
9.09
KB
-rw-r--r--
2026-07-01 19:48
virtio_types.h
2.1
KB
-rw-r--r--
2026-07-01 19:48
virtio_vsock.h
3.27
KB
-rw-r--r--
2026-07-01 19:48
vm_sockets.h
7.25
KB
-rw-r--r--
2026-07-01 19:48
vm_sockets_diag.h
963
B
-rw-r--r--
2026-07-01 19:48
vmcore.h
455
B
-rw-r--r--
2026-07-01 19:48
vsockmon.h
1.84
KB
-rw-r--r--
2026-07-01 19:48
vt.h
2.99
KB
-rw-r--r--
2026-07-01 19:48
vtpm_proxy.h
1.68
KB
-rw-r--r--
2026-07-01 19:48
wait.h
682
B
-rw-r--r--
2026-07-01 19:48
watch_queue.h
3.41
KB
-rw-r--r--
2026-07-01 19:48
watchdog.h
2.28
KB
-rw-r--r--
2026-07-01 19:48
wireguard.h
7.57
KB
-rw-r--r--
2026-07-01 19:48
wireless.h
41.7
KB
-rw-r--r--
2026-07-01 19:48
wmi.h
1.72
KB
-rw-r--r--
2026-07-01 19:48
wwan.h
295
B
-rw-r--r--
2026-07-01 19:48
x25.h
3.48
KB
-rw-r--r--
2026-07-01 19:48
xattr.h
2.95
KB
-rw-r--r--
2026-07-01 19:48
xdp_diag.h
1.43
KB
-rw-r--r--
2026-07-01 19:48
xfrm.h
12.42
KB
-rw-r--r--
2026-07-01 19:48
xilinx-v4l2-controls.h
2.91
KB
-rw-r--r--
2026-07-01 19:48
zorro.h
3.22
KB
-rw-r--r--
2026-07-01 19:48
zorro_ids.h
29.36
KB
-rw-r--r--
2026-07-01 19:48
Save
Rename
/* 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 * * @IOMMU_HW_CAP_PCI_PASID_EXEC: Execute Permission Supported, user ignores it * when the struct * iommu_hw_info::out_max_pasid_log2 is zero. * @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it * when the struct * iommu_hw_info::out_max_pasid_log2 is zero. */ enum iommufd_hw_capabilities { IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0, IOMMU_HW_CAP_PCI_PASID_EXEC = 1 << 1, IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2, }; /** * 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. * @out_max_pasid_log2: Output the width of PASIDs. 0 means no PASID support. * PCI devices turn to out_capabilities to check if the * specific capabilities is supported or not. * @__reserved: Must be 0 * * Query an iommu type specific hardware information data from an iommu behind * 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; __u8 out_max_pasid_log2; __u8 __reserved[3]; __aligned_u64 out_capabilities; }; #define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO) /* * 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