/usr/src/linux-headers-5.15.0-190/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.h92680644editdlrm
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.h169630644editdlrm
cpu.h84850644editdlrm
cpufeature.h17510644editdlrm
cpufreq.h335390644editdlrm
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.h352260644editdlrm
device_cgroup.h16090644editdlrm
devm-helpers.h27400644editdlrm
devpts_fs.h11560644editdlrm
dev_printk.h98830644editdlrm
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.h205960644editdlrm
dma-resv.h122360644editdlrm
dmaengine.h548510644editdlrm
dmapool.h18320644editdlrm
dmar.h79290644editdlrm
dmi.h45120644editdlrm
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.h22560644editdlrm
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.h300760644editdlrm
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.h75350644editdlrm
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.h306060644editdlrm
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.h24260644editdlrm
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.h600340644editdlrm
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.h258110644editdlrm
mm_types_task.h25550644editdlrm
mnt_idmapping.h78380644editdlrm
mnt_namespace.h6970644editdlrm
module.h246150644editdlrm
moduleloader.h34980644editdlrm
moduleparam.h227780644editdlrm
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.h445450644editdlrm
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.h11470644editdlrm
pps_kernel.h30100644editdlrm
pr.h5660644editdlrm
prandom.h34580644editdlrm
preempt.h150480644editdlrm
prefetch.h17400644editdlrm
prime_numbers.h13840644editdlrm
printk.h227630644editdlrm
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.h102960644editdlrm
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.h603660644editdlrm
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.h1415090644editdlrm
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.h102480644editdlrm
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.h100840644editdlrm
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.h80900644editdlrm
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.h67480644editdlrm
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.h61960644editdlrm
usb.h799540644editdlrm
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-190/include/linux/efi.h (43038B)
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_EFI_H #define _LINUX_EFI_H /* * Extensible Firmware Interface * Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999 * * Copyright (C) 1999 VA Linux Systems * Copyright (C) 1999 Walt Drummond * Copyright (C) 1999, 2002-2003 Hewlett-Packard Co. * David Mosberger-Tang * Stephane Eranian */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define EFI_SUCCESS 0 #define EFI_LOAD_ERROR ( 1 | (1UL << (BITS_PER_LONG-1))) #define EFI_INVALID_PARAMETER ( 2 | (1UL << (BITS_PER_LONG-1))) #define EFI_UNSUPPORTED ( 3 | (1UL << (BITS_PER_LONG-1))) #define EFI_BAD_BUFFER_SIZE ( 4 | (1UL << (BITS_PER_LONG-1))) #define EFI_BUFFER_TOO_SMALL ( 5 | (1UL << (BITS_PER_LONG-1))) #define EFI_NOT_READY ( 6 | (1UL << (BITS_PER_LONG-1))) #define EFI_DEVICE_ERROR ( 7 | (1UL << (BITS_PER_LONG-1))) #define EFI_WRITE_PROTECTED ( 8 | (1UL << (BITS_PER_LONG-1))) #define EFI_OUT_OF_RESOURCES ( 9 | (1UL << (BITS_PER_LONG-1))) #define EFI_NOT_FOUND (14 | (1UL << (BITS_PER_LONG-1))) #define EFI_TIMEOUT (18 | (1UL << (BITS_PER_LONG-1))) #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) #define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) typedef unsigned long efi_status_t; typedef u8 efi_bool_t; typedef u16 efi_char16_t; /* UNICODE character */ typedef u64 efi_physical_addr_t; typedef void *efi_handle_t; #if defined(CONFIG_X86_64) #define __efiapi __attribute__((ms_abi)) #elif defined(CONFIG_X86_32) #define __efiapi __attribute__((regparm(0))) #else #define __efiapi #endif /* * The UEFI spec and EDK2 reference implementation both define EFI_GUID as * struct { u32 a; u16; b; u16 c; u8 d[8]; }; and so the implied alignment * is 32 bits not 8 bits like our guid_t. In some cases (i.e., on 32-bit ARM), * this means that firmware services invoked by the kernel may assume that * efi_guid_t* arguments are 32-bit aligned, and use memory accessors that * do not tolerate misalignment. So let's set the minimum alignment to 32 bits. * * Note that the UEFI spec as well as some comments in the EDK2 code base * suggest that EFI_GUID should be 64-bit aligned, but this appears to be * a mistake, given that no code seems to exist that actually enforces that * or relies on it. */ typedef guid_t efi_guid_t __aligned(__alignof__(u32)); #define EFI_GUID(a, b, c, d...) (efi_guid_t){ { \ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ (b) & 0xff, ((b) >> 8) & 0xff, \ (c) & 0xff, ((c) >> 8) & 0xff, d } } /* * Generic EFI table header */ typedef struct { u64 signature; u32 revision; u32 headersize; u32 crc32; u32 reserved; } efi_table_hdr_t; /* * Memory map descriptor: */ /* Memory types: */ #define EFI_RESERVED_TYPE 0 #define EFI_LOADER_CODE 1 #define EFI_LOADER_DATA 2 #define EFI_BOOT_SERVICES_CODE 3 #define EFI_BOOT_SERVICES_DATA 4 #define EFI_RUNTIME_SERVICES_CODE 5 #define EFI_RUNTIME_SERVICES_DATA 6 #define EFI_CONVENTIONAL_MEMORY 7 #define EFI_UNUSABLE_MEMORY 8 #define EFI_ACPI_RECLAIM_MEMORY 9 #define EFI_ACPI_MEMORY_NVS 10 #define EFI_MEMORY_MAPPED_IO 11 #define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12 #define EFI_PAL_CODE 13 #define EFI_PERSISTENT_MEMORY 14 #define EFI_MAX_MEMORY_TYPE 15 /* Attribute values: */ #define EFI_MEMORY_UC ((u64)0x0000000000000001ULL) /* uncached */ #define EFI_MEMORY_WC ((u64)0x0000000000000002ULL) /* write-coalescing */ #define EFI_MEMORY_WT ((u64)0x0000000000000004ULL) /* write-through */ #define EFI_MEMORY_WB ((u64)0x0000000000000008ULL) /* write-back */ #define EFI_MEMORY_UCE ((u64)0x0000000000000010ULL) /* uncached, exported */ #define EFI_MEMORY_WP ((u64)0x0000000000001000ULL) /* write-protect */ #define EFI_MEMORY_RP ((u64)0x0000000000002000ULL) /* read-protect */ #define EFI_MEMORY_XP ((u64)0x0000000000004000ULL) /* execute-protect */ #define EFI_MEMORY_NV ((u64)0x0000000000008000ULL) /* non-volatile */ #define EFI_MEMORY_MORE_RELIABLE \ ((u64)0x0000000000010000ULL) /* higher reliability */ #define EFI_MEMORY_RO ((u64)0x0000000000020000ULL) /* read-only */ #define EFI_MEMORY_SP ((u64)0x0000000000040000ULL) /* soft reserved */ #define EFI_MEMORY_CPU_CRYPTO ((u64)0x0000000000080000ULL) /* supports encryption */ #define EFI_MEMORY_HOT_PLUGGABLE BIT_ULL(20) /* supports unplugging at runtime */ #define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */ #define EFI_MEMORY_DESCRIPTOR_VERSION 1 #define EFI_PAGE_SHIFT 12 #define EFI_PAGE_SIZE (1UL << EFI_PAGE_SHIFT) #define EFI_PAGES_MAX (U64_MAX >> EFI_PAGE_SHIFT) typedef struct { u32 type; u32 pad; u64 phys_addr; u64 virt_addr; u64 num_pages; u64 attribute; } efi_memory_desc_t; typedef struct { efi_guid_t guid; u32 headersize; u32 flags; u32 imagesize; } efi_capsule_header_t; /* * EFI capsule flags */ #define EFI_CAPSULE_PERSIST_ACROSS_RESET 0x00010000 #define EFI_CAPSULE_POPULATE_SYSTEM_TABLE 0x00020000 #define EFI_CAPSULE_INITIATE_RESET 0x00040000 struct capsule_info { efi_capsule_header_t header; efi_capsule_header_t *capsule; int reset_type; long index; size_t count; size_t total_size; struct page **pages; phys_addr_t *phys; size_t page_bytes_remain; }; int efi_capsule_setup_info(struct capsule_info *cap_info, void *kbuff, size_t hdr_bytes); int __efi_capsule_setup_info(struct capsule_info *cap_info); /* * Types and defines for Time Services */ #define EFI_TIME_ADJUST_DAYLIGHT 0x1 #define EFI_TIME_IN_DAYLIGHT 0x2 #define EFI_UNSPECIFIED_TIMEZONE 0x07ff typedef struct { u16 year; u8 month; u8 day; u8 hour; u8 minute; u8 second; u8 pad1; u32 nanosecond; s16 timezone; u8 daylight; u8 pad2; } efi_time_t; typedef struct { u32 resolution; u32 accuracy; u8 sets_to_zero; } efi_time_cap_t; typedef union efi_boot_services efi_boot_services_t; /* * Types and defines for EFI ResetSystem */ #define EFI_RESET_COLD 0 #define EFI_RESET_WARM 1 #define EFI_RESET_SHUTDOWN 2 /* * EFI Runtime Services table */ #define EFI_RUNTIME_SERVICES_SIGNATURE ((u64)0x5652453544e5552ULL) #define EFI_RUNTIME_SERVICES_REVISION 0x00010000 typedef struct { efi_table_hdr_t hdr; u32 get_time; u32 set_time; u32 get_wakeup_time; u32 set_wakeup_time; u32 set_virtual_address_map; u32 convert_pointer; u32 get_variable; u32 get_next_variable; u32 set_variable; u32 get_next_high_mono_count; u32 reset_system; u32 update_capsule; u32 query_capsule_caps; u32 query_variable_info; } efi_runtime_services_32_t; typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc); typedef efi_status_t efi_set_time_t (efi_time_t *tm); typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending, efi_time_t *tm); typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm); typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr, unsigned long *data_size, void *data); typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name, efi_guid_t *vendor); typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 attr, unsigned long data_size, void *data); typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count); typedef void efi_reset_system_t (int reset_type, efi_status_t status, unsigned long data_size, efi_char16_t *data); typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_size, unsigned long descriptor_size, u32 descriptor_version, efi_memory_desc_t *virtual_map); typedef efi_status_t efi_query_variable_info_t(u32 attr, u64 *storage_space, u64 *remaining_space, u64 *max_variable_size); typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **capsules, unsigned long count, unsigned long sg_list); typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **capsules, unsigned long count, u64 *max_size, int *reset_type); typedef efi_status_t efi_query_variable_store_t(u32 attributes, unsigned long size, bool nonblocking); typedef union { struct { efi_table_hdr_t hdr; efi_get_time_t __efiapi *get_time; efi_set_time_t __efiapi *set_time; efi_get_wakeup_time_t __efiapi *get_wakeup_time; efi_set_wakeup_time_t __efiapi *set_wakeup_time; efi_set_virtual_address_map_t __efiapi *set_virtual_address_map; void *convert_pointer; efi_get_variable_t __efiapi *get_variable; efi_get_next_variable_t __efiapi *get_next_variable; efi_set_variable_t __efiapi *set_variable; efi_get_next_high_mono_count_t __efiapi *get_next_high_mono_count; efi_reset_system_t __efiapi *reset_system; efi_update_capsule_t __efiapi *update_capsule; efi_query_capsule_caps_t __efiapi *query_capsule_caps; efi_query_variable_info_t __efiapi *query_variable_info; }; efi_runtime_services_32_t mixed_mode; } efi_runtime_services_t; void efi_native_runtime_setup(void); /* * EFI Configuration Table and GUID definitions * * These are all defined in a single line to make them easier to * grep for and to see them at a glance - while still having a * similar structure to the definitions in the spec. * * Here's how they are structured: * * GUID: 12345678-1234-1234-1234-123456789012 * Spec: * #define EFI_SOME_PROTOCOL_GUID \ * {0x12345678,0x1234,0x1234,\ * {0x12,0x34,0x12,0x34,0x56,0x78,0x90,0x12}} * Here: * #define SOME_PROTOCOL_GUID EFI_GUID(0x12345678, 0x1234, 0x1234, 0x12, 0x34, 0x12, 0x34, 0x56, 0x78, 0x90, 0x12) * ^ tabs ^extra space * * Note that the 'extra space' separates the values at the same place * where the UEFI SPEC breaks the line. */ #define NULL_GUID EFI_GUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00) #define MPS_TABLE_GUID EFI_GUID(0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d) #define ACPI_TABLE_GUID EFI_GUID(0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d) #define ACPI_20_TABLE_GUID EFI_GUID(0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81) #define SMBIOS_TABLE_GUID EFI_GUID(0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d) #define SMBIOS3_TABLE_GUID EFI_GUID(0xf2fd1544, 0x9794, 0x4a2c, 0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94) #define SAL_SYSTEM_TABLE_GUID EFI_GUID(0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d) #define HCDP_TABLE_GUID EFI_GUID(0xf951938d, 0x620b, 0x42ef, 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98) #define UGA_IO_PROTOCOL_GUID EFI_GUID(0x61a4d49e, 0x6f68, 0x4f1b, 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0x0b, 0x07, 0xa2) #define EFI_GLOBAL_VARIABLE_GUID EFI_GUID(0x8be4df61, 0x93ca, 0x11d2, 0xaa, 0x0d, 0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c) #define UV_SYSTEM_TABLE_GUID EFI_GUID(0x3b13a7d4, 0x633e, 0x11dd, 0x93, 0xec, 0xda, 0x25, 0x56, 0xd8, 0x95, 0x93) #define LINUX_EFI_CRASH_GUID EFI_GUID(0xcfc8fc79, 0xbe2e, 0x4ddc, 0x97, 0xf0, 0x9f, 0x98, 0xbf, 0xe2, 0x98, 0xa0) #define LOADED_IMAGE_PROTOCOL_GUID EFI_GUID(0x5b1b31a1, 0x9562, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b) #define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID EFI_GUID(0x9042a9de, 0x23dc, 0x4a38, 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a) #define EFI_UGA_PROTOCOL_GUID EFI_GUID(0x982c298b, 0xf4fa, 0x41cb, 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39) #define EFI_PCI_IO_PROTOCOL_GUID EFI_GUID(0x4cf5b200, 0x68b8, 0x4ca5, 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a) #define EFI_FILE_INFO_ID EFI_GUID(0x09576e92, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b) #define EFI_SYSTEM_RESOURCE_TABLE_GUID EFI_GUID(0xb122a263, 0x3661, 0x4f68, 0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80) #define EFI_FILE_SYSTEM_GUID EFI_GUID(0x964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b) #define DEVICE_TREE_GUID EFI_GUID(0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0) #define EFI_PROPERTIES_TABLE_GUID EFI_GUID(0x880aaca3, 0x4adc, 0x4a04, 0x90, 0x79, 0xb7, 0x47, 0x34, 0x08, 0x25, 0xe5) #define EFI_RNG_PROTOCOL_GUID EFI_GUID(0x3152bca5, 0xeade, 0x433d, 0x86, 0x2e, 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44) #define EFI_RNG_ALGORITHM_RAW EFI_GUID(0xe43176d7, 0xb6e8, 0x4827, 0xb7, 0x84, 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61) #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID EFI_GUID(0xdcfa911d, 0x26eb, 0x469f, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20) #define EFI_CONSOLE_OUT_DEVICE_GUID EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d) #define APPLE_PROPERTIES_PROTOCOL_GUID EFI_GUID(0x91bd12fe, 0xf6c3, 0x44fb, 0xa5, 0xb7, 0x51, 0x22, 0xab, 0x30, 0x3a, 0xe0) #define EFI_TCG2_PROTOCOL_GUID EFI_GUID(0x607f766c, 0x7455, 0x42be, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f) #define EFI_LOAD_FILE_PROTOCOL_GUID EFI_GUID(0x56ec3091, 0x954c, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b) #define EFI_LOAD_FILE2_PROTOCOL_GUID EFI_GUID(0x4006c0c1, 0xfcb3, 0x403e, 0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d) #define EFI_RT_PROPERTIES_TABLE_GUID EFI_GUID(0xeb66918a, 0x7eef, 0x402a, 0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9) #define EFI_IMAGE_SECURITY_DATABASE_GUID EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f) #define EFI_SHIM_LOCK_GUID EFI_GUID(0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23) #define EFI_CERT_SHA256_GUID EFI_GUID(0xc1c41626, 0x504c, 0x4092, 0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28) #define EFI_CERT_X509_GUID EFI_GUID(0xa5c059a1, 0x94e4, 0x4aa7, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72) #define EFI_CERT_X509_SHA256_GUID EFI_GUID(0x3bd2a492, 0x96c0, 0x4079, 0xb4, 0x20, 0xfc, 0xf9, 0x8e, 0xf1, 0x03, 0xed) /* * This GUID is used to pass to the kernel proper the struct screen_info * structure that was populated by the stub based on the GOP protocol instance * associated with ConOut */ #define LINUX_EFI_ARM_SCREEN_INFO_TABLE_GUID EFI_GUID(0xe03fc20a, 0x85dc, 0x406e, 0xb9, 0x0e, 0x4a, 0xb5, 0x02, 0x37, 0x1d, 0x95) #define LINUX_EFI_ARM_CPU_STATE_TABLE_GUID EFI_GUID(0xef79e4aa, 0x3c3d, 0x4989, 0xb9, 0x02, 0x07, 0xa9, 0x43, 0xe5, 0x50, 0xd2) #define LINUX_EFI_LOADER_ENTRY_GUID EFI_GUID(0x4a67b082, 0x0a4c, 0x41cf, 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f) #define LINUX_EFI_RANDOM_SEED_TABLE_GUID EFI_GUID(0x1ce1e5bc, 0x7ceb, 0x42f2, 0x81, 0xe5, 0x8a, 0xad, 0xf1, 0x80, 0xf5, 0x7b) #define LINUX_EFI_TPM_EVENT_LOG_GUID EFI_GUID(0xb7799cb0, 0xeca2, 0x4943, 0x96, 0x67, 0x1f, 0xae, 0x07, 0xb7, 0x47, 0xfa) #define LINUX_EFI_TPM_FINAL_LOG_GUID EFI_GUID(0x1e2ed096, 0x30e2, 0x4254, 0xbd, 0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25) #define LINUX_EFI_MEMRESERVE_TABLE_GUID EFI_GUID(0x888eb0c6, 0x8ede, 0x4ff5, 0xa8, 0xf0, 0x9a, 0xee, 0x5c, 0xb9, 0x77, 0xc2) #define LINUX_EFI_INITRD_MEDIA_GUID EFI_GUID(0x5568e427, 0x68fc, 0x4f3d, 0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68) #define LINUX_EFI_MOK_VARIABLE_TABLE_GUID EFI_GUID(0xc451ed2b, 0x9694, 0x45d3, 0xba, 0xba, 0xed, 0x9f, 0x89, 0x88, 0xa3, 0x89) /* OEM GUIDs */ #define DELLEMC_EFI_RCI2_TABLE_GUID EFI_GUID(0x2d9f28a2, 0xa886, 0x456a, 0x97, 0xa8, 0xf1, 0x1e, 0xf2, 0x4f, 0xf4, 0x55) typedef struct { efi_guid_t guid; u64 table; } efi_config_table_64_t; typedef struct { efi_guid_t guid; u32 table; } efi_config_table_32_t; typedef union { struct { efi_guid_t guid; void *table; }; efi_config_table_32_t mixed_mode; } efi_config_table_t; typedef struct { efi_guid_t guid; unsigned long *ptr; const char name[16]; } efi_config_table_type_t; #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL) #define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30)) #define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20)) #define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10)) #define EFI_2_00_SYSTEM_TABLE_REVISION ((2 << 16) | (00)) #define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10)) #define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02)) typedef struct { efi_table_hdr_t hdr; u64 fw_vendor; /* physical addr of CHAR16 vendor string */ u32 fw_revision; u32 __pad1; u64 con_in_handle; u64 con_in; u64 con_out_handle; u64 con_out; u64 stderr_handle; u64 stderr; u64 runtime; u64 boottime; u32 nr_tables; u32 __pad2; u64 tables; } efi_system_table_64_t; typedef struct { efi_table_hdr_t hdr; u32 fw_vendor; /* physical addr of CHAR16 vendor string */ u32 fw_revision; u32 con_in_handle; u32 con_in; u32 con_out_handle; u32 con_out; u32 stderr_handle; u32 stderr; u32 runtime; u32 boottime; u32 nr_tables; u32 tables; } efi_system_table_32_t; typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; typedef union { struct { efi_table_hdr_t hdr; unsigned long fw_vendor; /* physical addr of CHAR16 vendor string */ u32 fw_revision; unsigned long con_in_handle; efi_simple_text_input_protocol_t *con_in; unsigned long con_out_handle; efi_simple_text_output_protocol_t *con_out; unsigned long stderr_handle; unsigned long stderr; efi_runtime_services_t *runtime; efi_boot_services_t *boottime; unsigned long nr_tables; unsigned long tables; }; efi_system_table_32_t mixed_mode; } efi_system_table_t; /* * Architecture independent structure for describing a memory map for the * benefit of efi_memmap_init_early(), and for passing context between * efi_memmap_alloc() and efi_memmap_install(). */ struct efi_memory_map_data { phys_addr_t phys_map; unsigned long size; unsigned long desc_version; unsigned long desc_size; unsigned long flags; }; struct efi_memory_map { phys_addr_t phys_map; void *map; void *map_end; int nr_map; unsigned long desc_version; unsigned long desc_size; #define EFI_MEMMAP_LATE (1UL << 0) #define EFI_MEMMAP_MEMBLOCK (1UL << 1) #define EFI_MEMMAP_SLAB (1UL << 2) unsigned long flags; }; struct efi_mem_range { struct range range; u64 attribute; }; typedef struct { u32 version; u32 length; u64 memory_protection_attribute; } efi_properties_table_t; #define EFI_PROPERTIES_TABLE_VERSION 0x00010000 #define EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA 0x1 typedef struct { u16 version; u16 length; u32 runtime_services_supported; } efi_rt_properties_table_t; #define EFI_RT_PROPERTIES_TABLE_VERSION 0x1 #define EFI_INVALID_TABLE_ADDR (~0UL) typedef struct { u32 version; u32 num_entries; u32 desc_size; u32 reserved; efi_memory_desc_t entry[0]; } efi_memory_attributes_table_t; typedef struct { efi_guid_t signature_owner; u8 signature_data[]; } efi_signature_data_t; typedef struct { efi_guid_t signature_type; u32 signature_list_size; u32 signature_header_size; u32 signature_size; u8 signature_header[]; /* efi_signature_data_t signatures[][] */ } efi_signature_list_t; typedef u8 efi_sha256_hash_t[32]; typedef struct { efi_sha256_hash_t to_be_signed_hash; efi_time_t time_of_revocation; } efi_cert_x509_sha256_t; extern unsigned long __ro_after_init efi_rng_seed; /* RNG Seed table */ /* * All runtime access to EFI goes through this structure: */ extern struct efi { const efi_runtime_services_t *runtime; /* EFI runtime services table */ unsigned int runtime_version; /* Runtime services version */ unsigned int runtime_supported_mask; unsigned long acpi; /* ACPI table (IA64 ext 0.71) */ unsigned long acpi20; /* ACPI table (ACPI 2.0) */ unsigned long smbios; /* SMBIOS table (32 bit entry point) */ unsigned long smbios3; /* SMBIOS table (64 bit entry point) */ unsigned long esrt; /* ESRT table */ unsigned long tpm_log; /* TPM2 Event Log table */ unsigned long tpm_final_log; /* TPM2 Final Events Log table */ unsigned long mokvar_table; /* MOK variable config table */ efi_get_time_t *get_time; efi_set_time_t *set_time; efi_get_wakeup_time_t *get_wakeup_time; efi_set_wakeup_time_t *set_wakeup_time; efi_get_variable_t *get_variable; efi_get_next_variable_t *get_next_variable; efi_set_variable_t *set_variable; efi_set_variable_t *set_variable_nonblocking; efi_query_variable_info_t *query_variable_info; efi_query_variable_info_t *query_variable_info_nonblocking; efi_update_capsule_t *update_capsule; efi_query_capsule_caps_t *query_capsule_caps; efi_get_next_high_mono_count_t *get_next_high_mono_count; efi_reset_system_t *reset_system; struct efi_memory_map memmap; unsigned long flags; } efi; #define EFI_RT_SUPPORTED_GET_TIME 0x0001 #define EFI_RT_SUPPORTED_SET_TIME 0x0002 #define EFI_RT_SUPPORTED_GET_WAKEUP_TIME 0x0004 #define EFI_RT_SUPPORTED_SET_WAKEUP_TIME 0x0008 #define EFI_RT_SUPPORTED_GET_VARIABLE 0x0010 #define EFI_RT_SUPPORTED_GET_NEXT_VARIABLE_NAME 0x0020 #define EFI_RT_SUPPORTED_SET_VARIABLE 0x0040 #define EFI_RT_SUPPORTED_SET_VIRTUAL_ADDRESS_MAP 0x0080 #define EFI_RT_SUPPORTED_CONVERT_POINTER 0x0100 #define EFI_RT_SUPPORTED_GET_NEXT_HIGH_MONOTONIC_COUNT 0x0200 #define EFI_RT_SUPPORTED_RESET_SYSTEM 0x0400 #define EFI_RT_SUPPORTED_UPDATE_CAPSULE 0x0800 #define EFI_RT_SUPPORTED_QUERY_CAPSULE_CAPABILITIES 0x1000 #define EFI_RT_SUPPORTED_QUERY_VARIABLE_INFO 0x2000 #define EFI_RT_SUPPORTED_ALL 0x3fff #define EFI_RT_SUPPORTED_TIME_SERVICES 0x000f #define EFI_RT_SUPPORTED_VARIABLE_SERVICES 0x0070 extern struct mm_struct efi_mm; static inline int efi_guidcmp (efi_guid_t left, efi_guid_t right) { return memcmp(&left, &right, sizeof (efi_guid_t)); } static inline char * efi_guid_to_str(efi_guid_t *guid, char *out) { sprintf(out, "%pUl", guid->b); return out; } extern void efi_init (void); #ifdef CONFIG_EFI extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */ #else static inline void efi_enter_virtual_mode (void) {} #endif #ifdef CONFIG_X86 extern efi_status_t efi_query_variable_store(u32 attributes, unsigned long size, bool nonblocking); #else static inline efi_status_t efi_query_variable_store(u32 attributes, unsigned long size, bool nonblocking) { return EFI_SUCCESS; } #endif extern void __iomem *efi_lookup_mapped_addr(u64 phys_addr); extern int __init __efi_memmap_init(struct efi_memory_map_data *data); extern int __init efi_memmap_init_early(struct efi_memory_map_data *data); extern int __init efi_memmap_init_late(phys_addr_t addr, unsigned long size); extern void __init efi_memmap_unmap(void); #ifdef CONFIG_EFI_ESRT extern void __init efi_esrt_init(void); #else static inline void efi_esrt_init(void) { } #endif extern int efi_config_parse_tables(const efi_config_table_t *config_tables, int count, const efi_config_table_type_t *arch_tables); extern int efi_systab_check_header(const efi_table_hdr_t *systab_hdr, int min_major_version); extern void efi_systab_report_header(const efi_table_hdr_t *systab_hdr, unsigned long fw_vendor); extern u64 efi_get_iobase (void); extern int efi_mem_type(unsigned long phys_addr); extern u64 efi_mem_attributes (unsigned long phys_addr); extern u64 efi_mem_attribute (unsigned long phys_addr, unsigned long size); extern int __init efi_uart_console_only (void); extern u64 efi_mem_desc_end(efi_memory_desc_t *md); extern int efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md); extern void efi_mem_reserve(phys_addr_t addr, u64 size); extern int efi_mem_reserve_persistent(phys_addr_t addr, u64 size); extern void efi_initialize_iomem_resources(struct resource *code_resource, struct resource *data_resource, struct resource *bss_resource); extern u64 efi_get_fdt_params(struct efi_memory_map_data *data); extern struct kobject *efi_kobj; extern int efi_reboot_quirk_mode; extern bool efi_poweroff_required(void); #ifdef CONFIG_EFI_FAKE_MEMMAP extern void __init efi_fake_memmap(void); #else static inline void efi_fake_memmap(void) { } #endif extern unsigned long efi_mem_attr_table; /* * efi_memattr_perm_setter - arch specific callback function passed into * efi_memattr_apply_permissions() that updates the * mapping permissions described by the second * argument in the page tables referred to by the * first argument. */ typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *); extern int efi_memattr_init(void); extern int efi_memattr_apply_permissions(struct mm_struct *mm, efi_memattr_perm_setter fn); /* * efi_early_memdesc_ptr - get the n-th EFI memmap descriptor * @map: the start of efi memmap * @desc_size: the size of space for each EFI memmap descriptor * @n: the index of efi memmap descriptor * * EFI boot service provides the GetMemoryMap() function to get a copy of the * current memory map which is an array of memory descriptors, each of * which describes a contiguous block of memory. It also gets the size of the * map, and the size of each descriptor, etc. * * Note that per section 6.2 of UEFI Spec 2.6 Errata A, the returned size of * each descriptor might not be equal to sizeof(efi_memory_memdesc_t), * since efi_memory_memdesc_t may be extended in the future. Thus the OS * MUST use the returned size of the descriptor to find the start of each * efi_memory_memdesc_t in the memory map array. This should only be used * during bootup since for_each_efi_memory_desc_xxx() is available after the * kernel initializes the EFI subsystem to set up struct efi_memory_map. */ #define efi_early_memdesc_ptr(map, desc_size, n) \ (efi_memory_desc_t *)((void *)(map) + ((n) * (desc_size))) /* Iterate through an efi_memory_map */ #define for_each_efi_memory_desc_in_map(m, md) \ for ((md) = (m)->map; \ (md) && ((void *)(md) + (m)->desc_size) <= (m)->map_end; \ (md) = (void *)(md) + (m)->desc_size) /** * for_each_efi_memory_desc - iterate over descriptors in efi.memmap * @md: the efi_memory_desc_t * iterator * * Once the loop finishes @md must not be accessed. */ #define for_each_efi_memory_desc(md) \ for_each_efi_memory_desc_in_map(&efi.memmap, md) /* * Format an EFI memory descriptor's type and attributes to a user-provided * character buffer, as per snprintf(), and return the buffer. */ char * __init efi_md_typeattr_format(char *buf, size_t size, const efi_memory_desc_t *md); typedef void (*efi_element_handler_t)(const char *source, const void *element_data, size_t element_size); extern int __init parse_efi_signature_list( const char *source, const void *data, size_t size, efi_element_handler_t (*get_handler_for_guid)(const efi_guid_t *)); /** * efi_range_is_wc - check the WC bit on an address range * @start: starting kvirt address * @len: length of range * * Consult the EFI memory map and make sure it's ok to set this range WC. * Returns true or false. */ static inline int efi_range_is_wc(unsigned long start, unsigned long len) { unsigned long i; for (i = 0; i < len; i += (1UL << EFI_PAGE_SHIFT)) { unsigned long paddr = __pa(start + i); if (!(efi_mem_attributes(paddr) & EFI_MEMORY_WC)) return 0; } /* The range checked out */ return 1; } #ifdef CONFIG_EFI_PCDP extern int __init efi_setup_pcdp_console(char *); #endif /* * We play games with efi_enabled so that the compiler will, if * possible, remove EFI-related code altogether. */ #define EFI_BOOT 0 /* Were we booted from EFI? */ #define EFI_CONFIG_TABLES 2 /* Can we use EFI config tables? */ #define EFI_RUNTIME_SERVICES 3 /* Can we use runtime services? */ #define EFI_MEMMAP 4 /* Can we use EFI memory map? */ #define EFI_64BIT 5 /* Is the firmware 64-bit? */ #define EFI_PARAVIRT 6 /* Access is via a paravirt interface */ #define EFI_ARCH_1 7 /* First arch-specific bit */ #define EFI_DBG 8 /* Print additional debug info at runtime */ #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */ #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ #define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ enum efi_secureboot_mode { efi_secureboot_mode_unset, efi_secureboot_mode_unknown, efi_secureboot_mode_disabled, efi_secureboot_mode_enabled, }; #ifdef CONFIG_EFI_PARAMS_FROM_FDT u32 __init efi_get__secure_boot(void); #else static inline u32 efi_get__secure_boot(void) { return efi_secureboot_mode_unset; }; #endif #ifdef CONFIG_EFI /* * Test whether the above EFI_* bits are enabled. */ static inline bool efi_enabled(int feature) { return test_bit(feature, &efi.flags) != 0; } extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); bool __pure __efi_soft_reserve_enabled(void); static inline bool __pure efi_soft_reserve_enabled(void) { return IS_ENABLED(CONFIG_EFI_SOFT_RESERVE) && __efi_soft_reserve_enabled(); } static inline bool efi_rt_services_supported(unsigned int mask) { return (efi.runtime_supported_mask & mask) == mask; } #else static inline bool efi_enabled(int feature) { return false; } static inline void efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} static inline bool efi_soft_reserve_enabled(void) { return false; } static inline bool efi_rt_services_supported(unsigned int mask) { return false; } #endif extern int efi_status_to_err(efi_status_t status); extern const char *efi_status_to_str(efi_status_t status); /* * Variable Attributes */ #define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 #define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 #define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x0000000000000008 #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x0000000000000010 #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x0000000000000020 #define EFI_VARIABLE_APPEND_WRITE 0x0000000000000040 #define EFI_VARIABLE_MASK (EFI_VARIABLE_NON_VOLATILE | \ EFI_VARIABLE_BOOTSERVICE_ACCESS | \ EFI_VARIABLE_RUNTIME_ACCESS | \ EFI_VARIABLE_HARDWARE_ERROR_RECORD | \ EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS | \ EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | \ EFI_VARIABLE_APPEND_WRITE) /* * Length of a GUID string (strlen("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")) * not including trailing NUL */ #define EFI_VARIABLE_GUID_LEN UUID_STRING_LEN /* * EFI Device Path information */ #define EFI_DEV_HW 0x01 #define EFI_DEV_PCI 1 #define EFI_DEV_PCCARD 2 #define EFI_DEV_MEM_MAPPED 3 #define EFI_DEV_VENDOR 4 #define EFI_DEV_CONTROLLER 5 #define EFI_DEV_ACPI 0x02 #define EFI_DEV_BASIC_ACPI 1 #define EFI_DEV_EXPANDED_ACPI 2 #define EFI_DEV_MSG 0x03 #define EFI_DEV_MSG_ATAPI 1 #define EFI_DEV_MSG_SCSI 2 #define EFI_DEV_MSG_FC 3 #define EFI_DEV_MSG_1394 4 #define EFI_DEV_MSG_USB 5 #define EFI_DEV_MSG_USB_CLASS 15 #define EFI_DEV_MSG_I20 6 #define EFI_DEV_MSG_MAC 11 #define EFI_DEV_MSG_IPV4 12 #define EFI_DEV_MSG_IPV6 13 #define EFI_DEV_MSG_INFINIBAND 9 #define EFI_DEV_MSG_UART 14 #define EFI_DEV_MSG_VENDOR 10 #define EFI_DEV_MEDIA 0x04 #define EFI_DEV_MEDIA_HARD_DRIVE 1 #define EFI_DEV_MEDIA_CDROM 2 #define EFI_DEV_MEDIA_VENDOR 3 #define EFI_DEV_MEDIA_FILE 4 #define EFI_DEV_MEDIA_PROTOCOL 5 #define EFI_DEV_BIOS_BOOT 0x05 #define EFI_DEV_END_PATH 0x7F #define EFI_DEV_END_PATH2 0xFF #define EFI_DEV_END_INSTANCE 0x01 #define EFI_DEV_END_ENTIRE 0xFF struct efi_generic_dev_path { u8 type; u8 sub_type; u16 length; } __packed; struct efi_acpi_dev_path { struct efi_generic_dev_path header; u32 hid; u32 uid; } __packed; struct efi_pci_dev_path { struct efi_generic_dev_path header; u8 fn; u8 dev; } __packed; struct efi_vendor_dev_path { struct efi_generic_dev_path header; efi_guid_t vendorguid; u8 vendordata[]; } __packed; struct efi_dev_path { union { struct efi_generic_dev_path header; struct efi_acpi_dev_path acpi; struct efi_pci_dev_path pci; struct efi_vendor_dev_path vendor; }; } __packed; struct device *efi_get_device_by_path(const struct efi_dev_path **node, size_t *len); static inline void memrange_efi_to_native(u64 *addr, u64 *npages) { *npages = PFN_UP(*addr + (*npages<kobj); } int efivars_register(struct efivars *efivars, const struct efivar_operations *ops, struct kobject *kobject); int efivars_unregister(struct efivars *efivars); struct kobject *efivars_kobject(void); int efivar_supports_writes(void); int efivar_init(int (*func)(efi_char16_t *, efi_guid_t, unsigned long, void *), void *data, bool duplicates, struct list_head *head); int efivar_entry_add(struct efivar_entry *entry, struct list_head *head); int efivar_entry_remove(struct efivar_entry *entry); int __efivar_entry_delete(struct efivar_entry *entry); int efivar_entry_delete(struct efivar_entry *entry); int efivar_entry_size(struct efivar_entry *entry, unsigned long *size); int __efivar_entry_get(struct efivar_entry *entry, u32 *attributes, unsigned long *size, void *data); int efivar_entry_get(struct efivar_entry *entry, u32 *attributes, unsigned long *size, void *data); int efivar_entry_set(struct efivar_entry *entry, u32 attributes, unsigned long size, void *data, struct list_head *head); int efivar_entry_set_get_size(struct efivar_entry *entry, u32 attributes, unsigned long *size, void *data, bool *set); int efivar_entry_set_safe(efi_char16_t *name, efi_guid_t vendor, u32 attributes, bool block, unsigned long size, void *data); int efivar_entry_iter_begin(void); void efivar_entry_iter_end(void); int __efivar_entry_iter(int (*func)(struct efivar_entry *, void *), struct list_head *head, void *data, struct efivar_entry **prev); int efivar_entry_iter(int (*func)(struct efivar_entry *, void *), struct list_head *head, void *data); struct efivar_entry *efivar_entry_find(efi_char16_t *name, efi_guid_t guid, struct list_head *head, bool remove); bool efivar_validate(efi_guid_t vendor, efi_char16_t *var_name, u8 *data, unsigned long data_size); bool efivar_variable_is_removable(efi_guid_t vendor, const char *name, size_t len); #if IS_ENABLED(CONFIG_EFI_CAPSULE_LOADER) extern bool efi_capsule_pending(int *reset_type); extern int efi_capsule_supported(efi_guid_t guid, u32 flags, size_t size, int *reset); extern int efi_capsule_update(efi_capsule_header_t *capsule, phys_addr_t *pages); #else static inline bool efi_capsule_pending(int *reset_type) { return false; } #endif #ifdef CONFIG_EFI_RUNTIME_MAP int efi_runtime_map_init(struct kobject *); int efi_get_runtime_map_size(void); int efi_get_runtime_map_desc_size(void); int efi_runtime_map_copy(void *buf, size_t bufsz); #else static inline int efi_runtime_map_init(struct kobject *kobj) { return 0; } static inline int efi_get_runtime_map_size(void) { return 0; } static inline int efi_get_runtime_map_desc_size(void) { return 0; } static inline int efi_runtime_map_copy(void *buf, size_t bufsz) { return 0; } #endif #ifdef CONFIG_EFI extern bool efi_runtime_disabled(void); #else static inline bool efi_runtime_disabled(void) { return true; } #endif extern void efi_call_virt_check_flags(unsigned long flags, const char *call); extern unsigned long efi_call_virt_save_flags(void); static inline enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) { u8 secboot, setupmode = 0; efi_status_t status; unsigned long size; size = sizeof(secboot); status = get_var(L"SecureBoot", &EFI_GLOBAL_VARIABLE_GUID, NULL, &size, &secboot); if (status == EFI_NOT_FOUND) return efi_secureboot_mode_disabled; if (status != EFI_SUCCESS) return efi_secureboot_mode_unknown; size = sizeof(setupmode); get_var(L"SetupMode", &EFI_GLOBAL_VARIABLE_GUID, NULL, &size, &setupmode); if (secboot == 0 || setupmode == 1) return efi_secureboot_mode_disabled; return efi_secureboot_mode_enabled; } #ifdef CONFIG_EFI_EMBEDDED_FIRMWARE void efi_check_for_embedded_firmwares(void); #else static inline void efi_check_for_embedded_firmwares(void) { } #endif /* * Arch code can implement the following three template macros, avoiding * reptition for the void/non-void return cases of {__,}efi_call_virt(): * * * arch_efi_call_virt_setup() * * Sets up the environment for the call (e.g. switching page tables, * allowing kernel-mode use of floating point, if required). * * * arch_efi_call_virt() * * Performs the call. The last expression in the macro must be the call * itself, allowing the logic to be shared by the void and non-void * cases. * * * arch_efi_call_virt_teardown() * * Restores the usual kernel environment once the call has returned. */ #define efi_call_virt_pointer(p, f, args...) \ ({ \ efi_status_t __s; \ unsigned long __flags; \ \ arch_efi_call_virt_setup(); \ \ __flags = efi_call_virt_save_flags(); \ __s = arch_efi_call_virt(p, f, args); \ efi_call_virt_check_flags(__flags, __stringify(f)); \ \ arch_efi_call_virt_teardown(); \ \ __s; \ }) #define __efi_call_virt_pointer(p, f, args...) \ ({ \ unsigned long __flags; \ \ arch_efi_call_virt_setup(); \ \ __flags = efi_call_virt_save_flags(); \ arch_efi_call_virt(p, f, args); \ efi_call_virt_check_flags(__flags, __stringify(f)); \ \ arch_efi_call_virt_teardown(); \ }) #define EFI_RANDOM_SEED_SIZE 32U // BLAKE2S_HASH_SIZE struct linux_efi_random_seed { u32 size; u8 bits[]; }; struct linux_efi_tpm_eventlog { u32 size; u32 final_events_preboot_size; u8 version; u8 log[]; }; extern int efi_tpm_eventlog_init(void); struct efi_tcg2_final_events_table { u64 version; u64 nr_events; u8 events[]; }; extern int efi_tpm_final_log_size; extern unsigned long rci2_table_phys; /* * efi_runtime_service() function identifiers. * "NONE" is used by efi_recover_from_page_fault() to check if the page * fault happened while executing an efi runtime service. */ enum efi_rts_ids { EFI_NONE, EFI_GET_TIME, EFI_SET_TIME, EFI_GET_WAKEUP_TIME, EFI_SET_WAKEUP_TIME, EFI_GET_VARIABLE, EFI_GET_NEXT_VARIABLE, EFI_SET_VARIABLE, EFI_QUERY_VARIABLE_INFO, EFI_GET_NEXT_HIGH_MONO_COUNT, EFI_RESET_SYSTEM, EFI_UPDATE_CAPSULE, EFI_QUERY_CAPSULE_CAPS, }; /* * efi_runtime_work: Details of EFI Runtime Service work * @arg<1-5>: EFI Runtime Service function arguments * @status: Status of executing EFI Runtime Service * @efi_rts_id: EFI Runtime Service function identifier * @efi_rts_comp: Struct used for handling completions */ struct efi_runtime_work { void *arg1; void *arg2; void *arg3; void *arg4; void *arg5; efi_status_t status; struct work_struct work; enum efi_rts_ids efi_rts_id; struct completion efi_rts_comp; }; extern struct efi_runtime_work efi_rts_work; /* Workqueue to queue EFI Runtime Services */ extern struct workqueue_struct *efi_rts_wq; struct linux_efi_memreserve { int size; // allocated size of the array atomic_t count; // number of entries used phys_addr_t next; // pa of next struct instance struct { phys_addr_t base; phys_addr_t size; } entry[]; }; #define EFI_MEMRESERVE_COUNT(size) (((size) - sizeof(struct linux_efi_memreserve)) \ / sizeof_field(struct linux_efi_memreserve, entry[0])) void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size); char *efi_systab_show_arch(char *str); /* * The LINUX_EFI_MOK_VARIABLE_TABLE_GUID config table can be provided * to the kernel by an EFI boot loader. The table contains a packed * sequence of these entries, one for each named MOK variable. * The sequence is terminated by an entry with a completely NULL * name and 0 data size. */ struct efi_mokvar_table_entry { char name[256]; u64 data_size; u8 data[]; } __attribute((packed)); #ifdef CONFIG_LOAD_UEFI_KEYS extern void __init efi_mokvar_table_init(void); extern struct efi_mokvar_table_entry *efi_mokvar_entry_next( struct efi_mokvar_table_entry **mokvar_entry); extern struct efi_mokvar_table_entry *efi_mokvar_entry_find(const char *name); #else static inline void efi_mokvar_table_init(void) { } static inline struct efi_mokvar_table_entry *efi_mokvar_entry_next( struct efi_mokvar_table_entry **mokvar_entry) { return NULL; } static inline struct efi_mokvar_table_entry *efi_mokvar_entry_find( const char *name) { return NULL; } #endif #ifdef CONFIG_SYSFB extern void efifb_setup_from_dmi(struct screen_info *si, const char *opt); #else static inline void efifb_setup_from_dmi(struct screen_info *si, const char *opt) { } #endif #endif /* _LINUX_EFI_H */