/usr/src/linux-headers-5.15.0-181/include/linux
NameSizeModeActions
amba/-0755rm
atomic/-0755rm
avf/-0755rm
bcma/-0755rm
byteorder/-0755rm
can/-0755rm
ceph/-0755rm
clk/-0755rm
crush/-0755rm
decompress/-0755rm
device/-0755rm
dma/-0755rm
dsa/-0755rm
extcon/-0755rm
firmware/-0755rm
fpga/-0755rm
fsl/-0755rm
gpio/-0755rm
greybus/-0755rm
hsi/-0755rm
i3c/-0755rm
iio/-0755rm
input/-0755rm
irqchip/-0755rm
isdn/-0755rm
lockd/-0755rm
mailbox/-0755rm
mdio/-0755rm
mfd/-0755rm
mlx4/-0755rm
mlx5/-0755rm
mmc/-0755rm
mtd/-0755rm
mux/-0755rm
net/-0755rm
netfilter/-0755rm
netfilter_arp/-0755rm
netfilter_bridge/-0755rm
netfilter_ipv4/-0755rm
netfilter_ipv6/-0755rm
pcs/-0755rm
perf/-0755rm
phy/-0755rm
pinctrl/-0755rm
platform_data/-0755rm
power/-0755rm
qed/-0755rm
raid/-0755rm
regulator/-0755rm
remoteproc/-0755rm
reset/-0755rm
rpmsg/-0755rm
rtc/-0755rm
sched/-0755rm
soc/-0755rm
soundwire/-0755rm
spi/-0755rm
ssb/-0755rm
sunrpc/-0755rm
surface_aggregator/-0755rm
ulpi/-0755rm
unaligned/-0755rm
usb/-0755rm
8250_pci.h10380644editdlrm
a.out.h3540644editdlrm
acct.h25510644editdlrm
acpi.h409020644editdlrm
acpi_dma.h31540644editdlrm
acpi_iort.h24030644editdlrm
acpi_mdio.h8190644editdlrm
acpi_pmtmr.h6740644editdlrm
acpi_viot.h4780644editdlrm
adb.h18320644editdlrm
adfs_fs.h5740644editdlrm
adreno-smmu-priv.h28070644editdlrm
adxl.h3100644editdlrm
aer.h18220644editdlrm
agpgart.h38810644editdlrm
agp_backend.h35340644editdlrm
ahci-remap.h6070644editdlrm
ahci_platform.h17470644editdlrm
aio.h6510644editdlrm
alarmtimer.h19900644editdlrm
alcor_pci.h90430644editdlrm
align.h5520644editdlrm
altera_jtaguart.h3790644editdlrm
altera_uart.h3970644editdlrm
amd-iommu.h63250644editdlrm
anon_inodes.h6700644editdlrm
apm-emulation.h15990644editdlrm
apm_bios.h23050644editdlrm
apple-gmux.h9180644editdlrm
apple_bl.h4980644editdlrm
arch_topology.h25510644editdlrm
arm-cci.h13900644editdlrm
arm-smccc.h173820644editdlrm
armada-37xx-rwtm-mailbox.h4310644editdlrm
arm_ffa.h75450644editdlrm
arm_sdei.h27300644editdlrm
array_size.h3320644editdlrm
ascii85.h5550644editdlrm
asn1.h18320644editdlrm
asn1_ber_bytecode.h25760644editdlrm
asn1_decoder.h4680644editdlrm
asn1_encoder.h10060644editdlrm
assoc_array.h29490644editdlrm
assoc_array_priv.h54230644editdlrm
async.h44390644editdlrm
async_tx.h68600644editdlrm
ata.h337990644editdlrm
atalk.h45860644editdlrm
ata_platform.h7490644editdlrm
ath9k_platform.h14770644editdlrm
atm.h2870644editdlrm
atmdev.h104770644editdlrm
atmel-isc-media.h21150644editdlrm
atmel-mci.h14290644editdlrm
atmel-ssc.h99710644editdlrm
atmel_pdc.h12950644editdlrm
atm_tcp.h5110644editdlrm
atomic.h26440644editdlrm
attribute_container.h28030644editdlrm
audit.h199210644editdlrm
auto_dev-ioctl.h2960644editdlrm
auto_fs.h2780644editdlrm
auxiliary_bus.h25390644editdlrm
auxvec.h3040644editdlrm
average.h24810644editdlrm
backing-dev-defs.h87530644editdlrm
backing-dev.h121890644editdlrm
backlight.h134470644editdlrm
badblocks.h21880644editdlrm
balloon_compaction.h58920644editdlrm
bcd.h5590644editdlrm
bch.h21520644editdlrm
bcm47xx_nvram.h10330644editdlrm
bcm47xx_sprom.h6160644editdlrm
bcm47xx_wdt.h5550644editdlrm
bcm963xx_nvram.h30360644editdlrm
bcm963xx_tag.h36850644editdlrm
binfmts.h46830644editdlrm
bio.h201080644editdlrm
bitfield.h54600644editdlrm
bitmap.h226640644editdlrm
bitops.h87330644editdlrm
bitrev.h25940644editdlrm
bits.h13870644editdlrm
bit_spinlock.h23600644editdlrm
blk-cgroup.h226480644editdlrm
blk-crypto.h41170644editdlrm
blk-mq-pci.h2690644editdlrm
blk-mq-rdma.h2730644editdlrm
blk-mq-virtio.h2930644editdlrm
blk-mq.h198340644editdlrm
blk-pm.h7080644editdlrm
blkdev.h580410644editdlrm
blkpg.h4360644editdlrm
blktrace_api.h38580644editdlrm
blk_types.h156690644editdlrm
blockgroup_lock.h8100644editdlrm
bma150.h12860644editdlrm
bootconfig.h87120644editdlrm
bootmem_info.h17330644editdlrm
bottom_half.h9740644editdlrm
bpf-cgroup.h187960644editdlrm
bpf-netns.h15590644editdlrm
bpf.h762120644editdlrm
bpfilter.h7910644editdlrm
bpfptr.h20290644editdlrm
bpf_lirc.h6980644editdlrm
bpf_local_storage.h53590644editdlrm
bpf_lsm.h14560644editdlrm
bpf_trace.h1660644editdlrm
bpf_types.h55360644editdlrm
bpf_verifier.h208650644editdlrm
brcmphy.h139940644editdlrm
bsearch.h6240644editdlrm
bsg-lib.h17590644editdlrm
bsg.h4920644editdlrm
btf.h74320644editdlrm
btf_ids.h54630644editdlrm
btree-128.h27370644editdlrm
btree-type.h39910644editdlrm
btree.h70000644editdlrm
btrfs.h1450644editdlrm
buffer_head.h148140644editdlrm
bug.h22200644editdlrm
build-salt.h3750644editdlrm
buildid.h5610644editdlrm
build_bug.h28230644editdlrm
bvec.h63190644editdlrm
c2port.h13840644editdlrm
cache.h26160644editdlrm
cacheinfo.h38370644editdlrm
capability.h84860644editdlrm
cb710.h54900644editdlrm
cciss_ioctl.h10530644editdlrm
ccp.h185770644editdlrm
cc_platform.h23780644editdlrm
cdev.h8450644editdlrm
cdrom.h91970644editdlrm
cfag12864b.h15090644editdlrm
cfi.h11520644editdlrm
cgroup-defs.h248150644editdlrm
cgroup.h288400644editdlrm
cgroup_rdma.h12060644editdlrm
cgroup_subsys.h12590644editdlrm
circ_buf.h11200644editdlrm
cleancache.h39820644editdlrm
cleanup.h49860644editdlrm
clk-provider.h593300644editdlrm
clk.h344180644editdlrm
clkdev.h13220644editdlrm
clockchips.h74450644editdlrm
clocksource.h102270644editdlrm
clocksource_ids.h2470644editdlrm
cm4000_cs.h1990644editdlrm
cma.h20040644editdlrm
cnt32_to_63.h35450644editdlrm
cn_proc.h18900644editdlrm
coda.h22150644editdlrm
compaction.h73190644editdlrm
compat.h321220644editdlrm
compiler-clang.h41500644editdlrm
compiler-gcc.h50210644editdlrm
compiler-intel.h9490644editdlrm
compiler-version.h5170644editdlrm
compiler.h85530644editdlrm
compiler_attributes.h135570644editdlrm
compiler_types.h110230644editdlrm
completion.h41010644editdlrm
component.h41630644editdlrm
configfs.h86830644editdlrm
connector.h39270644editdlrm
console.h77580644editdlrm
consolemap.h10760644editdlrm
console_struct.h72530644editdlrm
const.h4210644editdlrm
container.h6100644editdlrm
context_tracking.h33620644editdlrm
context_tracking_state.h16160644editdlrm
cookie.h12540644editdlrm
cordic.h21320644editdlrm
coredump.h11540644editdlrm
coresight-pmu.h13550644editdlrm
coresight-stm.h1520644editdlrm
coresight.h184490644editdlrm
counter.h153180644editdlrm
count_zeros.h14530644editdlrm
cper.h169470644editdlrm
cpu.h84850644editdlrm
cpufeature.h17510644editdlrm
cpufreq.h335510644editdlrm
cpuhotplug.h169490644editdlrm
cpuidle.h105160644editdlrm
cpuidle_haltpoll.h3120644editdlrm
cpumask.h300890644editdlrm
cpuset.h83510644editdlrm
cpu_cooling.h19010644editdlrm
cpu_pm.h24330644editdlrm
cpu_rmap.h17210644editdlrm
crash_core.h34650644editdlrm
crash_dump.h41490644editdlrm
crc-ccitt.h6090644editdlrm
crc-itu-t.h5310644editdlrm
crc-t10dif.h4530644editdlrm
crc4.h1920644editdlrm
crc7.h3160644editdlrm
crc8.h37470644editdlrm
crc16.h5400644editdlrm
crc32.h28940644editdlrm
crc32c.h3310644editdlrm
crc32poly.h6100644editdlrm
crc64.h2800644editdlrm
cred.h128040644editdlrm
crypto.h278900644editdlrm
cs5535.h62770644editdlrm
ctype.h19120644editdlrm
cuda.h6130644editdlrm
damon.h106010644editdlrm
dasd_mod.h2040644editdlrm
davinci_emac.h10800644editdlrm
dax.h67190644editdlrm
dca.h19220644editdlrm
dcache.h190760644editdlrm
dccp.h109880644editdlrm
debugfs.h122530644editdlrm
debugobjects.h40850644editdlrm
debug_locks.h16270644editdlrm
delay.h24900644editdlrm
delayacct.h55840644editdlrm
delayed_call.h7090644editdlrm
devcoredump.h22660644editdlrm
devfreq-event.h60950644editdlrm
devfreq.h143700644editdlrm
devfreq_cooling.h27630644editdlrm
device-mapper.h193710644editdlrm
device.h339970644editdlrm
device_cgroup.h16090644editdlrm
devm-helpers.h27400644editdlrm
devpts_fs.h11560644editdlrm
dev_printk.h94060644editdlrm
dfl.h24350644editdlrm
digsig.h12120644editdlrm
dim.h94210644editdlrm
dio.h110190644editdlrm
dirent.h2150644editdlrm
dlm.h60050644editdlrm
dlm_plock.h5320644editdlrm
dm-bufio.h49920644editdlrm
dm-dirty-log.h40380644editdlrm
dm-io.h19800644editdlrm
dm-kcopyd.h30130644editdlrm
dm-region-hash.h31820644editdlrm
dm9000.h9870644editdlrm
dma-buf-map.h83180644editdlrm
dma-buf.h209620644editdlrm
dma-direct.h36810644editdlrm
dma-direction.h4070644editdlrm
dma-fence-array.h21910644editdlrm
dma-fence-chain.h31440644editdlrm
dma-fence.h213570644editdlrm
dma-heap.h16160644editdlrm
dma-iommu.h22650644editdlrm
dma-map-ops.h131970644editdlrm
dma-mapping.h205890644editdlrm
dma-resv.h122360644editdlrm
dmaengine.h548510644editdlrm
dmapool.h18320644editdlrm
dmar.h79290644editdlrm
dmi.h43720644editdlrm
dnotify.h10440644editdlrm
dns_resolver.h13900644editdlrm
dqblk_qtree.h22380644editdlrm
dqblk_v1.h3270644editdlrm
dqblk_v2.h4060644editdlrm
drbd.h103110644editdlrm
drbd_genl.h220100644editdlrm
drbd_genl_api.h18080644editdlrm
drbd_limits.h80030644editdlrm
ds2782_battery.h1580644editdlrm
dtlk.h35840644editdlrm
dtpm.h16840644editdlrm
dw_apb_timer.h15660644editdlrm
dynamic_debug.h64710644editdlrm
dynamic_queue_limits.h38120644editdlrm
earlycpio.h3590644editdlrm
ecryptfs.h39150644editdlrm
edac.h199240644editdlrm
edd.h10770644editdlrm
eeprom_93cx6.h27070644editdlrm
eeprom_93xx46.h10620644editdlrm
efi-bgrt.h6440644editdlrm
efi.h430380644editdlrm
efi_embedded_fw.h10600644editdlrm
efs_vh.h15850644editdlrm
eisa.h30310644editdlrm
elevator.h56530644editdlrm
elf-fdpic.h20300644editdlrm
elf-randomize.h5830644editdlrm
elf.h30300644editdlrm
elfcore-compat.h13020644editdlrm
elfcore.h42090644editdlrm
elfnote-lto.h3140644editdlrm
elfnote.h36260644editdlrm
enclosure.h41120644editdlrm
energy_model.h83610644editdlrm
entry-common.h173590644editdlrm
entry-kvm.h28000644editdlrm
err.h15270644editdlrm
errname.h2830644editdlrm
errno.h14810644editdlrm
error-injection.h6070644editdlrm
errqueue.h5240644editdlrm
errseq.h3820644editdlrm
etherdevice.h176070644editdlrm
ethtool.h325050644editdlrm
ethtool_netlink.h20290644editdlrm
eventfd.h23360644editdlrm
eventpoll.h24720644editdlrm
evm.h35000644editdlrm
export.h53940644editdlrm
exportfs.h84210644editdlrm
ext2_fs.h9670644editdlrm
extable.h13090644editdlrm
extcon-provider.h39190644editdlrm
extcon.h103990644editdlrm
f2fs_fs.h194710644editdlrm
f75375s.h5410644editdlrm
falloc.h16240644editdlrm
fanotify.h45470644editdlrm
fault-inject-usercopy.h4960644editdlrm
fault-inject.h19750644editdlrm
fb.h289580644editdlrm
fbcon.h21360644editdlrm
fcdevice.h7740644editdlrm
fcntl.h16980644editdlrm
fd.h4900644editdlrm
fddidevice.h8330644editdlrm
fdtable.h35710644editdlrm
fec.h4630644editdlrm
fiemap.h7130644editdlrm
file.h31580644editdlrm
fileattr.h19520644editdlrm
filter.h439950644editdlrm
fips.h3030644editdlrm
firewire.h137180644editdlrm
firmware-map.h9590644editdlrm
firmware.h33480644editdlrm
fixp-arith.h42900644editdlrm
flat.h26290644editdlrm
flex_proportions.h28810644editdlrm
font.h17140644editdlrm
fortify-string.h93290644editdlrm
freelist.h38900644editdlrm
freezer.h91930644editdlrm
frontswap.h31180644editdlrm
fs.h1255060644editdlrm
fscache-cache.h190250644editdlrm
fscache.h303030644editdlrm
fscrypt.h306220644editdlrm
fsi-occ.h6810644editdlrm
fsi-sbefifo.h6290644editdlrm
fsi.h23180644editdlrm
fsl-diu-fb.h39630644editdlrm
fsldma.h2020644editdlrm
fsl_devices.h42610644editdlrm
fsl_hypervisor.h28240644editdlrm
fsl_ifc.h250630644editdlrm
fsnotify.h102870644editdlrm
fsnotify_backend.h300060644editdlrm
fsverity.h69140644editdlrm
fs_context.h88180644editdlrm
fs_enet_pd.h34570644editdlrm
fs_parser.h45430644editdlrm
fs_pin.h5390644editdlrm
fs_stack.h8110644editdlrm
fs_struct.h10660644editdlrm
fs_types.h20710644editdlrm
fs_uart_pd.h15230644editdlrm
ftrace.h355970644editdlrm
ftrace_irq.h8840644editdlrm
futex.h24970644editdlrm
fwnode.h69890644editdlrm
fwnode_mdio.h8580644editdlrm
gameport.h55490644editdlrm
gcd.h1930644editdlrm
genalloc.h79120644editdlrm
generic-radix-tree.h65040644editdlrm
genetlink.h5890644editdlrm
genhd.h90550644editdlrm
genl_magic_func.h118090644editdlrm
genl_magic_struct.h77930644editdlrm
getcpu.h6410644editdlrm
gfp.h268920644editdlrm
glob.h2560644editdlrm
gnss.h16010644editdlrm
goldfish.h8780644editdlrm
gpio-pxa.h5710644editdlrm
gpio.h54230644editdlrm
gpio_keys.h17820644editdlrm
greybus.h42400644editdlrm
hardirq.h35160644editdlrm
hash.h30710644editdlrm
hashtable.h68270644editdlrm
hdlc.h32670644editdlrm
hdlcdrv.h64680644editdlrm
hdmi.h127050644editdlrm
hid-debug.h14580644editdlrm
hid-roccat.h4840644editdlrm
hid-sensor-hub.h91900644editdlrm
hid-sensor-ids.h76170644editdlrm
hid.h389230644editdlrm
hidden.h9660644editdlrm
hiddev.h14580644editdlrm
hidraw.h11460644editdlrm
highmem-internal.h52390644editdlrm
highmem.h97310644editdlrm
highuid.h31940644editdlrm
hil.h188570644editdlrm
hil_mlc.h52480644editdlrm
hippidevice.h10520644editdlrm
hmm.h41680644editdlrm
host1x.h109930644editdlrm
hpet.h26150644editdlrm
hp_sdc.h143520644editdlrm
hrtimer.h165150644editdlrm
hrtimer_defs.h6600644editdlrm
htcpld.h6170644editdlrm
hugetlb.h304160644editdlrm
hugetlb_cgroup.h72410644editdlrm
hugetlb_inline.h3740644editdlrm
huge_mm.h135930644editdlrm
hwmon-sysfs.h28400644editdlrm
hwmon-vid.h8620644editdlrm
hwmon.h151310644editdlrm
hwspinlock.h161740644editdlrm
hw_breakpoint.h42480644editdlrm
hw_random.h21680644editdlrm
hyperv.h502180644editdlrm
hypervisor.h6080644editdlrm
i2c-algo-bit.h14360644editdlrm
i2c-algo-pca.h29560644editdlrm
i2c-algo-pcf.h12360644editdlrm
i2c-dev.h3710644editdlrm
i2c-mux.h16670644editdlrm
i2c-smbus.h17400644editdlrm
i2c.h395260644editdlrm
i8042.h20410644editdlrm
i8253.h8080644editdlrm
icmp.h10290644editdlrm
icmpv6.h27610644editdlrm
idle_inject.h9320644editdlrm
idr.h99350644editdlrm
ieee80211.h1271320644editdlrm
ieee802154.h113850644editdlrm
if_arp.h18580644editdlrm
if_bridge.h49190644editdlrm
if_eql.h11000644editdlrm
if_ether.h12950644editdlrm
if_fddi.h33150644editdlrm
if_hsr.h5860644editdlrm
if_link.h5920644editdlrm
if_ltalk.h1880644editdlrm
if_macvlan.h27570644editdlrm
if_phonet.h3190644editdlrm
if_pppol2tp.h5160644editdlrm
if_pppox.h29130644editdlrm
if_rmnet.h20840644editdlrm
if_tap.h22660644editdlrm
if_team.h80890644editdlrm
if_tun.h15870644editdlrm
if_tunnel.h4090644editdlrm
if_vlan.h216930644editdlrm
igmp.h44130644editdlrm
ihex.h22060644editdlrm
ima.h59340644editdlrm
imx-media.h6050644editdlrm
in.h23450644editdlrm
in6.h16710644editdlrm
indirect_call_wrapper.h22800644editdlrm
inet.h27070644editdlrm
inetdevice.h90850644editdlrm
inet_diag.h28010644editdlrm
init.h116630644editdlrm
initrd.h10440644editdlrm
init_ohci1394_dma.h1960644editdlrm
init_syscalls.h10370644editdlrm
init_task.h13310644editdlrm
inotify.h7130644editdlrm
input.h203620644editdlrm
instrumentation.h19720644editdlrm
instrumented.h36850644editdlrm
integrity.h11790644editdlrm
intel-iommu.h279340644editdlrm
intel-ish-client-if.h40660644editdlrm
intel-svm.h15810644editdlrm
intel_rapl.h42390644editdlrm
intel_th.h25010644editdlrm
interconnect-provider.h56390644editdlrm
interconnect.h29510644editdlrm
interrupt.h258330644editdlrm
interval_tree.h8310644editdlrm
interval_tree_generic.h68630644editdlrm
io-64-nonatomic-hi-lo.h24680644editdlrm
io-64-nonatomic-lo-hi.h24680644editdlrm
io-mapping.h47570644editdlrm
io-pgtable.h88570644editdlrm
io.h51410644editdlrm
ioam6.h2260644editdlrm
ioam6_genl.h2660644editdlrm
ioam6_iptunnel.h2850644editdlrm
ioasid.h21190644editdlrm
iocontext.h46990644editdlrm
iomap.h121980644editdlrm
iommu-helper.h11460644editdlrm
iommu.h348730644editdlrm
iopoll.h77950644editdlrm
ioport.h125770644editdlrm
ioprio.h17720644editdlrm
iova.h63420644editdlrm
io_uring.h8810644editdlrm
ip.h10240644editdlrm
ipack.h89000644editdlrm
ipc.h6130644editdlrm
ipc_namespace.h57640644editdlrm
ipmi.h111460644editdlrm
ipmi_smi.h81690644editdlrm
ipv6.h89120644editdlrm
ipv6_route.h3720644editdlrm
irq.h427640644editdlrm
irqbypass.h35350644editdlrm
irqchip.h23870644editdlrm
irqdesc.h79320644editdlrm
irqdomain.h207270644editdlrm
irqflags.h81000644editdlrm
irqhandler.h3000644editdlrm
irqnr.h8560644editdlrm
irqreturn.h5030644editdlrm
irq_poll.h5750644editdlrm
irq_sim.h7890644editdlrm
irq_work.h18620644editdlrm
isa.h21670644editdlrm
isapnp.h29440644editdlrm
iscsi_boot_sysfs.h37960644editdlrm
iscsi_ibft.h8470644editdlrm
iversion.h126700644editdlrm
jbd2.h524330644editdlrm
jhash.h46730644editdlrm
jiffies.h154300644editdlrm
journal-head.h29840644editdlrm
joystick.h4370644editdlrm
jump_label.h164360644editdlrm
jump_label_ratelimit.h28410644editdlrm
jz4740-adc.h10230644editdlrm
jz4780-nemc.h9760644editdlrm
kallsyms.h47570644editdlrm
kasan-checks.h14950644editdlrm
kasan-tags.h4870644editdlrm
kasan.h137180644editdlrm
kbd_diacr.h1980644editdlrm
kbd_kern.h36870644editdlrm
kbuild.h3800644editdlrm
kconfig.h26910644editdlrm
kcore.h8910644editdlrm
kcov.h25350644editdlrm
kcsan-checks.h162450644editdlrm
kcsan.h19300644editdlrm
kdb.h75080644editdlrm
kdebug.h4870644editdlrm
kdev_t.h18430644editdlrm
kernel-page-flags.h5280644editdlrm
kernel.h174180644editdlrm
kernelcapi.h14850644editdlrm
kernel_read_file.h16760644editdlrm
kernel_stat.h30450644editdlrm
kernfs.h186840644editdlrm
kern_levels.h16110644editdlrm
kexec.h127420644editdlrm
key-type.h67880644editdlrm
key.h161280644editdlrm
keyboard.h6650644editdlrm
keyctl.h12760644editdlrm
keyslot-manager.h38680644editdlrm
kfence.h87680644editdlrm
kfifo.h268040644editdlrm
kgdb.h123420644editdlrm
khugepaged.h28100644editdlrm
klist.h19220644editdlrm
kmemleak.h33490644editdlrm
kmod.h10450644editdlrm
kmsg_dump.h27720644editdlrm
kobject.h78830644editdlrm
kobject_ns.h19430644editdlrm
kobj_map.h5450644editdlrm
kprobes.h150740644editdlrm
kref.h31550644editdlrm
ks0108.h9700644editdlrm
ks8842.h6320644editdlrm
ks8851_mll.h4720644editdlrm
ksm.h25330644editdlrm
kstrtox.h67510644editdlrm
kthread.h78720644editdlrm
ktime.h55120644editdlrm
kvm_dirty_ring.h27940644editdlrm
kvm_host.h600200644editdlrm
kvm_irqfd.h20430644editdlrm
kvm_para.h4020644editdlrm
kvm_types.h22220644editdlrm
l2tp.h2610644editdlrm
lantiq.h3650644editdlrm
lapb.h17520644editdlrm
latencytop.h11920644editdlrm
lcd.h38670644editdlrm
lcm.h2750644editdlrm
led-class-flash.h69000644editdlrm
led-class-multicolor.h33380644editdlrm
led-lm3530.h37860644editdlrm
leds-bd2802.h4760644editdlrm
leds-lp3944.h9500644editdlrm
leds-lp3952.h24100644editdlrm
leds-pca9532.h8660644editdlrm
leds-regulator.h11680644editdlrm
leds-ti-lmu-common.h11490644editdlrm
leds.h184920644editdlrm
libata.h690460644editdlrm
libfdt.h2020644editdlrm
libfdt_env.h4910644editdlrm
libgcc.h4630644editdlrm
libnvdimm.h106240644editdlrm
libps2.h19310644editdlrm
license.h4180644editdlrm
limits.h7150644editdlrm
linear_range.h17660644editdlrm
linkage.h98260644editdlrm
linkmode.h25590644editdlrm
linux_logo.h19560644editdlrm
lis3lv02d.h51250644editdlrm
list.h312000644editdlrm
list_bl.h49050644editdlrm
list_lru.h74630644editdlrm
list_nulls.h43220644editdlrm
list_sort.h3740644editdlrm
litex.h21070644editdlrm
livepatch.h84190644editdlrm
llc.h7490644editdlrm
llist.h92800644editdlrm
local_lock.h13620644editdlrm
local_lock_internal.h34990644editdlrm
lockdep.h220030644editdlrm
lockdep_types.h53080644editdlrm
lockref.h15410644editdlrm
log2.h63660644editdlrm
logic_iomem.h21240644editdlrm
logic_pio.h33100644editdlrm
lp.h28270644editdlrm
lru_cache.h121110644editdlrm
lsm_audit.h28730644editdlrm
lsm_hooks.h761740644editdlrm
lsm_hook_defs.h215110644editdlrm
lz4.h270750644editdlrm
lzo.h19800644editdlrm
mailbox_client.h17540644editdlrm
mailbox_controller.h58350644editdlrm
maple.h27750644editdlrm
marvell_phy.h17340644editdlrm
math.h51850644editdlrm
math64.h76560644editdlrm
mbcache.h22080644editdlrm
mbus.h31680644editdlrm
mc6821.h12090644editdlrm
mc146818rtc.h48000644editdlrm
mcb.h37960644editdlrm
mdev.h60810644editdlrm
mdio-bitbang.h13380644editdlrm
mdio-gpio.h1770644editdlrm
mdio-mux.h10210644editdlrm
mdio.h129900644editdlrm
mei_cl_bus.h38430644editdlrm
memblock.h203530644editdlrm
memcontrol.h446280644editdlrm
memfd.h7190644editdlrm
memory.h61320644editdlrm
memory_hotplug.h116890644editdlrm
mempolicy.h75480644editdlrm
mempool.h34300644editdlrm
memregion.h4170644editdlrm
memremap.h57490644editdlrm
memstick.h98320644editdlrm
mem_encrypt.h8850644editdlrm
mhi.h266640644editdlrm
micrel_phy.h18800644editdlrm
microchipphy.h27100644editdlrm
migrate.h55370644editdlrm
migrate_mode.h7580644editdlrm
mii.h167260644editdlrm
mii_timestamper.h36530644editdlrm
minmax.h102420644editdlrm
min_heap.h33770644editdlrm
miscdevice.h32780644editdlrm
misc_cgroup.h30210644editdlrm
mISDNdsp.h12170644editdlrm
mISDNhw.h55230644editdlrm
mISDNif.h152500644editdlrm
mm.h1082270644editdlrm
mman.h40530644editdlrm
mmap_lock.h43530644editdlrm
mmdebug.h23080644editdlrm
mmiotrace.h31220644editdlrm
mmu_context.h8550644editdlrm
mmu_notifier.h252290644editdlrm
mmzone.h485300644editdlrm
mm_inline.h29860644editdlrm
mm_types.h257340644editdlrm
mm_types_task.h25550644editdlrm
mnt_idmapping.h78380644editdlrm
mnt_namespace.h6970644editdlrm
module.h245400644editdlrm
moduleloader.h34980644editdlrm
moduleparam.h228910644editdlrm
module_signature.h12500644editdlrm
mod_devicetable.h240640644editdlrm
most.h124910644editdlrm
mount.h40230644editdlrm
moxtet.h24210644editdlrm
mpage.h7370644editdlrm
mpi.h86120644editdlrm
mpls.h3940644editdlrm
mpls_iptunnel.h1780644editdlrm
mroute.h20040644editdlrm
mroute6.h24660644editdlrm
mroute_base.h124630644editdlrm
msdos_fs.h2730644editdlrm
msdos_partition.h16550644editdlrm
msg.h3950644editdlrm
msi.h157270644editdlrm
mtio.h13170644editdlrm
mutex.h74830644editdlrm
mv643xx.h522710644editdlrm
mv643xx_eth.h20010644editdlrm
mv643xx_i2c.h3350644editdlrm
mvebu-pmsu.h5200644editdlrm
mxm-wmi.h3990644editdlrm
namei.h46830644editdlrm
nd.h56850644editdlrm
ndctl.h6740644editdlrm
net.h117490644editdlrm
netdevice.h1727810644editdlrm
netdev_features.h110100644editdlrm
netfilter.h138860644editdlrm
netfilter_bridge.h21280644editdlrm
netfilter_defs.h2420644editdlrm
netfilter_ingress.h14740644editdlrm
netfilter_ipv4.h10770644editdlrm
netfilter_ipv6.h59880644editdlrm
netfs.h81250644editdlrm
netlink.h80700644editdlrm
netpoll.h24730644editdlrm
nfs.h15020644editdlrm
nfs3.h2600644editdlrm
nfs4.h198360644editdlrm
nfsacl.h14350644editdlrm
nfs_common.h4020644editdlrm
nfs_fs.h208790644editdlrm
nfs_fs_i.h3080644editdlrm
nfs_fs_sb.h104950644editdlrm
nfs_iostat.h42850644editdlrm
nfs_page.h69640644editdlrm
nfs_ssc.h20610644editdlrm
nfs_xdr.h432720644editdlrm
nitro_enclaves.h2670644editdlrm
nl802154.h39380644editdlrm
nls.h31620644editdlrm
nmi.h69260644editdlrm
node.h47870644editdlrm
nodemask.h175770644editdlrm
nospec.h22900644editdlrm
notifier.h80320644editdlrm
nsc_gpio.h14590644editdlrm
nsproxy.h31650644editdlrm
ns_common.h2830644editdlrm
ntb.h536910644editdlrm
ntb_transport.h38920644editdlrm
nubus.h56750644editdlrm
numa.h12780644editdlrm
nvme-fc-driver.h469580644editdlrm
nvme-fc.h99550644editdlrm
nvme-rdma.h20850644editdlrm
nvme-tcp.h45220644editdlrm
nvme.h392350644editdlrm
nvmem-consumer.h69420644editdlrm
nvmem-provider.h47720644editdlrm
nvram.h35500644editdlrm
objagg.h19830644editdlrm
objtool.h53680644editdlrm
of.h444460644editdlrm
of_address.h42700644editdlrm
of_clk.h8190644editdlrm
of_device.h30350644editdlrm
of_dma.h23530644editdlrm
of_fdt.h37330644editdlrm
of_gpio.h41700644editdlrm
of_graph.h36360644editdlrm
of_iommu.h5050644editdlrm
of_irq.h38430644editdlrm
of_mdio.h39990644editdlrm
of_net.h10090644editdlrm
of_pci.h9150644editdlrm
of_pdt.h11630644editdlrm
of_platform.h39740644editdlrm
of_reserved_mem.h22980644editdlrm
oid_registry.h57670644editdlrm
olpc-ec.h20000644editdlrm
omap-dma.h100210644editdlrm
omap-gpmc.h27040644editdlrm
omap-iommu.h8800644editdlrm
omap-mailbox.h6890644editdlrm
omapfb.h5760644editdlrm
once.h28650644editdlrm
once_lite.h9250644editdlrm
oom.h33410644editdlrm
openvswitch.h4030644editdlrm
osq_lock.h10660644editdlrm
overflow.h80070644editdlrm
packing.h18030644editdlrm
padata.h61040644editdlrm
page-flags-layout.h32870644editdlrm
page-flags.h286730644editdlrm
page-isolation.h16800644editdlrm
pageblock-flags.h23630644editdlrm
pagemap.h312340644editdlrm
pagevec.h20900644editdlrm
pagewalk.h43170644editdlrm
page_counter.h23590644editdlrm
page_ext.h18770644editdlrm
page_idle.h26710644editdlrm
page_owner.h23610644editdlrm
page_ref.h50730644editdlrm
page_reporting.h8950644editdlrm
panic.h26560644editdlrm
panic_notifier.h2960644editdlrm
parman.h29340644editdlrm
parport.h195440644editdlrm
parport_pc.h67130644editdlrm
parser.h11950644editdlrm
part_stat.h24330644editdlrm
pata_arasan_cf_data.h12500644editdlrm
patchkey.h7570644editdlrm
path.h5720644editdlrm
pch_dma.h4080644editdlrm
pci-acpi.h39440644editdlrm
pci-ats.h18020644editdlrm
pci-dma-compat.h37490644editdlrm
pci-ecam.h32800644editdlrm
pci-ep-cfs.h9560644editdlrm
pci-epc.h96980644editdlrm
pci-epf.h72270644editdlrm
pci-p2pdma.h40490644editdlrm
pci.h928510644editdlrm
pci_hotplug.h44580644editdlrm
pci_ids.h1241410644editdlrm
pcs-lynx.h4250644editdlrm
pda_power.h10050644editdlrm
pe.h165540644editdlrm
percpu-defs.h185580644editdlrm
percpu-refcount.h111020644editdlrm
percpu-rwsem.h42570644editdlrm
percpu.h48500644editdlrm
percpu_counter.h56090644editdlrm
perf_event.h483650644editdlrm
perf_regs.h10760644editdlrm
personality.h3930644editdlrm
pfn.h6660644editdlrm
pfn_t.h32870644editdlrm
pgalloc.h9480644editdlrm
pgtable.h455000644editdlrm
phonet.h5370644editdlrm
phy.h594750644editdlrm
phylink.h199390644editdlrm
phy_fixed.h18140644editdlrm
phy_led_triggers.h10350644editdlrm
pid.h65210644editdlrm
pid_namespace.h21330644editdlrm
pim.h27370644editdlrm
pipe_fs_i.h94330644editdlrm
pkeys.h9900644editdlrm
pktcdvd.h60110644editdlrm
pl320-ipc.h2090644editdlrm
platform_device.h130740644editdlrm
platform_profile.h11500644editdlrm
pldmfw.h48790644editdlrm
plist.h88720644editdlrm
pm-trace.h9400644editdlrm
pm.h357090644editdlrm
pmbus.h25430644editdlrm
pmu.h25020644editdlrm
pm_clock.h26370644editdlrm
pm_domain.h135010644editdlrm
pm_opp.h154660644editdlrm
pm_qos.h106630644editdlrm
pm_runtime.h201650644editdlrm
pm_wakeirq.h15180644editdlrm
pm_wakeup.h64270644editdlrm
pnfs_osd_xdr.h94900644editdlrm
pnp.h152530644editdlrm
poison.h25400644editdlrm
poll.h43700644editdlrm
posix-clock.h48080644editdlrm
posix-timers.h73860644editdlrm
posix_acl.h33470644editdlrm
posix_acl_xattr.h19090644editdlrm
powercap.h122630644editdlrm
power_supply.h182270644editdlrm
ppp-comp.h30230644editdlrm
ppp_channel.h30640644editdlrm
ppp_defs.h3050644editdlrm
pps_kernel.h30100644editdlrm
pr.h5660644editdlrm
prandom.h34580644editdlrm
preempt.h150480644editdlrm
prefetch.h17400644editdlrm
prime_numbers.h13840644editdlrm
printk.h227250644editdlrm
prmt.h1430644editdlrm
processor.h18890644editdlrm
proc_fs.h88110644editdlrm
proc_ns.h26270644editdlrm
profile.h26840644editdlrm
projid.h22690644editdlrm
property.h180690644editdlrm
pruss_driver.h12970644editdlrm
psci.h15590644editdlrm
pseudo_fs.h3550644editdlrm
psi.h15960644editdlrm
psi_types.h44160644editdlrm
psp-sev.h181880644editdlrm
psp-tee.h27160644editdlrm
pstore.h78080644editdlrm
pstore_blk.h15670644editdlrm
pstore_ram.h39070644editdlrm
pstore_zone.h23360644editdlrm
ptdump.h5670644editdlrm
pti.h2400644editdlrm
ptp_classify.h49650644editdlrm
ptp_clock_kernel.h124900644editdlrm
ptp_kvm.h4600644editdlrm
ptp_pch.h6230644editdlrm
ptrace.h150010644editdlrm
ptr_ring.h166790644editdlrm
purgatory.h5900644editdlrm
pvclock_gtod.h5480644editdlrm
pwm.h168510644editdlrm
pwm_backlight.h7220644editdlrm
pxa2xx_ssp.h113920644editdlrm
pxa168_eth.h7280644editdlrm
qcom-geni-se.h140650644editdlrm
qcom_scm.h39000644editdlrm
qnx6_fs.h33490644editdlrm
quota.h192170644editdlrm
quotaops.h105230644editdlrm
radix-tree.h160080644editdlrm
raid_class.h20480644editdlrm
ramfs.h7460644editdlrm
random.h40730644editdlrm
randomize_kstack.h25220644editdlrm
range.h7750644editdlrm
ras.h10440644editdlrm
ratelimit.h17610644editdlrm
ratelimit_types.h13570644editdlrm
rational.h6390644editdlrm
rbtree.h91480644editdlrm
rbtree_augmented.h97560644editdlrm
rbtree_latch.h68190644editdlrm
rbtree_types.h9460644editdlrm
rculist.h292420644editdlrm
rculist_bl.h33740644editdlrm
rculist_nulls.h88880644editdlrm
rcupdate.h396200644editdlrm
rcupdate_trace.h31580644editdlrm
rcupdate_wait.h17690644editdlrm
rcutiny.h33970644editdlrm
rcutree.h24010644editdlrm
rcuwait.h18840644editdlrm
rcu_node_tree.h38180644editdlrm
rcu_segcblist.h102730644editdlrm
rcu_sync.h14940644editdlrm
reboot-mode.h6000644editdlrm
reboot.h22350644editdlrm
reciprocal_div.h33560644editdlrm
refcount.h123050644editdlrm
regmap.h655030644editdlrm
regset.h116260644editdlrm
relay.h86690644editdlrm
remoteproc.h253600644editdlrm
resctrl.h66510644editdlrm
reset-controller.h36550644editdlrm
reset.h309640644editdlrm
resource.h3390644editdlrm
resource_ext.h21350644editdlrm
restart_block.h11380644editdlrm
rfkill.h107750644editdlrm
rhashtable-types.h35360644editdlrm
rhashtable.h384920644editdlrm
ring_buffer.h77390644editdlrm
rio.h194720644editdlrm
rio_drv.h146600644editdlrm
rio_ids.h11040644editdlrm
rio_regs.h195240644editdlrm
rmap.h93460644editdlrm
rmi.h123300644editdlrm
rndis.h172690644editdlrm
rodata_test.h3940644editdlrm
root_dev.h6190644editdlrm
rpmsg.h89780644editdlrm
rslib.h37530644editdlrm
rtc.h88610644editdlrm
rtmutex.h30370644editdlrm
rtnetlink.h45620644editdlrm
rtsx_common.h8900644editdlrm
rtsx_pci.h407740644editdlrm
rtsx_usb.h157470644editdlrm
rwbase_rt.h8760644editdlrm
rwlock.h46640644editdlrm
rwlock_api_smp.h78290644editdlrm
rwlock_rt.h30530644editdlrm
rwlock_types.h18140644editdlrm
rwsem.h78100644editdlrm
s3c_adc_battery.h9230644editdlrm
sbitmap.h173060644editdlrm
scatterlist.h179810644editdlrm
scc.h29050644editdlrm
sched.h662820644editdlrm
sched_clock.h14720644editdlrm
scmi_protocol.h266810644editdlrm
scpi_protocol.h27290644editdlrm
screen_info.h1910644editdlrm
scs.h18690644editdlrm
sctp.h234310644editdlrm
scx200.h18630644editdlrm
scx200_gpio.h24380644editdlrm
sdb.h42700644editdlrm
seccomp.h35330644editdlrm
secretmem.h11690644editdlrm
securebits.h2390644editdlrm
security.h603380644editdlrm
sed-opal.h16960644editdlrm
seg6.h1210644editdlrm
seg6_genl.h1360644editdlrm
seg6_hmac.h1360644editdlrm
seg6_iptunnel.h1480644editdlrm
seg6_local.h1000644editdlrm
selection.h18540644editdlrm
sem.h5990644editdlrm
semaphore.h13840644editdlrm
seqlock.h404550644editdlrm
seqno-fence.h36550644editdlrm
seq_buf.h40300644editdlrm
seq_file.h92200644editdlrm
seq_file_net.h7300644editdlrm
serdev.h100510644editdlrm
serial.h6300644editdlrm
serial_8250.h67280644editdlrm
serial_bcm63xx.h48430644editdlrm
serial_core.h209500644editdlrm
serial_max3100.h12160644editdlrm
serial_s3c.h96490644editdlrm
serial_sci.h16350644editdlrm
serio.h43830644editdlrm
set_memory.h16980644editdlrm
sfp.h162530644editdlrm
shdma-base.h43700644editdlrm
shm.h9680644editdlrm
shmem_fs.h59540644editdlrm
shrinker.h33280644editdlrm
sh_clk.h60980644editdlrm
sh_dma.h35500644editdlrm
sh_eth.h3690644editdlrm
sh_intc.h36790644editdlrm
sh_timer.h1720644editdlrm
signal.h140830644editdlrm
signalfd.h8170644editdlrm
signal_types.h17250644editdlrm
siox.h23130644editdlrm
siphash.h57250644editdlrm
sizes.h13050644editdlrm
skbuff.h1411470644editdlrm
skb_array.h53050644editdlrm
skmsg.h137620644editdlrm
slab.h243130644editdlrm
slab_def.h30910644editdlrm
slimbus.h70960644editdlrm
slub_def.h63670644editdlrm
sm501-regs.h119000644editdlrm
sm501.h41140644editdlrm
smc91x.h16040644editdlrm
smc911x.h2940644editdlrm
smp.h78180644editdlrm
smpboot.h17250644editdlrm
smp_types.h13820644editdlrm
smsc911x.h16700644editdlrm
smscphy.h12830644editdlrm
socket.h154600644editdlrm
sockptr.h24140644editdlrm
sock_diag.h23700644editdlrm
sonet.h4690644editdlrm
sony-laptop.h14400644editdlrm
sonypi.h17550644editdlrm
sort.h3460644editdlrm
sound.h6850644editdlrm
soundcard.h16310644editdlrm
spinlock.h154370644editdlrm
spinlock_api_smp.h56050644editdlrm
spinlock_api_up.h33940644editdlrm
spinlock_rt.h42090644editdlrm
spinlock_types.h18260644editdlrm
spinlock_types_raw.h17260644editdlrm
spinlock_types_up.h7260644editdlrm
spinlock_up.h22110644editdlrm
splice.h33900644editdlrm
spmi.h57250644editdlrm
sram.h8440644editdlrm
srcu.h72430644editdlrm
srcutiny.h28130644editdlrm
srcutree.h49160644editdlrm
ssbi.h7260644editdlrm
stackdepot.h6860644editdlrm
stackleak.h9020644editdlrm
stackprotector.h3610644editdlrm
stacktrace.h40660644editdlrm
start_kernel.h4150644editdlrm
stat.h13660644editdlrm
statfs.h18270644editdlrm
static_call.h105000644editdlrm
static_call_types.h28090644editdlrm
static_key.h300644editdlrm
stdarg.h3130644editdlrm
stddef.h32760644editdlrm
stm.h44490644editdlrm
stmmac.h70290644editdlrm
stmp3xxx_rtc_wdt.h3310644editdlrm
stmp_device.h4120644editdlrm
stop_machine.h45170644editdlrm
string.h99890644editdlrm
stringhash.h27150644editdlrm
stringify.h3410644editdlrm
string_helpers.h27580644editdlrm
sungem_phy.h40310644editdlrm
sunserialcore.h11020644editdlrm
sunxi-rsb.h29560644editdlrm
superhyway.h28780644editdlrm
surface_acpi_notify.h10910644editdlrm
suspend.h204960644editdlrm
svga.h38370644editdlrm
sw842.h3280644editdlrm
swab.h5690644editdlrm
swait.h96780644editdlrm
swap.h239920644editdlrm
swapfile.h5560644editdlrm
swapops.h98390644editdlrm
swap_cgroup.h9710644editdlrm
swap_slots.h8410644editdlrm
swiotlb.h54900644editdlrm
switchtec.h111580644editdlrm
sxgbe_platform.h12610644editdlrm
synclink.h9890644editdlrm
sync_core.h5810644editdlrm
sync_file.h16060644editdlrm
sys.h9600644editdlrm
syscalls.h568930644editdlrm
syscall_user_dispatch.h9300644editdlrm
syscore_ops.h6330644editdlrm
sysctl.h88000644editdlrm
sysfb.h27390644editdlrm
sysfs.h180600644editdlrm
syslog.h12660644editdlrm
sysrq.h20020644editdlrm
sysv_fs.h92500644editdlrm
sys_soc.h12940644editdlrm
t10-pi.h15380644editdlrm
taskstats_kern.h9570644editdlrm
task_io_accounting.h11590644editdlrm
task_io_accounting_ops.h26100644editdlrm
task_work.h9340644editdlrm
tboot.h34070644editdlrm
tc.h35340644editdlrm
tca6416_keypad.h6830644editdlrm
tcp.h175530644editdlrm
tee_drv.h187910644editdlrm
textsearch.h48670644editdlrm
textsearch_fsm.h12140644editdlrm
tfrc.h17220644editdlrm
thermal.h158090644editdlrm
threads.h13140644editdlrm
thread_info.h70560644editdlrm
thunderbolt.h212790644editdlrm
ti-emif-sram.h52700644editdlrm
tick.h102880644editdlrm
tifm.h47700644editdlrm
timb_dma.h11930644editdlrm
timb_gpio.h7170644editdlrm
time.h32160644editdlrm
time32.h17950644editdlrm
time64.h45960644editdlrm
timecounter.h42430644editdlrm
timekeeper_internal.h54550644editdlrm
timekeeping.h77890644editdlrm
timer.h81460644editdlrm
timerfd.h5080644editdlrm
timeriomem-rng.h4320644editdlrm
timerqueue.h14300644editdlrm
timex.h68260644editdlrm
time_namespace.h39070644editdlrm
ti_wilink_st.h137810644editdlrm
tnum.h34670644editdlrm
topology.h53770644editdlrm
torture.h45840644editdlrm
toshiba.h4600644editdlrm
tpm.h113400644editdlrm
tpm_command.h8470644editdlrm
tpm_eventlog.h66860644editdlrm
trace.h27900644editdlrm
tracefs.h10180644editdlrm
tracehook.h81580644editdlrm
tracepoint-defs.h23950644editdlrm
tracepoint.h184320644editdlrm
trace_clock.h6670644editdlrm
trace_events.h283420644editdlrm
trace_recursion.h56180644editdlrm
trace_seq.h40390644editdlrm
transport_class.h26410644editdlrm
ts-nbus.h5320644editdlrm
tsacct_kern.h12300644editdlrm
tty.h148690644editdlrm
tty_buffer.h13080644editdlrm
tty_driver.h160620644editdlrm
tty_flip.h17340644editdlrm
tty_ldisc.h86650644editdlrm
tty_port.h74130644editdlrm
typecheck.h7820644editdlrm
types.h58130644editdlrm
u64_stats_sync.h65630644editdlrm
uacce.h38770644editdlrm
uaccess.h133780644editdlrm
ucb1400.h42210644editdlrm
ucs2_string.h6620644editdlrm
udp.h54280644editdlrm
uidgid.h41710644editdlrm
uio.h93190644editdlrm
uio_driver.h48220644editdlrm
umh.h18370644editdlrm
unicode.h10460644editdlrm
units.h26540644editdlrm
uprobes.h61430644editdlrm
usb.h796270644editdlrm
usbdevice_fs.h22340644editdlrm
usb_usual.h36710644editdlrm
user-return-notifier.h12050644editdlrm
user.h220644editdlrm
userfaultfd_k.h65900644editdlrm
usermode_driver.h5150644editdlrm
user_namespace.h61790644editdlrm
util_macros.h25480644editdlrm
uts.h3880644editdlrm
utsname.h18270644editdlrm
uuid.h24000644editdlrm
vbox_utils.h17900644editdlrm
vdpa.h147230644editdlrm
verification.h18150644editdlrm
vermagic.h13080644editdlrm
vexpress.h2970644editdlrm
vfio.h84970644editdlrm
vfio_pci_core.h82660644editdlrm
vfs.h1160644editdlrm
vgaarb.h39720644editdlrm
vga_switcheroo.h88280644editdlrm
vhost_iotlb.h13690644editdlrm
via-core.h67230644editdlrm
via-gpio.h3100644editdlrm
via.h9320644editdlrm
via_i2c.h8440644editdlrm
videodev2.h27690644editdlrm
virtio.h68570644editdlrm
virtio_byteorder.h14910644editdlrm
virtio_caif.h5130644editdlrm
virtio_config.h166430644editdlrm
virtio_console.h19740644editdlrm
virtio_dma_buf.h11470644editdlrm
virtio_net.h61530644editdlrm
virtio_pci_modern.h33310644editdlrm
virtio_ring.h30200644editdlrm
virtio_vsock.h49070644editdlrm
visorbus.h125250644editdlrm
vlynq.h33000644editdlrm
vmacache.h7220644editdlrm
vmalloc.h85970644editdlrm
vme.h57950644editdlrm
vmpressure.h17240644editdlrm
vmstat.h151400644editdlrm
vmw_vmci_api.h29540644editdlrm
vmw_vmci_defs.h307510644editdlrm
vm_event_item.h35380644editdlrm
vringh.h88300644editdlrm
vsc.h19190644editdlrm
vt.h6110644editdlrm
vtime.h47090644editdlrm
vt_buffer.h15300644editdlrm
vt_kern.h54330644editdlrm
w1-gpio.h4930644editdlrm
w1.h91400644editdlrm
wait.h430530644editdlrm
wait_bit.h114680644editdlrm
watchdog.h84090644editdlrm
watch_queue.h39150644editdlrm
win_minmax.h8320644editdlrm
wireless.h16070644editdlrm
wkup_m3_ipc.h17950644editdlrm
wl12xx.h8100644editdlrm
wm97xx.h108420644editdlrm
wmi.h15980644editdlrm
workqueue.h229770644editdlrm
writeback.h131380644editdlrm
wwan.h52550644editdlrm
ww_mutex.h134260644editdlrm
xarray.h578090644editdlrm
xattr.h39770644editdlrm
xxhash.h84730644editdlrm
xz.h114270644editdlrm
yam.h22300644editdlrm
z2_battery.h2990644editdlrm
zconf.h17700644editdlrm
zlib.h287850644editdlrm
zorro.h36530644editdlrm
zpool.h33180644editdlrm
zsmalloc.h16680644editdlrm
zstd.h497460644editdlrm
zutil.h27930644editdlrm
Edit: /usr/src/linux-headers-5.15.0-181/include/linux/device.h (33997B)
// SPDX-License-Identifier: GPL-2.0 /* * device.h - generic, centralized driver model * * Copyright (c) 2001-2003 Patrick Mochel * Copyright (c) 2004-2009 Greg Kroah-Hartman * Copyright (c) 2008-2009 Novell Inc. * * See Documentation/driver-api/driver-model/ for more information. */ #ifndef _DEVICE_H_ #define _DEVICE_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include struct device; struct device_private; struct device_driver; struct driver_private; struct module; struct class; struct subsys_private; struct device_node; struct fwnode_handle; struct iommu_ops; struct iommu_group; struct dev_pin_info; struct dev_iommu; /** * struct subsys_interface - interfaces to device functions * @name: name of the device function * @subsys: subsystem of the devices to attach to * @node: the list of functions registered at the subsystem * @add_dev: device hookup to device function handler * @remove_dev: device hookup to device function handler * * Simple interfaces attached to a subsystem. Multiple interfaces can * attach to a subsystem and its devices. Unlike drivers, they do not * exclusively claim or control devices. Interfaces usually represent * a specific functionality of a subsystem/class of devices. */ struct subsys_interface { const char *name; struct bus_type *subsys; struct list_head node; int (*add_dev)(struct device *dev, struct subsys_interface *sif); void (*remove_dev)(struct device *dev, struct subsys_interface *sif); }; int subsys_interface_register(struct subsys_interface *sif); void subsys_interface_unregister(struct subsys_interface *sif); int subsys_system_register(struct bus_type *subsys, const struct attribute_group **groups); int subsys_virtual_register(struct bus_type *subsys, const struct attribute_group **groups); /* * The type of device, "struct device" is embedded in. A class * or bus can contain devices of different types * like "partitions" and "disks", "mouse" and "event". * This identifies the device type and carries type-specific * information, equivalent to the kobj_type of a kobject. * If "name" is specified, the uevent will contain it in * the DEVTYPE variable. */ struct device_type { const char *name; const struct attribute_group **groups; int (*uevent)(struct device *dev, struct kobj_uevent_env *env); char *(*devnode)(struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid); void (*release)(struct device *dev); const struct dev_pm_ops *pm; }; /* interface for exporting device attributes */ struct device_attribute { struct attribute attr; ssize_t (*show)(struct device *dev, struct device_attribute *attr, char *buf); ssize_t (*store)(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); }; struct dev_ext_attribute { struct device_attribute attr; void *var; }; ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr, char *buf); ssize_t device_store_ulong(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); ssize_t device_show_int(struct device *dev, struct device_attribute *attr, char *buf); ssize_t device_store_int(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); ssize_t device_show_bool(struct device *dev, struct device_attribute *attr, char *buf); ssize_t device_store_bool(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); #define DEVICE_ATTR(_name, _mode, _show, _store) \ struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store) #define DEVICE_ATTR_PREALLOC(_name, _mode, _show, _store) \ struct device_attribute dev_attr_##_name = \ __ATTR_PREALLOC(_name, _mode, _show, _store) #define DEVICE_ATTR_RW(_name) \ struct device_attribute dev_attr_##_name = __ATTR_RW(_name) #define DEVICE_ATTR_ADMIN_RW(_name) \ struct device_attribute dev_attr_##_name = __ATTR_RW_MODE(_name, 0600) #define DEVICE_ATTR_RO(_name) \ struct device_attribute dev_attr_##_name = __ATTR_RO(_name) #define DEVICE_ATTR_ADMIN_RO(_name) \ struct device_attribute dev_attr_##_name = __ATTR_RO_MODE(_name, 0400) #define DEVICE_ATTR_WO(_name) \ struct device_attribute dev_attr_##_name = __ATTR_WO(_name) #define DEVICE_ULONG_ATTR(_name, _mode, _var) \ struct dev_ext_attribute dev_attr_##_name = \ { __ATTR(_name, _mode, device_show_ulong, device_store_ulong), &(_var) } #define DEVICE_INT_ATTR(_name, _mode, _var) \ struct dev_ext_attribute dev_attr_##_name = \ { __ATTR(_name, _mode, device_show_int, device_store_int), &(_var) } #define DEVICE_BOOL_ATTR(_name, _mode, _var) \ struct dev_ext_attribute dev_attr_##_name = \ { __ATTR(_name, _mode, device_show_bool, device_store_bool), &(_var) } #define DEVICE_ATTR_IGNORE_LOCKDEP(_name, _mode, _show, _store) \ struct device_attribute dev_attr_##_name = \ __ATTR_IGNORE_LOCKDEP(_name, _mode, _show, _store) int device_create_file(struct device *device, const struct device_attribute *entry); void device_remove_file(struct device *dev, const struct device_attribute *attr); bool device_remove_file_self(struct device *dev, const struct device_attribute *attr); int __must_check device_create_bin_file(struct device *dev, const struct bin_attribute *attr); void device_remove_bin_file(struct device *dev, const struct bin_attribute *attr); /* device resource management */ typedef void (*dr_release_t)(struct device *dev, void *res); typedef int (*dr_match_t)(struct device *dev, void *res, void *match_data); void *__devres_alloc_node(dr_release_t release, size_t size, gfp_t gfp, int nid, const char *name) __malloc; #define devres_alloc(release, size, gfp) \ __devres_alloc_node(release, size, gfp, NUMA_NO_NODE, #release) #define devres_alloc_node(release, size, gfp, nid) \ __devres_alloc_node(release, size, gfp, nid, #release) void devres_for_each_res(struct device *dev, dr_release_t release, dr_match_t match, void *match_data, void (*fn)(struct device *, void *, void *), void *data); void devres_free(void *res); void devres_add(struct device *dev, void *res); void *devres_find(struct device *dev, dr_release_t release, dr_match_t match, void *match_data); void *devres_get(struct device *dev, void *new_res, dr_match_t match, void *match_data); void *devres_remove(struct device *dev, dr_release_t release, dr_match_t match, void *match_data); int devres_destroy(struct device *dev, dr_release_t release, dr_match_t match, void *match_data); int devres_release(struct device *dev, dr_release_t release, dr_match_t match, void *match_data); /* devres group */ void * __must_check devres_open_group(struct device *dev, void *id, gfp_t gfp); void devres_close_group(struct device *dev, void *id); void devres_remove_group(struct device *dev, void *id); int devres_release_group(struct device *dev, void *id); /* managed devm_k.alloc/kfree for device drivers */ void *devm_kmalloc(struct device *dev, size_t size, gfp_t gfp) __malloc; void *devm_krealloc(struct device *dev, void *ptr, size_t size, gfp_t gfp) __must_check; __printf(3, 0) char *devm_kvasprintf(struct device *dev, gfp_t gfp, const char *fmt, va_list ap) __malloc; __printf(3, 4) char *devm_kasprintf(struct device *dev, gfp_t gfp, const char *fmt, ...) __malloc; static inline void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp) { return devm_kmalloc(dev, size, gfp | __GFP_ZERO); } static inline void *devm_kmalloc_array(struct device *dev, size_t n, size_t size, gfp_t flags) { size_t bytes; if (unlikely(check_mul_overflow(n, size, &bytes))) return NULL; return devm_kmalloc(dev, bytes, flags); } static inline void *devm_kcalloc(struct device *dev, size_t n, size_t size, gfp_t flags) { return devm_kmalloc_array(dev, n, size, flags | __GFP_ZERO); } void devm_kfree(struct device *dev, const void *p); char *devm_kstrdup(struct device *dev, const char *s, gfp_t gfp) __malloc; const char *devm_kstrdup_const(struct device *dev, const char *s, gfp_t gfp); void *devm_kmemdup(struct device *dev, const void *src, size_t len, gfp_t gfp); unsigned long devm_get_free_pages(struct device *dev, gfp_t gfp_mask, unsigned int order); void devm_free_pages(struct device *dev, unsigned long addr); void __iomem *devm_ioremap_resource(struct device *dev, const struct resource *res); void __iomem *devm_ioremap_resource_wc(struct device *dev, const struct resource *res); void __iomem *devm_of_iomap(struct device *dev, struct device_node *node, int index, resource_size_t *size); /* allows to add/remove a custom action to devres stack */ int devm_add_action(struct device *dev, void (*action)(void *), void *data); void devm_remove_action(struct device *dev, void (*action)(void *), void *data); void devm_release_action(struct device *dev, void (*action)(void *), void *data); static inline int devm_add_action_or_reset(struct device *dev, void (*action)(void *), void *data) { int ret; ret = devm_add_action(dev, action, data); if (ret) action(data); return ret; } /** * devm_alloc_percpu - Resource-managed alloc_percpu * @dev: Device to allocate per-cpu memory for * @type: Type to allocate per-cpu memory for * * Managed alloc_percpu. Per-cpu memory allocated with this function is * automatically freed on driver detach. * * RETURNS: * Pointer to allocated memory on success, NULL on failure. */ #define devm_alloc_percpu(dev, type) \ ((typeof(type) __percpu *)__devm_alloc_percpu((dev), sizeof(type), \ __alignof__(type))) void __percpu *__devm_alloc_percpu(struct device *dev, size_t size, size_t align); void devm_free_percpu(struct device *dev, void __percpu *pdata); struct device_dma_parameters { /* * a low level driver may set these to teach IOMMU code about * sg limitations. */ unsigned int max_segment_size; unsigned int min_align_mask; unsigned long segment_boundary_mask; }; /** * enum device_link_state - Device link states. * @DL_STATE_NONE: The presence of the drivers is not being tracked. * @DL_STATE_DORMANT: None of the supplier/consumer drivers is present. * @DL_STATE_AVAILABLE: The supplier driver is present, but the consumer is not. * @DL_STATE_CONSUMER_PROBE: The consumer is probing (supplier driver present). * @DL_STATE_ACTIVE: Both the supplier and consumer drivers are present. * @DL_STATE_SUPPLIER_UNBIND: The supplier driver is unbinding. */ enum device_link_state { DL_STATE_NONE = -1, DL_STATE_DORMANT = 0, DL_STATE_AVAILABLE, DL_STATE_CONSUMER_PROBE, DL_STATE_ACTIVE, DL_STATE_SUPPLIER_UNBIND, }; /* * Device link flags. * * STATELESS: The core will not remove this link automatically. * AUTOREMOVE_CONSUMER: Remove the link automatically on consumer driver unbind. * PM_RUNTIME: If set, the runtime PM framework will use this link. * RPM_ACTIVE: Run pm_runtime_get_sync() on the supplier during link creation. * AUTOREMOVE_SUPPLIER: Remove the link automatically on supplier driver unbind. * AUTOPROBE_CONSUMER: Probe consumer driver automatically after supplier binds. * MANAGED: The core tracks presence of supplier/consumer drivers (internal). * SYNC_STATE_ONLY: Link only affects sync_state() behavior. * INFERRED: Inferred from data (eg: firmware) and not from driver actions. */ #define DL_FLAG_STATELESS BIT(0) #define DL_FLAG_AUTOREMOVE_CONSUMER BIT(1) #define DL_FLAG_PM_RUNTIME BIT(2) #define DL_FLAG_RPM_ACTIVE BIT(3) #define DL_FLAG_AUTOREMOVE_SUPPLIER BIT(4) #define DL_FLAG_AUTOPROBE_CONSUMER BIT(5) #define DL_FLAG_MANAGED BIT(6) #define DL_FLAG_SYNC_STATE_ONLY BIT(7) #define DL_FLAG_INFERRED BIT(8) /** * enum dl_dev_state - Device driver presence tracking information. * @DL_DEV_NO_DRIVER: There is no driver attached to the device. * @DL_DEV_PROBING: A driver is probing. * @DL_DEV_DRIVER_BOUND: The driver has been bound to the device. * @DL_DEV_UNBINDING: The driver is unbinding from the device. */ enum dl_dev_state { DL_DEV_NO_DRIVER = 0, DL_DEV_PROBING, DL_DEV_DRIVER_BOUND, DL_DEV_UNBINDING, }; /** * enum device_removable - Whether the device is removable. The criteria for a * device to be classified as removable is determined by its subsystem or bus. * @DEVICE_REMOVABLE_NOT_SUPPORTED: This attribute is not supported for this * device (default). * @DEVICE_REMOVABLE_UNKNOWN: Device location is Unknown. * @DEVICE_FIXED: Device is not removable by the user. * @DEVICE_REMOVABLE: Device is removable by the user. */ enum device_removable { DEVICE_REMOVABLE_NOT_SUPPORTED = 0, /* must be 0 */ DEVICE_REMOVABLE_UNKNOWN, DEVICE_FIXED, DEVICE_REMOVABLE, }; /** * struct dev_links_info - Device data related to device links. * @suppliers: List of links to supplier devices. * @consumers: List of links to consumer devices. * @defer_sync: Hook to global list of devices that have deferred sync_state. * @status: Driver status information. */ struct dev_links_info { struct list_head suppliers; struct list_head consumers; struct list_head defer_sync; enum dl_dev_state status; }; /** * struct device - The basic device structure * @parent: The device's "parent" device, the device to which it is attached. * In most cases, a parent device is some sort of bus or host * controller. If parent is NULL, the device, is a top-level device, * which is not usually what you want. * @p: Holds the private data of the driver core portions of the device. * See the comment of the struct device_private for detail. * @kobj: A top-level, abstract class from which other classes are derived. * @init_name: Initial name of the device. * @type: The type of device. * This identifies the device type and carries type-specific * information. * @mutex: Mutex to synchronize calls to its driver. * @lockdep_mutex: An optional debug lock that a subsystem can use as a * peer lock to gain localized lockdep coverage of the device_lock. * @bus: Type of bus device is on. * @driver: Which driver has allocated this * @platform_data: Platform data specific to the device. * Example: For devices on custom boards, as typical of embedded * and SOC based hardware, Linux often uses platform_data to point * to board-specific structures describing devices and how they * are wired. That can include what ports are available, chip * variants, which GPIO pins act in what additional roles, and so * on. This shrinks the "Board Support Packages" (BSPs) and * minimizes board-specific #ifdefs in drivers. * @driver_data: Private pointer for driver specific info. * @links: Links to suppliers and consumers of this device. * @power: For device power management. * See Documentation/driver-api/pm/devices.rst for details. * @pm_domain: Provide callbacks that are executed during system suspend, * hibernation, system resume and during runtime PM transitions * along with subsystem-level and driver-level callbacks. * @em_pd: device's energy model performance domain * @pins: For device pin management. * See Documentation/driver-api/pin-control.rst for details. * @msi_lock: Lock to protect MSI mask cache and mask register * @msi_list: Hosts MSI descriptors * @msi_domain: The generic MSI domain this device is using. * @numa_node: NUMA node this device is close to. * @dma_ops: DMA mapping operations for this device. * @dma_mask: Dma mask (if dma'ble device). * @coherent_dma_mask: Like dma_mask, but for alloc_coherent mapping as not all * hardware supports 64-bit addresses for consistent allocations * such descriptors. * @bus_dma_limit: Limit of an upstream bridge or bus which imposes a smaller * DMA limit than the device itself supports. * @dma_range_map: map for DMA memory ranges relative to that of RAM * @dma_parms: A low level driver may set these to teach IOMMU code about * segment limitations. * @dma_pools: Dma pools (if dma'ble device). * @dma_mem: Internal for coherent mem override. * @cma_area: Contiguous memory area for dma allocations * @dma_io_tlb_mem: Pointer to the swiotlb pool used. Not for driver use. * @archdata: For arch-specific additions. * @of_node: Associated device tree node. * @fwnode: Associated device node supplied by platform firmware. * @devt: For creating the sysfs "dev". * @id: device instance * @devres_lock: Spinlock to protect the resource of the device. * @devres_head: The resources list of the device. * @knode_class: The node used to add the device to the class list. * @class: The class of the device. * @groups: Optional attribute groups. * @release: Callback to free the device after all references have * gone away. This should be set by the allocator of the * device (i.e. the bus driver that discovered the device). * @iommu_group: IOMMU group the device belongs to. * @iommu: Per device generic IOMMU runtime data * @removable: Whether the device can be removed from the system. This * should be set by the subsystem / bus driver that discovered * the device. * * @offline_disabled: If set, the device is permanently online. * @offline: Set after successful invocation of bus type's .offline(). * @of_node_reused: Set if the device-tree node is shared with an ancestor * device. * @state_synced: The hardware state of this device has been synced to match * the software state of this device by calling the driver/bus * sync_state() callback. * @can_match: The device has matched with a driver at least once or it is in * a bus (like AMBA) which can't check for matching drivers until * other devices probe successfully. * @dma_coherent: this particular device is dma coherent, even if the * architecture supports non-coherent devices. * @dma_ops_bypass: If set to %true then the dma_ops are bypassed for the * streaming DMA operations (->map_* / ->unmap_* / ->sync_*), * and optionall (if the coherent mask is large enough) also * for dma allocations. This flag is managed by the dma ops * instance from ->dma_supported. * * At the lowest level, every device in a Linux system is represented by an * instance of struct device. The device structure contains the information * that the device model core needs to model the system. Most subsystems, * however, track additional information about the devices they host. As a * result, it is rare for devices to be represented by bare device structures; * instead, that structure, like kobject structures, is usually embedded within * a higher-level representation of the device. */ struct device { struct kobject kobj; struct device *parent; struct device_private *p; const char *init_name; /* initial name of the device */ const struct device_type *type; struct bus_type *bus; /* type of bus device is on */ struct device_driver *driver; /* which driver has allocated this device */ void *platform_data; /* Platform specific data, device core doesn't touch it */ void *driver_data; /* Driver data, set and get with dev_set_drvdata/dev_get_drvdata */ #ifdef CONFIG_PROVE_LOCKING struct mutex lockdep_mutex; #endif struct mutex mutex; /* mutex to synchronize calls to * its driver. */ struct dev_links_info links; struct dev_pm_info power; struct dev_pm_domain *pm_domain; #ifdef CONFIG_ENERGY_MODEL struct em_perf_domain *em_pd; #endif #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN struct irq_domain *msi_domain; #endif #ifdef CONFIG_PINCTRL struct dev_pin_info *pins; #endif #ifdef CONFIG_GENERIC_MSI_IRQ raw_spinlock_t msi_lock; struct list_head msi_list; #endif #ifdef CONFIG_DMA_OPS const struct dma_map_ops *dma_ops; #endif u64 *dma_mask; /* dma mask (if dma'able device) */ u64 coherent_dma_mask;/* Like dma_mask, but for alloc_coherent mappings as not all hardware supports 64 bit addresses for consistent allocations such descriptors. */ u64 bus_dma_limit; /* upstream dma constraint */ const struct bus_dma_region *dma_range_map; struct device_dma_parameters *dma_parms; struct list_head dma_pools; /* dma pools (if dma'ble) */ #ifdef CONFIG_DMA_DECLARE_COHERENT struct dma_coherent_mem *dma_mem; /* internal for coherent mem override */ #endif #ifdef CONFIG_DMA_CMA struct cma *cma_area; /* contiguous memory area for dma allocations */ #endif #ifdef CONFIG_SWIOTLB struct io_tlb_mem *dma_io_tlb_mem; #endif /* arch specific additions */ struct dev_archdata archdata; struct device_node *of_node; /* associated device tree node */ struct fwnode_handle *fwnode; /* firmware device node */ #ifdef CONFIG_NUMA int numa_node; /* NUMA node this device is close to */ #endif dev_t devt; /* dev_t, creates the sysfs "dev" */ u32 id; /* device instance */ spinlock_t devres_lock; struct list_head devres_head; struct class *class; const struct attribute_group **groups; /* optional groups */ void (*release)(struct device *dev); struct iommu_group *iommu_group; struct dev_iommu *iommu; enum device_removable removable; bool offline_disabled:1; bool offline:1; bool of_node_reused:1; bool state_synced:1; bool can_match:1; #if defined(CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE) || \ defined(CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU) || \ defined(CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU_ALL) bool dma_coherent:1; #endif #ifdef CONFIG_DMA_OPS_BYPASS bool dma_ops_bypass : 1; #endif }; /** * struct device_link - Device link representation. * @supplier: The device on the supplier end of the link. * @s_node: Hook to the supplier device's list of links to consumers. * @consumer: The device on the consumer end of the link. * @c_node: Hook to the consumer device's list of links to suppliers. * @link_dev: device used to expose link details in sysfs * @status: The state of the link (with respect to the presence of drivers). * @flags: Link flags. * @rpm_active: Whether or not the consumer device is runtime-PM-active. * @kref: Count repeated addition of the same link. * @rm_work: Work structure used for removing the link. * @supplier_preactivated: Supplier has been made active before consumer probe. */ struct device_link { struct device *supplier; struct list_head s_node; struct device *consumer; struct list_head c_node; struct device link_dev; enum device_link_state status; u32 flags; refcount_t rpm_active; struct kref kref; struct work_struct rm_work; bool supplier_preactivated; /* Owned by consumer probe. */ }; static inline struct device *kobj_to_dev(struct kobject *kobj) { return container_of(kobj, struct device, kobj); } /** * device_iommu_mapped - Returns true when the device DMA is translated * by an IOMMU * @dev: Device to perform the check on */ static inline bool device_iommu_mapped(struct device *dev) { return (dev->iommu_group != NULL); } /* Get the wakeup routines, which depend on struct device */ #include static inline const char *dev_name(const struct device *dev) { /* Use the init name until the kobject becomes available */ if (dev->init_name) return dev->init_name; return kobject_name(&dev->kobj); } /** * dev_bus_name - Return a device's bus/class name, if at all possible * @dev: struct device to get the bus/class name of * * Will return the name of the bus/class the device is attached to. If it is * not attached to a bus/class, an empty string will be returned. */ static inline const char *dev_bus_name(const struct device *dev) { return dev->bus ? dev->bus->name : (dev->class ? dev->class->name : ""); } __printf(2, 3) int dev_set_name(struct device *dev, const char *name, ...); #ifdef CONFIG_NUMA static inline int dev_to_node(struct device *dev) { return dev->numa_node; } static inline void set_dev_node(struct device *dev, int node) { dev->numa_node = node; } #else static inline int dev_to_node(struct device *dev) { return NUMA_NO_NODE; } static inline void set_dev_node(struct device *dev, int node) { } #endif static inline struct irq_domain *dev_get_msi_domain(const struct device *dev) { #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN return dev->msi_domain; #else return NULL; #endif } static inline void dev_set_msi_domain(struct device *dev, struct irq_domain *d) { #ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN dev->msi_domain = d; #endif } static inline void *dev_get_drvdata(const struct device *dev) { return dev->driver_data; } static inline void dev_set_drvdata(struct device *dev, void *data) { dev->driver_data = data; } static inline struct pm_subsys_data *dev_to_psd(struct device *dev) { return dev ? dev->power.subsys_data : NULL; } static inline unsigned int dev_get_uevent_suppress(const struct device *dev) { return dev->kobj.uevent_suppress; } static inline void dev_set_uevent_suppress(struct device *dev, int val) { dev->kobj.uevent_suppress = val; } static inline int device_is_registered(struct device *dev) { return dev->kobj.state_in_sysfs; } static inline void device_enable_async_suspend(struct device *dev) { if (!dev->power.is_prepared) dev->power.async_suspend = true; } static inline void device_disable_async_suspend(struct device *dev) { if (!dev->power.is_prepared) dev->power.async_suspend = false; } static inline bool device_async_suspend_enabled(struct device *dev) { return !!dev->power.async_suspend; } static inline bool device_pm_not_required(struct device *dev) { return dev->power.no_pm; } static inline void device_set_pm_not_required(struct device *dev) { dev->power.no_pm = true; #ifdef CONFIG_PM dev->power.no_callbacks = true; #endif } static inline void dev_pm_syscore_device(struct device *dev, bool val) { #ifdef CONFIG_PM_SLEEP dev->power.syscore = val; #endif } static inline void dev_pm_set_driver_flags(struct device *dev, u32 flags) { dev->power.driver_flags = flags; } static inline bool dev_pm_test_driver_flags(struct device *dev, u32 flags) { return !!(dev->power.driver_flags & flags); } static inline void device_lock(struct device *dev) { mutex_lock(&dev->mutex); } static inline int device_lock_interruptible(struct device *dev) { return mutex_lock_interruptible(&dev->mutex); } static inline int device_trylock(struct device *dev) { return mutex_trylock(&dev->mutex); } static inline void device_unlock(struct device *dev) { mutex_unlock(&dev->mutex); } static inline void device_lock_assert(struct device *dev) { lockdep_assert_held(&dev->mutex); } static inline struct device_node *dev_of_node(struct device *dev) { if (!IS_ENABLED(CONFIG_OF) || !dev) return NULL; return dev->of_node; } static inline bool dev_has_sync_state(struct device *dev) { if (!dev) return false; if (dev->driver && dev->driver->sync_state) return true; if (dev->bus && dev->bus->sync_state) return true; return false; } static inline void dev_set_removable(struct device *dev, enum device_removable removable) { dev->removable = removable; } static inline bool dev_is_removable(struct device *dev) { return dev->removable == DEVICE_REMOVABLE; } static inline bool dev_removable_is_valid(struct device *dev) { return dev->removable != DEVICE_REMOVABLE_NOT_SUPPORTED; } /* * High level routines for use by the bus drivers */ int __must_check device_register(struct device *dev); void device_unregister(struct device *dev); void device_initialize(struct device *dev); int __must_check device_add(struct device *dev); void device_del(struct device *dev); DEFINE_FREE(device_del, struct device *, if (_T) device_del(_T)) int device_for_each_child(struct device *dev, void *data, int (*fn)(struct device *dev, void *data)); int device_for_each_child_reverse(struct device *dev, void *data, int (*fn)(struct device *dev, void *data)); struct device *device_find_child(struct device *dev, void *data, int (*match)(struct device *dev, void *data)); struct device *device_find_child_by_name(struct device *parent, const char *name); struct device *device_find_any_child(struct device *parent); int device_rename(struct device *dev, const char *new_name); int device_move(struct device *dev, struct device *new_parent, enum dpm_order dpm_order); int device_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid); const char *device_get_devnode(struct device *dev, umode_t *mode, kuid_t *uid, kgid_t *gid, const char **tmp); int device_is_dependent(struct device *dev, void *target); static inline bool device_supports_offline(struct device *dev) { return dev->bus && dev->bus->offline && dev->bus->online; } void lock_device_hotplug(void); void unlock_device_hotplug(void); int lock_device_hotplug_sysfs(void); int device_offline(struct device *dev); int device_online(struct device *dev); void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode); void set_secondary_fwnode(struct device *dev, struct fwnode_handle *fwnode); void device_set_of_node_from_dev(struct device *dev, const struct device *dev2); void device_set_node(struct device *dev, struct fwnode_handle *fwnode); static inline int dev_num_vf(struct device *dev) { if (dev->bus && dev->bus->num_vf) return dev->bus->num_vf(dev); return 0; } /* * Root device objects for grouping under /sys/devices */ struct device *__root_device_register(const char *name, struct module *owner); /* This is a macro to avoid include problems with THIS_MODULE */ #define root_device_register(name) \ __root_device_register(name, THIS_MODULE) void root_device_unregister(struct device *root); static inline void *dev_get_platdata(const struct device *dev) { return dev->platform_data; } /* * Manual binding of a device to driver. See drivers/base/bus.c * for information on use. */ int __must_check device_driver_attach(struct device_driver *drv, struct device *dev); int __must_check device_bind_driver(struct device *dev); void device_release_driver(struct device *dev); int __must_check device_attach(struct device *dev); int __must_check driver_attach(struct device_driver *drv); void device_initial_probe(struct device *dev); int __must_check device_reprobe(struct device *dev); bool device_is_bound(struct device *dev); /* * Easy functions for dynamically creating devices on the fly */ __printf(5, 6) struct device * device_create(struct class *cls, struct device *parent, dev_t devt, void *drvdata, const char *fmt, ...); __printf(6, 7) struct device * device_create_with_groups(struct class *cls, struct device *parent, dev_t devt, void *drvdata, const struct attribute_group **groups, const char *fmt, ...); void device_destroy(struct class *cls, dev_t devt); int __must_check device_add_groups(struct device *dev, const struct attribute_group **groups); void device_remove_groups(struct device *dev, const struct attribute_group **groups); static inline int __must_check device_add_group(struct device *dev, const struct attribute_group *grp) { const struct attribute_group *groups[] = { grp, NULL }; return device_add_groups(dev, groups); } static inline void device_remove_group(struct device *dev, const struct attribute_group *grp) { const struct attribute_group *groups[] = { grp, NULL }; return device_remove_groups(dev, groups); } int __must_check devm_device_add_groups(struct device *dev, const struct attribute_group **groups); void devm_device_remove_groups(struct device *dev, const struct attribute_group **groups); int __must_check devm_device_add_group(struct device *dev, const struct attribute_group *grp); void devm_device_remove_group(struct device *dev, const struct attribute_group *grp); /* * Platform "fixup" functions - allow the platform to have their say * about devices and actions that the general device layer doesn't * know about. */ /* Notify platform of device discovery */ extern int (*platform_notify)(struct device *dev); extern int (*platform_notify_remove)(struct device *dev); /* * get_device - atomically increment the reference count for the device. * */ struct device *get_device(struct device *dev); void put_device(struct device *dev); DEFINE_FREE(put_device, struct device *, if (_T) put_device(_T)) bool kill_device(struct device *dev); #ifdef CONFIG_DEVTMPFS int devtmpfs_mount(void); #else static inline int devtmpfs_mount(void) { return 0; } #endif /* drivers/base/power/shutdown.c */ void device_shutdown(void); /* debugging and troubleshooting/diagnostic helpers. */ const char *dev_driver_string(const struct device *dev); /* Device links interface. */ struct device_link *device_link_add(struct device *consumer, struct device *supplier, u32 flags); void device_link_del(struct device_link *link); void device_link_remove(void *consumer, struct device *supplier); void device_links_supplier_sync_state_pause(void); void device_links_supplier_sync_state_resume(void); void device_link_wait_removal(void); extern __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); /* Create alias, so I can be autoloaded. */ #define MODULE_ALIAS_CHARDEV(major,minor) \ MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor)) #define MODULE_ALIAS_CHARDEV_MAJOR(major) \ MODULE_ALIAS("char-major-" __stringify(major) "-*") #ifdef CONFIG_SYSFS_DEPRECATED extern long sysfs_deprecated; #else #define sysfs_deprecated 0 #endif #endif /* _DEVICE_H_ */