Linux tsuru-no-tsurugi 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.0.18 & Your IP : 216.73.216.68
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
src /
linux-headers-5.15.0-185 /
include /
linux /
Delete
Unzip
Name
Size
Permission
Date
Action
amba
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
atomic
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
avf
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
bcma
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
byteorder
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
can
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
ceph
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
clk
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
crush
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
decompress
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
device
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
dma
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
dsa
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
extcon
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
firmware
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
fpga
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
fsl
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
gpio
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
greybus
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
hsi
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
i3c
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
iio
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
input
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
irqchip
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
isdn
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
lockd
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mailbox
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mdio
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mfd
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mlx4
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mlx5
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mmc
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mtd
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
mux
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
net
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
netfilter
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
netfilter_arp
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
netfilter_bridge
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
netfilter_ipv4
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
netfilter_ipv6
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
pcs
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
perf
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
phy
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
pinctrl
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
platform_data
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
power
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
qed
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
raid
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
regulator
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
remoteproc
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
reset
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
rpmsg
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
rtc
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
sched
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
soc
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
soundwire
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
spi
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
ssb
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
sunrpc
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
surface_aggregator
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
ulpi
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
unaligned
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
usb
[ DIR ]
drwxr-xr-x
2026-06-27 06:50
8250_pci.h
1.01
KB
-rw-r--r--
2021-11-01 05:53
a.out.h
354
B
-rw-r--r--
2021-11-01 05:53
acct.h
2.49
KB
-rw-r--r--
2021-11-01 05:53
acpi.h
39.94
KB
-rw-r--r--
2026-06-20 00:54
acpi_dma.h
3.08
KB
-rw-r--r--
2021-11-01 05:53
acpi_iort.h
2.35
KB
-rw-r--r--
2026-06-20 00:54
acpi_mdio.h
819
B
-rw-r--r--
2026-06-20 00:54
acpi_pmtmr.h
674
B
-rw-r--r--
2021-11-01 05:53
acpi_viot.h
478
B
-rw-r--r--
2026-06-20 00:54
adb.h
1.79
KB
-rw-r--r--
2021-11-01 05:53
adfs_fs.h
574
B
-rw-r--r--
2021-11-01 05:53
adreno-smmu-priv.h
2.74
KB
-rw-r--r--
2021-11-01 05:53
adxl.h
310
B
-rw-r--r--
2021-11-01 05:53
aer.h
1.78
KB
-rw-r--r--
2021-11-01 05:53
agp_backend.h
3.45
KB
-rw-r--r--
2021-11-01 05:53
agpgart.h
3.79
KB
-rw-r--r--
2021-11-01 05:53
ahci-remap.h
607
B
-rw-r--r--
2021-11-01 05:53
ahci_platform.h
1.71
KB
-rw-r--r--
2026-06-20 00:54
aio.h
651
B
-rw-r--r--
2021-11-01 05:53
alarmtimer.h
1.94
KB
-rw-r--r--
2021-11-01 05:53
alcor_pci.h
8.83
KB
-rw-r--r--
2021-11-01 05:53
align.h
552
B
-rw-r--r--
2021-11-01 05:53
altera_jtaguart.h
379
B
-rw-r--r--
2021-11-01 05:53
altera_uart.h
397
B
-rw-r--r--
2021-11-01 05:53
amd-iommu.h
6.18
KB
-rw-r--r--
2021-11-01 05:53
anon_inodes.h
670
B
-rw-r--r--
2021-11-01 05:53
apm-emulation.h
1.56
KB
-rw-r--r--
2021-11-01 05:53
apm_bios.h
2.25
KB
-rw-r--r--
2021-11-01 05:53
apple-gmux.h
918
B
-rw-r--r--
2021-11-01 05:53
apple_bl.h
498
B
-rw-r--r--
2021-11-01 05:53
arch_topology.h
2.49
KB
-rw-r--r--
2021-11-01 05:53
arm-cci.h
1.36
KB
-rw-r--r--
2021-11-01 05:53
arm-smccc.h
16.97
KB
-rw-r--r--
2026-06-20 00:54
arm_ffa.h
7.37
KB
-rw-r--r--
2026-06-20 00:54
arm_sdei.h
2.67
KB
-rw-r--r--
2026-06-20 00:54
armada-37xx-rwtm-mailbox.h
431
B
-rw-r--r--
2021-11-01 05:53
array_size.h
332
B
-rw-r--r--
2026-06-20 00:54
ascii85.h
555
B
-rw-r--r--
2021-11-01 05:53
asn1.h
1.79
KB
-rw-r--r--
2021-11-01 05:53
asn1_ber_bytecode.h
2.52
KB
-rw-r--r--
2021-11-01 05:53
asn1_decoder.h
468
B
-rw-r--r--
2021-11-01 05:53
asn1_encoder.h
1006
B
-rw-r--r--
2021-11-01 05:53
assoc_array.h
2.88
KB
-rw-r--r--
2021-11-01 05:53
assoc_array_priv.h
5.3
KB
-rw-r--r--
2021-11-01 05:53
async.h
4.33
KB
-rw-r--r--
2026-06-20 00:54
async_tx.h
6.7
KB
-rw-r--r--
2021-11-01 05:53
ata.h
33.01
KB
-rw-r--r--
2026-06-20 00:54
ata_platform.h
749
B
-rw-r--r--
2021-11-01 05:53
atalk.h
4.48
KB
-rw-r--r--
2021-11-01 05:53
ath9k_platform.h
1.44
KB
-rw-r--r--
2021-11-01 05:53
atm.h
287
B
-rw-r--r--
2021-11-01 05:53
atm_tcp.h
511
B
-rw-r--r--
2021-11-01 05:53
atmdev.h
10.23
KB
-rw-r--r--
2026-06-20 00:54
atmel-isc-media.h
2.07
KB
-rw-r--r--
2021-11-01 05:53
atmel-mci.h
1.4
KB
-rw-r--r--
2021-11-01 05:53
atmel-ssc.h
9.74
KB
-rw-r--r--
2021-11-01 05:53
atmel_pdc.h
1.26
KB
-rw-r--r--
2021-11-01 05:53
atomic.h
2.58
KB
-rw-r--r--
2021-11-01 05:53
attribute_container.h
2.74
KB
-rw-r--r--
2021-11-01 05:53
audit.h
19.45
KB
-rw-r--r--
2026-06-20 00:54
auto_dev-ioctl.h
296
B
-rw-r--r--
2021-11-01 05:53
auto_fs.h
278
B
-rw-r--r--
2021-11-01 05:53
auxiliary_bus.h
2.48
KB
-rw-r--r--
2021-11-01 05:53
auxvec.h
304
B
-rw-r--r--
2021-11-01 05:53
average.h
2.42
KB
-rw-r--r--
2021-11-01 05:53
backing-dev-defs.h
8.55
KB
-rw-r--r--
2021-11-01 05:53
backing-dev.h
11.9
KB
-rw-r--r--
2026-06-20 00:54
backlight.h
13.13
KB
-rw-r--r--
2021-11-01 05:53
badblocks.h
2.14
KB
-rw-r--r--
2021-11-01 05:53
balloon_compaction.h
5.75
KB
-rw-r--r--
2026-06-20 00:54
bcd.h
559
B
-rw-r--r--
2021-11-01 05:53
bch.h
2.1
KB
-rw-r--r--
2021-11-01 05:53
bcm47xx_nvram.h
1.01
KB
-rw-r--r--
2021-11-01 05:53
bcm47xx_sprom.h
616
B
-rw-r--r--
2021-11-01 05:53
bcm47xx_wdt.h
555
B
-rw-r--r--
2021-11-01 05:53
bcm963xx_nvram.h
2.96
KB
-rw-r--r--
2021-11-01 05:53
bcm963xx_tag.h
3.6
KB
-rw-r--r--
2021-11-01 05:53
binfmts.h
4.57
KB
-rw-r--r--
2026-06-20 00:54
bio.h
19.64
KB
-rw-r--r--
2021-11-01 05:53
bit_spinlock.h
2.3
KB
-rw-r--r--
2021-11-01 05:53
bitfield.h
5.33
KB
-rw-r--r--
2026-06-20 00:54
bitmap.h
22.13
KB
-rw-r--r--
2026-06-20 00:54
bitops.h
8.53
KB
-rw-r--r--
2021-11-01 05:53
bitrev.h
2.53
KB
-rw-r--r--
2021-11-01 05:53
bits.h
1.35
KB
-rw-r--r--
2021-11-01 05:53
blk-cgroup.h
22.12
KB
-rw-r--r--
2026-06-20 00:54
blk-crypto.h
4.02
KB
-rw-r--r--
2026-06-20 00:54
blk-mq-pci.h
269
B
-rw-r--r--
2021-11-01 05:53
blk-mq-rdma.h
273
B
-rw-r--r--
2021-11-01 05:53
blk-mq-virtio.h
293
B
-rw-r--r--
2021-11-01 05:53
blk-mq.h
19.37
KB
-rw-r--r--
2021-11-01 05:53
blk-pm.h
708
B
-rw-r--r--
2026-06-20 00:54
blk_types.h
15.3
KB
-rw-r--r--
2026-06-20 00:54
blkdev.h
56.68
KB
-rw-r--r--
2026-06-20 00:54
blkpg.h
436
B
-rw-r--r--
2021-11-01 05:53
blktrace_api.h
3.77
KB
-rw-r--r--
2021-11-01 05:53
blockgroup_lock.h
810
B
-rw-r--r--
2021-11-01 05:53
bma150.h
1.26
KB
-rw-r--r--
2021-11-01 05:53
bootconfig.h
8.51
KB
-rw-r--r--
2026-06-20 00:54
bootmem_info.h
1.69
KB
-rw-r--r--
2026-06-20 00:54
bottom_half.h
974
B
-rw-r--r--
2021-11-01 05:53
bpf-cgroup.h
18.36
KB
-rw-r--r--
2026-06-20 00:54
bpf-netns.h
1.52
KB
-rw-r--r--
2021-11-01 05:53
bpf.h
74.43
KB
-rw-r--r--
2026-06-20 00:54
bpf_lirc.h
698
B
-rw-r--r--
2021-11-01 05:53
bpf_local_storage.h
5.23
KB
-rw-r--r--
2021-11-01 05:53
bpf_lsm.h
1.42
KB
-rw-r--r--
2021-11-01 05:53
bpf_trace.h
166
B
-rw-r--r--
2021-11-01 05:53
bpf_types.h
5.41
KB
-rw-r--r--
2021-11-01 05:53
bpf_verifier.h
20.38
KB
-rw-r--r--
2026-06-20 00:54
bpfilter.h
791
B
-rw-r--r--
2021-11-01 05:53
bpfptr.h
1.98
KB
-rw-r--r--
2026-06-20 00:54
brcmphy.h
13.67
KB
-rw-r--r--
2021-11-01 05:53
bsearch.h
624
B
-rw-r--r--
2021-11-01 05:53
bsg-lib.h
1.72
KB
-rw-r--r--
2021-11-01 05:53
bsg.h
492
B
-rw-r--r--
2021-11-01 05:53
btf.h
7.26
KB
-rw-r--r--
2021-11-01 05:53
btf_ids.h
5.33
KB
-rw-r--r--
2026-06-20 00:54
btree-128.h
2.67
KB
-rw-r--r--
2021-11-01 05:53
btree-type.h
3.9
KB
-rw-r--r--
2021-11-01 05:53
btree.h
6.84
KB
-rw-r--r--
2021-11-01 05:53
btrfs.h
145
B
-rw-r--r--
2021-11-01 05:53
buffer_head.h
14.47
KB
-rw-r--r--
2026-06-20 00:54
bug.h
2.17
KB
-rw-r--r--
2021-11-01 05:53
build-salt.h
375
B
-rw-r--r--
2021-11-01 05:53
build_bug.h
2.76
KB
-rw-r--r--
2021-11-01 05:53
buildid.h
561
B
-rw-r--r--
2021-11-01 05:53
bvec.h
6.17
KB
-rw-r--r--
2021-11-01 05:53
c2port.h
1.35
KB
-rw-r--r--
2021-11-01 05:53
cache.h
2.55
KB
-rw-r--r--
2021-11-01 05:53
cacheinfo.h
3.75
KB
-rw-r--r--
2021-11-01 05:53
capability.h
8.29
KB
-rw-r--r--
2021-11-01 05:53
cb710.h
5.36
KB
-rw-r--r--
2021-11-01 05:53
cc_platform.h
2.32
KB
-rw-r--r--
2026-06-20 00:54
cciss_ioctl.h
1.03
KB
-rw-r--r--
2021-11-01 05:53
ccp.h
18.14
KB
-rw-r--r--
2021-11-01 05:53
cdev.h
845
B
-rw-r--r--
2021-11-01 05:53
cdrom.h
8.98
KB
-rw-r--r--
2021-11-01 05:53
cfag12864b.h
1.47
KB
-rw-r--r--
2021-11-01 05:53
cfi.h
1.13
KB
-rw-r--r--
2021-11-01 05:53
cgroup-defs.h
24.23
KB
-rw-r--r--
2026-06-20 00:54
cgroup.h
28.16
KB
-rw-r--r--
2026-06-20 00:54
cgroup_rdma.h
1.18
KB
-rw-r--r--
2021-11-01 05:53
cgroup_subsys.h
1.23
KB
-rw-r--r--
2021-11-01 05:53
circ_buf.h
1.09
KB
-rw-r--r--
2021-11-01 05:53
cleancache.h
3.89
KB
-rw-r--r--
2021-11-01 05:53
cleanup.h
4.87
KB
-rw-r--r--
2026-06-20 00:54
clk-provider.h
57.94
KB
-rw-r--r--
2026-06-20 00:54
clk.h
33.61
KB
-rw-r--r--
2026-06-20 00:54
clkdev.h
1.29
KB
-rw-r--r--
2021-11-01 05:53
clockchips.h
7.27
KB
-rw-r--r--
2021-11-01 05:53
clocksource.h
9.99
KB
-rw-r--r--
2026-06-20 00:54
clocksource_ids.h
247
B
-rw-r--r--
2021-11-01 05:53
cm4000_cs.h
199
B
-rw-r--r--
2021-11-01 05:53
cma.h
1.96
KB
-rw-r--r--
2026-06-20 00:54
cn_proc.h
1.85
KB
-rw-r--r--
2021-11-01 05:53
cnt32_to_63.h
3.46
KB
-rw-r--r--
2021-11-01 05:53
coda.h
2.16
KB
-rw-r--r--
2021-11-01 05:53
compaction.h
7.15
KB
-rw-r--r--
2021-11-01 05:53
compat.h
31.37
KB
-rw-r--r--
2026-06-20 00:54
compiler-clang.h
4.05
KB
-rw-r--r--
2026-06-20 00:54
compiler-gcc.h
4.9
KB
-rw-r--r--
2026-06-20 00:54
compiler-intel.h
949
B
-rw-r--r--
2021-11-01 05:53
compiler-version.h
517
B
-rw-r--r--
2021-11-01 05:53
compiler.h
8.35
KB
-rw-r--r--
2026-06-20 00:54
compiler_attributes.h
13.24
KB
-rw-r--r--
2026-06-20 00:54
compiler_types.h
10.76
KB
-rw-r--r--
2026-06-20 00:54
completion.h
4
KB
-rw-r--r--
2021-11-01 05:53
component.h
4.07
KB
-rw-r--r--
2021-11-01 05:53
configfs.h
8.48
KB
-rw-r--r--
2021-11-01 05:53
connector.h
3.83
KB
-rw-r--r--
2021-11-01 05:53
console.h
7.58
KB
-rw-r--r--
2026-06-20 00:54
console_struct.h
7.08
KB
-rw-r--r--
2026-06-20 00:54
consolemap.h
1.05
KB
-rw-r--r--
2021-11-01 05:53
const.h
421
B
-rw-r--r--
2021-11-01 05:53
container.h
610
B
-rw-r--r--
2021-11-01 05:53
context_tracking.h
3.28
KB
-rw-r--r--
2021-11-01 05:53
context_tracking_state.h
1.58
KB
-rw-r--r--
2021-11-01 05:53
cookie.h
1.22
KB
-rw-r--r--
2021-11-01 05:53
cordic.h
2.08
KB
-rw-r--r--
2021-11-01 05:53
coredump.h
1.13
KB
-rw-r--r--
2026-06-20 00:54
coresight-pmu.h
1.32
KB
-rw-r--r--
2021-11-01 05:53
coresight-stm.h
152
B
-rw-r--r--
2021-11-01 05:53
coresight.h
18.02
KB
-rw-r--r--
2026-06-20 00:54
count_zeros.h
1.42
KB
-rw-r--r--
2021-11-01 05:53
counter.h
14.96
KB
-rw-r--r--
2026-06-20 00:54
cper.h
16.55
KB
-rw-r--r--
2026-06-20 00:54
cpu.h
8.29
KB
-rw-r--r--
2026-06-20 00:54
cpu_cooling.h
1.86
KB
-rw-r--r--
2021-11-01 05:53
cpu_pm.h
2.38
KB
-rw-r--r--
2021-11-01 05:53
cpu_rmap.h
1.68
KB
-rw-r--r--
2021-11-01 05:53
cpufeature.h
1.71
KB
-rw-r--r--
2021-11-01 05:53
cpufreq.h
32.76
KB
-rw-r--r--
2026-06-20 00:54
cpuhotplug.h
16.55
KB
-rw-r--r--
2026-06-20 00:54
cpuidle.h
10.27
KB
-rw-r--r--
2021-11-01 05:53
cpuidle_haltpoll.h
312
B
-rw-r--r--
2021-11-01 05:53
cpumask.h
29.38
KB
-rw-r--r--
2026-06-20 00:54
cpuset.h
8.16
KB
-rw-r--r--
2026-06-20 00:54
crash_core.h
3.38
KB
-rw-r--r--
2021-11-01 05:53
crash_dump.h
4.05
KB
-rw-r--r--
2021-11-01 05:53
crc-ccitt.h
609
B
-rw-r--r--
2021-11-01 05:53
crc-itu-t.h
531
B
-rw-r--r--
2021-11-01 05:53
crc-t10dif.h
453
B
-rw-r--r--
2021-11-01 05:53
crc16.h
540
B
-rw-r--r--
2021-11-01 05:53
crc32.h
2.83
KB
-rw-r--r--
2021-11-01 05:53
crc32c.h
331
B
-rw-r--r--
2021-11-01 05:53
crc32poly.h
610
B
-rw-r--r--
2021-11-01 05:53
crc4.h
192
B
-rw-r--r--
2021-11-01 05:53
crc64.h
280
B
-rw-r--r--
2021-11-01 05:53
crc7.h
316
B
-rw-r--r--
2021-11-01 05:53
crc8.h
3.66
KB
-rw-r--r--
2021-11-01 05:53
cred.h
12.5
KB
-rw-r--r--
2026-06-20 00:54
crypto.h
27.24
KB
-rw-r--r--
2026-06-20 00:54
cs5535.h
6.13
KB
-rw-r--r--
2021-11-01 05:53
ctype.h
1.87
KB
-rw-r--r--
2021-11-01 05:53
cuda.h
613
B
-rw-r--r--
2021-11-01 05:53
damon.h
10.35
KB
-rw-r--r--
2021-11-01 05:53
dasd_mod.h
204
B
-rw-r--r--
2021-11-01 05:53
davinci_emac.h
1.05
KB
-rw-r--r--
2021-11-01 05:53
dax.h
6.56
KB
-rw-r--r--
2021-11-01 05:53
dca.h
1.88
KB
-rw-r--r--
2021-11-01 05:53
dcache.h
18.63
KB
-rw-r--r--
2021-11-01 05:53
dccp.h
10.73
KB
-rw-r--r--
2021-11-01 05:53
debug_locks.h
1.59
KB
-rw-r--r--
2021-11-01 05:53
debugfs.h
11.97
KB
-rw-r--r--
2026-06-20 00:54
debugobjects.h
3.99
KB
-rw-r--r--
2021-11-01 05:53
delay.h
2.43
KB
-rw-r--r--
2026-06-20 00:54
delayacct.h
5.45
KB
-rw-r--r--
2021-11-01 05:53
delayed_call.h
709
B
-rw-r--r--
2021-11-01 05:53
dev_printk.h
9.19
KB
-rw-r--r--
2026-06-20 00:54
devcoredump.h
2.21
KB
-rw-r--r--
2021-11-01 05:53
devfreq-event.h
5.95
KB
-rw-r--r--
2021-11-01 05:53
devfreq.h
14.03
KB
-rw-r--r--
2026-06-20 00:54
devfreq_cooling.h
2.7
KB
-rw-r--r--
2021-11-01 05:53
device-mapper.h
18.92
KB
-rw-r--r--
2021-11-01 05:53
device.h
33.2
KB
-rw-r--r--
2026-06-20 00:54
device_cgroup.h
1.57
KB
-rw-r--r--
2021-11-01 05:53
devm-helpers.h
2.68
KB
-rw-r--r--
2021-11-01 05:53
devpts_fs.h
1.13
KB
-rw-r--r--
2021-11-01 05:53
dfl.h
2.38
KB
-rw-r--r--
2021-11-01 05:53
digsig.h
1.18
KB
-rw-r--r--
2021-11-01 05:53
dim.h
9.2
KB
-rw-r--r--
2026-06-20 00:54
dio.h
10.76
KB
-rw-r--r--
2021-11-01 05:53
dirent.h
215
B
-rw-r--r--
2021-11-01 05:53
dlm.h
5.86
KB
-rw-r--r--
2021-11-01 05:53
dlm_plock.h
532
B
-rw-r--r--
2021-11-01 05:53
dm-bufio.h
4.88
KB
-rw-r--r--
2021-11-01 05:53
dm-dirty-log.h
3.94
KB
-rw-r--r--
2021-11-01 05:53
dm-io.h
1.93
KB
-rw-r--r--
2021-11-01 05:53
dm-kcopyd.h
2.94
KB
-rw-r--r--
2021-11-01 05:53
dm-region-hash.h
3.11
KB
-rw-r--r--
2021-11-01 05:53
dm9000.h
987
B
-rw-r--r--
2021-11-01 05:53
dma-buf-map.h
8.12
KB
-rw-r--r--
2021-11-01 05:53
dma-buf.h
20.47
KB
-rw-r--r--
2026-06-20 00:54
dma-direct.h
3.59
KB
-rw-r--r--
2021-11-01 05:53
dma-direction.h
407
B
-rw-r--r--
2021-11-01 05:53
dma-fence-array.h
2.14
KB
-rw-r--r--
2021-11-01 05:53
dma-fence-chain.h
3.07
KB
-rw-r--r--
2021-11-01 05:53
dma-fence.h
20.86
KB
-rw-r--r--
2026-06-20 00:54
dma-heap.h
1.58
KB
-rw-r--r--
2021-11-01 05:53
dma-iommu.h
2.21
KB
-rw-r--r--
2021-11-01 05:53
dma-map-ops.h
12.89
KB
-rw-r--r--
2026-06-20 00:54
dma-mapping.h
20.11
KB
-rw-r--r--
2026-06-20 00:54
dma-resv.h
11.95
KB
-rw-r--r--
2026-06-20 00:54
dmaengine.h
53.57
KB
-rw-r--r--
2026-06-20 00:54
dmapool.h
1.79
KB
-rw-r--r--
2021-11-01 05:53
dmar.h
7.74
KB
-rw-r--r--
2021-11-01 05:53
dmi.h
4.27
KB
-rw-r--r--
2021-11-01 05:53
dnotify.h
1.02
KB
-rw-r--r--
2026-06-20 00:54
dns_resolver.h
1.36
KB
-rw-r--r--
2021-11-01 05:53
dqblk_qtree.h
2.19
KB
-rw-r--r--
2021-11-01 05:53
dqblk_v1.h
327
B
-rw-r--r--
2021-11-01 05:53
dqblk_v2.h
406
B
-rw-r--r--
2021-11-01 05:53
drbd.h
10.07
KB
-rw-r--r--
2021-11-01 05:53
drbd_genl.h
21.49
KB
-rw-r--r--
2021-11-01 05:53
drbd_genl_api.h
1.77
KB
-rw-r--r--
2021-11-01 05:53
drbd_limits.h
7.82
KB
-rw-r--r--
2021-11-01 05:53
ds2782_battery.h
158
B
-rw-r--r--
2021-11-01 05:53
dtlk.h
3.5
KB
-rw-r--r--
2021-11-01 05:53
dtpm.h
1.64
KB
-rw-r--r--
2021-11-01 05:53
dw_apb_timer.h
1.53
KB
-rw-r--r--
2021-11-01 05:53
dynamic_debug.h
6.32
KB
-rw-r--r--
2026-06-20 00:54
dynamic_queue_limits.h
3.72
KB
-rw-r--r--
2021-11-01 05:53
earlycpio.h
359
B
-rw-r--r--
2021-11-01 05:53
ecryptfs.h
3.82
KB
-rw-r--r--
2021-11-01 05:53
edac.h
19.46
KB
-rw-r--r--
2026-06-20 00:54
edd.h
1.05
KB
-rw-r--r--
2021-11-01 05:53
eeprom_93cx6.h
2.64
KB
-rw-r--r--
2026-06-20 00:54
eeprom_93xx46.h
1.04
KB
-rw-r--r--
2021-11-01 05:53
efi-bgrt.h
644
B
-rw-r--r--
2021-11-01 05:53
efi.h
42.03
KB
-rw-r--r--
2026-06-20 00:54
efi_embedded_fw.h
1.04
KB
-rw-r--r--
2021-11-01 05:53
efs_vh.h
1.55
KB
-rw-r--r--
2021-11-01 05:53
eisa.h
2.96
KB
-rw-r--r--
2021-11-01 05:53
elevator.h
5.52
KB
-rw-r--r--
2021-11-01 05:53
elf-fdpic.h
1.98
KB
-rw-r--r--
2021-11-01 05:53
elf-randomize.h
583
B
-rw-r--r--
2021-11-01 05:53
elf.h
2.96
KB
-rw-r--r--
2021-11-01 05:53
elfcore-compat.h
1.27
KB
-rw-r--r--
2021-11-01 05:53
elfcore.h
4.11
KB
-rw-r--r--
2021-11-01 05:53
elfnote-lto.h
314
B
-rw-r--r--
2021-11-01 05:53
elfnote.h
3.54
KB
-rw-r--r--
2021-11-01 05:53
enclosure.h
4.02
KB
-rw-r--r--
2021-11-01 05:53
energy_model.h
8.17
KB
-rw-r--r--
2021-11-01 05:53
entry-common.h
16.95
KB
-rw-r--r--
2021-11-01 05:53
entry-kvm.h
2.73
KB
-rw-r--r--
2026-06-20 00:54
err.h
1.49
KB
-rw-r--r--
2021-11-01 05:53
errname.h
283
B
-rw-r--r--
2021-11-01 05:53
errno.h
1.45
KB
-rw-r--r--
2021-11-01 05:53
error-injection.h
607
B
-rw-r--r--
2021-11-01 05:53
errqueue.h
524
B
-rw-r--r--
2021-11-01 05:53
errseq.h
382
B
-rw-r--r--
2021-11-01 05:53
etherdevice.h
17.19
KB
-rw-r--r--
2026-06-20 00:54
ethtool.h
31.74
KB
-rw-r--r--
2026-06-20 00:54
ethtool_netlink.h
1.98
KB
-rw-r--r--
2026-06-20 00:54
eventfd.h
2.28
KB
-rw-r--r--
2026-06-20 00:54
eventpoll.h
2.41
KB
-rw-r--r--
2026-06-20 00:54
evm.h
3.42
KB
-rw-r--r--
2021-11-01 05:53
export.h
5.27
KB
-rw-r--r--
2026-06-20 00:54
exportfs.h
8.22
KB
-rw-r--r--
2026-06-20 00:54
ext2_fs.h
967
B
-rw-r--r--
2021-11-01 05:53
extable.h
1.28
KB
-rw-r--r--
2021-11-01 05:53
extcon-provider.h
3.83
KB
-rw-r--r--
2021-11-01 05:53
extcon.h
10.16
KB
-rw-r--r--
2026-06-20 00:54
f2fs_fs.h
19.01
KB
-rw-r--r--
2026-06-20 00:54
f75375s.h
541
B
-rw-r--r--
2021-11-01 05:53
falloc.h
1.59
KB
-rw-r--r--
2021-11-01 05:53
fanotify.h
4.44
KB
-rw-r--r--
2026-06-20 00:54
fault-inject-usercopy.h
496
B
-rw-r--r--
2021-11-01 05:53
fault-inject.h
1.93
KB
-rw-r--r--
2021-11-01 05:53
fb.h
28.28
KB
-rw-r--r--
2026-06-20 00:54
fbcon.h
2.09
KB
-rw-r--r--
2026-06-20 00:54
fcdevice.h
774
B
-rw-r--r--
2021-11-01 05:53
fcntl.h
1.66
KB
-rw-r--r--
2021-11-01 05:53
fd.h
490
B
-rw-r--r--
2021-11-01 05:53
fddidevice.h
833
B
-rw-r--r--
2021-11-01 05:53
fdtable.h
3.49
KB
-rw-r--r--
2026-06-20 00:54
fec.h
463
B
-rw-r--r--
2021-11-01 05:53
fiemap.h
713
B
-rw-r--r--
2021-11-01 05:53
file.h
3.08
KB
-rw-r--r--
2026-06-20 00:54
fileattr.h
1.91
KB
-rw-r--r--
2021-11-01 05:53
filter.h
42.96
KB
-rw-r--r--
2026-06-20 00:54
fips.h
303
B
-rw-r--r--
2021-11-01 05:53
firewire.h
13.4
KB
-rw-r--r--
2021-11-01 05:53
firmware-map.h
959
B
-rw-r--r--
2021-11-01 05:53
firmware.h
3.27
KB
-rw-r--r--
2021-11-01 05:53
fixp-arith.h
4.19
KB
-rw-r--r--
2021-11-01 05:53
flat.h
2.57
KB
-rw-r--r--
2021-11-01 05:53
flex_proportions.h
2.81
KB
-rw-r--r--
2021-11-01 05:53
font.h
1.67
KB
-rw-r--r--
2021-11-01 05:53
fortify-string.h
9.11
KB
-rw-r--r--
2026-06-20 00:54
freelist.h
3.8
KB
-rw-r--r--
2021-11-01 05:53
freezer.h
8.98
KB
-rw-r--r--
2021-11-01 05:53
frontswap.h
3.04
KB
-rw-r--r--
2021-11-01 05:53
fs.h
122.56
KB
-rw-r--r--
2026-06-20 00:54
fs_context.h
8.61
KB
-rw-r--r--
2026-06-20 00:54
fs_enet_pd.h
3.38
KB
-rw-r--r--
2021-11-01 05:53
fs_parser.h
4.44
KB
-rw-r--r--
2021-11-01 05:53
fs_pin.h
539
B
-rw-r--r--
2021-11-01 05:53
fs_stack.h
811
B
-rw-r--r--
2021-11-01 05:53
fs_struct.h
1.04
KB
-rw-r--r--
2021-11-01 05:53
fs_types.h
2.02
KB
-rw-r--r--
2021-11-01 05:53
fs_uart_pd.h
1.49
KB
-rw-r--r--
2021-11-01 05:53
fscache-cache.h
18.58
KB
-rw-r--r--
2021-11-01 05:53
fscache.h
29.59
KB
-rw-r--r--
2026-06-20 00:54
fscrypt.h
29.9
KB
-rw-r--r--
2026-06-20 00:54
fsi-occ.h
681
B
-rw-r--r--
2021-11-01 05:53
fsi-sbefifo.h
629
B
-rw-r--r--
2021-11-01 05:53
fsi.h
2.26
KB
-rw-r--r--
2021-11-01 05:53
fsl-diu-fb.h
3.87
KB
-rw-r--r--
2021-11-01 05:53
fsl_devices.h
4.16
KB
-rw-r--r--
2021-11-01 05:53
fsl_hypervisor.h
2.76
KB
-rw-r--r--
2021-11-01 05:53
fsl_ifc.h
24.48
KB
-rw-r--r--
2021-11-01 05:53
fsldma.h
202
B
-rw-r--r--
2021-11-01 05:53
fsnotify.h
10.05
KB
-rw-r--r--
2026-06-20 00:54
fsnotify_backend.h
29.3
KB
-rw-r--r--
2026-06-20 00:54
fsverity.h
6.75
KB
-rw-r--r--
2021-11-01 05:53
ftrace.h
34.76
KB
-rw-r--r--
2026-06-20 00:54
ftrace_irq.h
884
B
-rw-r--r--
2021-11-01 05:53
futex.h
2.44
KB
-rw-r--r--
2021-11-01 05:53
fwnode.h
6.83
KB
-rw-r--r--
2026-06-20 00:54
fwnode_mdio.h
858
B
-rw-r--r--
2021-11-01 05:53
gameport.h
5.42
KB
-rw-r--r--
2021-11-01 05:53
gcd.h
193
B
-rw-r--r--
2021-11-01 05:53
genalloc.h
7.73
KB
-rw-r--r--
2026-06-20 00:54
generic-radix-tree.h
6.35
KB
-rw-r--r--
2021-11-01 05:53
genetlink.h
589
B
-rw-r--r--
2021-11-01 05:53
genhd.h
8.84
KB
-rw-r--r--
2026-06-20 00:54
genl_magic_func.h
11.53
KB
-rw-r--r--
2021-11-01 05:53
genl_magic_struct.h
7.61
KB
-rw-r--r--
2021-11-01 05:53
getcpu.h
641
B
-rw-r--r--
2021-11-01 05:53
gfp.h
26.26
KB
-rw-r--r--
2026-06-20 00:54
glob.h
256
B
-rw-r--r--
2021-11-01 05:53
gnss.h
1.56
KB
-rw-r--r--
2021-11-01 05:53
goldfish.h
878
B
-rw-r--r--
2026-06-20 00:54
gpio-pxa.h
571
B
-rw-r--r--
2021-11-01 05:53
gpio.h
5.3
KB
-rw-r--r--
2021-11-01 05:53
gpio_keys.h
1.74
KB
-rw-r--r--
2021-11-01 05:53
greybus.h
4.14
KB
-rw-r--r--
2021-11-01 05:53
hardirq.h
3.43
KB
-rw-r--r--
2021-11-01 05:53
hash.h
3
KB
-rw-r--r--
2021-11-01 05:53
hashtable.h
6.67
KB
-rw-r--r--
2021-11-01 05:53
hdlc.h
3.19
KB
-rw-r--r--
2021-11-01 05:53
hdlcdrv.h
6.32
KB
-rw-r--r--
2021-11-01 05:53
hdmi.h
12.41
KB
-rw-r--r--
2021-11-01 05:53
hid-debug.h
1.42
KB
-rw-r--r--
2021-11-01 05:53
hid-roccat.h
484
B
-rw-r--r--
2021-11-01 05:53
hid-sensor-hub.h
8.97
KB
-rw-r--r--
2021-11-01 05:53
hid-sensor-ids.h
7.44
KB
-rw-r--r--
2021-11-01 05:53
hid.h
38.01
KB
-rw-r--r--
2026-06-20 00:54
hidden.h
966
B
-rw-r--r--
2021-11-01 05:53
hiddev.h
1.42
KB
-rw-r--r--
2021-11-01 05:53
hidraw.h
1.12
KB
-rw-r--r--
2021-11-01 05:53
highmem-internal.h
5.12
KB
-rw-r--r--
2026-06-20 00:54
highmem.h
9.5
KB
-rw-r--r--
2026-06-20 00:54
highuid.h
3.12
KB
-rw-r--r--
2021-11-01 05:53
hil.h
18.42
KB
-rw-r--r--
2021-11-01 05:53
hil_mlc.h
5.13
KB
-rw-r--r--
2021-11-01 05:53
hippidevice.h
1.03
KB
-rw-r--r--
2021-11-01 05:53
hmm.h
4.07
KB
-rw-r--r--
2021-11-01 05:53
host1x.h
10.74
KB
-rw-r--r--
2021-11-01 05:53
hp_sdc.h
14.02
KB
-rw-r--r--
2021-11-01 05:53
hpet.h
2.55
KB
-rw-r--r--
2021-11-01 05:53
hrtimer.h
16.13
KB
-rw-r--r--
2026-06-20 00:54
hrtimer_defs.h
660
B
-rw-r--r--
2021-11-01 05:53
htcpld.h
617
B
-rw-r--r--
2021-11-01 05:53
huge_mm.h
13.27
KB
-rw-r--r--
2021-11-01 05:53
hugetlb.h
29.7
KB
-rw-r--r--
2026-06-20 00:54
hugetlb_cgroup.h
7.07
KB
-rw-r--r--
2021-11-01 05:53
hugetlb_inline.h
374
B
-rw-r--r--
2021-11-01 05:53
hw_breakpoint.h
4.15
KB
-rw-r--r--
2021-11-01 05:53
hw_random.h
2.12
KB
-rw-r--r--
2026-06-20 00:54
hwmon-sysfs.h
2.77
KB
-rw-r--r--
2021-11-01 05:53
hwmon-vid.h
862
B
-rw-r--r--
2021-11-01 05:53
hwmon.h
14.78
KB
-rw-r--r--
2021-11-01 05:53
hwspinlock.h
15.79
KB
-rw-r--r--
2026-06-20 00:54
hyperv.h
49.04
KB
-rw-r--r--
2026-06-20 00:54
hypervisor.h
608
B
-rw-r--r--
2021-11-01 05:53
i2c-algo-bit.h
1.4
KB
-rw-r--r--
2021-11-01 05:53
i2c-algo-pca.h
2.89
KB
-rw-r--r--
2021-11-01 05:53
i2c-algo-pcf.h
1.21
KB
-rw-r--r--
2021-11-01 05:53
i2c-dev.h
371
B
-rw-r--r--
2021-11-01 05:53
i2c-mux.h
1.63
KB
-rw-r--r--
2021-11-01 05:53
i2c-smbus.h
1.7
KB
-rw-r--r--
2026-06-20 00:54
i2c.h
38.6
KB
-rw-r--r--
2026-06-20 00:54
i8042.h
1.99
KB
-rw-r--r--
2021-11-01 05:53
i8253.h
808
B
-rw-r--r--
2026-06-20 00:54
icmp.h
1
KB
-rw-r--r--
2021-11-01 05:53
icmpv6.h
2.7
KB
-rw-r--r--
2021-11-01 05:53
idle_inject.h
932
B
-rw-r--r--
2021-11-01 05:53
idr.h
9.7
KB
-rw-r--r--
2026-06-20 00:54
ieee80211.h
124.15
KB
-rw-r--r--
2026-06-20 00:54
ieee802154.h
11.12
KB
-rw-r--r--
2021-11-01 05:53
if_arp.h
1.81
KB
-rw-r--r--
2026-06-20 00:54
if_bridge.h
4.8
KB
-rw-r--r--
2026-06-20 00:54
if_eql.h
1.07
KB
-rw-r--r--
2021-11-01 05:53
if_ether.h
1.26
KB
-rw-r--r--
2021-11-01 05:53
if_fddi.h
3.24
KB
-rw-r--r--
2021-11-01 05:53
if_hsr.h
586
B
-rw-r--r--
2021-11-01 05:53
if_link.h
592
B
-rw-r--r--
2021-11-01 05:53
if_ltalk.h
188
B
-rw-r--r--
2021-11-01 05:53
if_macvlan.h
2.69
KB
-rw-r--r--
2021-11-01 05:53
if_phonet.h
319
B
-rw-r--r--
2021-11-01 05:53
if_pppol2tp.h
516
B
-rw-r--r--
2021-11-01 05:53
if_pppox.h
2.84
KB
-rw-r--r--
2021-11-01 05:53
if_rmnet.h
2.04
KB
-rw-r--r--
2021-11-01 05:53
if_tap.h
2.21
KB
-rw-r--r--
2021-11-01 05:53
if_team.h
7.9
KB
-rw-r--r--
2026-06-20 00:54
if_tun.h
1.55
KB
-rw-r--r--
2021-11-01 05:53
if_tunnel.h
409
B
-rw-r--r--
2021-11-01 05:53
if_vlan.h
21.18
KB
-rw-r--r--
2026-06-20 00:54
igmp.h
4.31
KB
-rw-r--r--
2026-06-20 00:54
ihex.h
2.15
KB
-rw-r--r--
2021-11-01 05:53
ima.h
5.79
KB
-rw-r--r--
2026-06-20 00:54
imx-media.h
605
B
-rw-r--r--
2021-11-01 05:53
in.h
2.29
KB
-rw-r--r--
2021-11-01 05:53
in6.h
1.63
KB
-rw-r--r--
2021-11-01 05:53
indirect_call_wrapper.h
2.23
KB
-rw-r--r--
2021-11-01 05:53
inet.h
2.64
KB
-rw-r--r--
2021-11-01 05:53
inet_diag.h
2.74
KB
-rw-r--r--
2021-11-01 05:53
inetdevice.h
8.87
KB
-rw-r--r--
2021-11-01 05:53
init.h
11.39
KB
-rw-r--r--
2021-11-01 05:53
init_ohci1394_dma.h
196
B
-rw-r--r--
2021-11-01 05:53
init_syscalls.h
1.01
KB
-rw-r--r--
2021-11-01 05:53
init_task.h
1.3
KB
-rw-r--r--
2021-11-01 05:53
initrd.h
1.02
KB
-rw-r--r--
2021-11-01 05:53
inotify.h
713
B
-rw-r--r--
2021-11-01 05:53
input.h
19.88
KB
-rw-r--r--
2021-11-01 05:53
instrumentation.h
1.93
KB
-rw-r--r--
2026-06-20 00:54
instrumented.h
3.6
KB
-rw-r--r--
2021-11-01 05:53
integrity.h
1.15
KB
-rw-r--r--
2021-11-01 05:53
intel-iommu.h
27.28
KB
-rw-r--r--
2026-06-20 00:54
intel-ish-client-if.h
3.97
KB
-rw-r--r--
2021-11-01 05:53
intel-svm.h
1.54
KB
-rw-r--r--
2021-11-01 05:53
intel_rapl.h
4.14
KB
-rw-r--r--
2021-11-01 05:53
intel_th.h
2.44
KB
-rw-r--r--
2021-11-01 05:53
interconnect-provider.h
5.51
KB
-rw-r--r--
2021-11-01 05:53
interconnect.h
2.88
KB
-rw-r--r--
2021-11-01 05:53
interrupt.h
25.23
KB
-rw-r--r--
2026-06-20 00:54
interval_tree.h
831
B
-rw-r--r--
2021-11-01 05:53
interval_tree_generic.h
6.7
KB
-rw-r--r--
2021-11-01 05:53
io-64-nonatomic-hi-lo.h
2.41
KB
-rw-r--r--
2021-11-01 05:53
io-64-nonatomic-lo-hi.h
2.41
KB
-rw-r--r--
2021-11-01 05:53
io-mapping.h
4.65
KB
-rw-r--r--
2021-11-01 05:53
io-pgtable.h
8.65
KB
-rw-r--r--
2026-06-20 00:54
io.h
5.02
KB
-rw-r--r--
2021-11-01 05:53
io_uring.h
881
B
-rw-r--r--
2026-06-20 00:54
ioam6.h
226
B
-rw-r--r--
2021-11-01 05:53
ioam6_genl.h
266
B
-rw-r--r--
2021-11-01 05:53
ioam6_iptunnel.h
285
B
-rw-r--r--
2021-11-01 05:53
ioasid.h
2.07
KB
-rw-r--r--
2021-11-01 05:53
iocontext.h
4.59
KB
-rw-r--r--
2021-11-01 05:53
iomap.h
11.91
KB
-rw-r--r--
2026-06-20 00:54
iommu-helper.h
1.12
KB
-rw-r--r--
2021-11-01 05:53
iommu.h
34.06
KB
-rw-r--r--
2026-06-20 00:54
iopoll.h
7.61
KB
-rw-r--r--
2026-06-20 00:54
ioport.h
12.28
KB
-rw-r--r--
2026-06-20 00:54
ioprio.h
1.73
KB
-rw-r--r--
2026-06-20 00:54
iova.h
6.19
KB
-rw-r--r--
2026-06-20 00:54
ip.h
1
KB
-rw-r--r--
2021-11-01 05:53
ipack.h
8.69
KB
-rw-r--r--
2021-11-01 05:53
ipc.h
613
B
-rw-r--r--
2021-11-01 05:53
ipc_namespace.h
5.63
KB
-rw-r--r--
2026-06-20 00:54
ipmi.h
10.88
KB
-rw-r--r--
2021-11-01 05:53
ipmi_smi.h
7.98
KB
-rw-r--r--
2021-11-01 05:53
ipv6.h
8.7
KB
-rw-r--r--
2026-06-20 00:54
ipv6_route.h
372
B
-rw-r--r--
2021-11-01 05:53
irq.h
41.76
KB
-rw-r--r--
2026-06-20 00:54
irq_poll.h
575
B
-rw-r--r--
2021-11-01 05:53
irq_sim.h
789
B
-rw-r--r--
2021-11-01 05:53
irq_work.h
1.82
KB
-rw-r--r--
2026-06-20 00:54
irqbypass.h
3.45
KB
-rw-r--r--
2021-11-01 05:53
irqchip.h
2.33
KB
-rw-r--r--
2021-11-01 05:53
irqdesc.h
7.75
KB
-rw-r--r--
2021-11-01 05:53
irqdomain.h
20.24
KB
-rw-r--r--
2026-06-20 00:54
irqflags.h
7.91
KB
-rw-r--r--
2026-06-20 00:54
irqhandler.h
300
B
-rw-r--r--
2021-11-01 05:53
irqnr.h
856
B
-rw-r--r--
2021-11-01 05:53
irqreturn.h
503
B
-rw-r--r--
2021-11-01 05:53
isa.h
2.12
KB
-rw-r--r--
2021-11-01 05:53
isapnp.h
2.88
KB
-rw-r--r--
2021-11-01 05:53
iscsi_boot_sysfs.h
3.71
KB
-rw-r--r--
2021-11-01 05:53
iscsi_ibft.h
847
B
-rw-r--r--
2021-11-01 05:53
iversion.h
12.37
KB
-rw-r--r--
2021-11-01 05:53
jbd2.h
51.2
KB
-rw-r--r--
2026-06-20 00:54
jhash.h
4.56
KB
-rw-r--r--
2021-11-01 05:53
jiffies.h
15.07
KB
-rw-r--r--
2026-06-20 00:54
journal-head.h
2.91
KB
-rw-r--r--
2021-11-01 05:53
joystick.h
437
B
-rw-r--r--
2021-11-01 05:53
jump_label.h
16.05
KB
-rw-r--r--
2026-06-20 00:54
jump_label_ratelimit.h
2.77
KB
-rw-r--r--
2021-11-01 05:53
jz4740-adc.h
1023
B
-rw-r--r--
2021-11-01 05:53
jz4780-nemc.h
976
B
-rw-r--r--
2021-11-01 05:53
kallsyms.h
4.65
KB
-rw-r--r--
2026-06-20 00:54
kasan-checks.h
1.46
KB
-rw-r--r--
2021-11-01 05:53
kasan-tags.h
487
B
-rw-r--r--
2021-11-01 05:53
kasan.h
13.4
KB
-rw-r--r--
2026-06-20 00:54
kbd_diacr.h
198
B
-rw-r--r--
2021-11-01 05:53
kbd_kern.h
3.6
KB
-rw-r--r--
2021-11-01 05:53
kbuild.h
380
B
-rw-r--r--
2021-11-01 05:53
kconfig.h
2.63
KB
-rw-r--r--
2021-11-01 05:53
kcore.h
891
B
-rw-r--r--
2021-11-01 05:53
kcov.h
2.48
KB
-rw-r--r--
2026-06-20 00:54
kcsan-checks.h
15.86
KB
-rw-r--r--
2021-11-01 05:53
kcsan.h
1.88
KB
-rw-r--r--
2021-11-01 05:53
kdb.h
7.33
KB
-rw-r--r--
2021-11-01 05:53
kdebug.h
487
B
-rw-r--r--
2021-11-01 05:53
kdev_t.h
1.8
KB
-rw-r--r--
2021-11-01 05:53
kern_levels.h
1.57
KB
-rw-r--r--
2021-11-01 05:53
kernel-page-flags.h
528
B
-rw-r--r--
2021-11-01 05:53
kernel.h
17.01
KB
-rw-r--r--
2026-06-20 00:54
kernel_read_file.h
1.64
KB
-rw-r--r--
2021-11-01 05:53
kernel_stat.h
2.97
KB
-rw-r--r--
2026-06-20 00:54
kernelcapi.h
1.45
KB
-rw-r--r--
2021-11-01 05:53
kernfs.h
18.25
KB
-rw-r--r--
2026-06-20 00:54
kexec.h
12.44
KB
-rw-r--r--
2026-06-20 00:54
key-type.h
6.63
KB
-rw-r--r--
2026-06-20 00:54
key.h
15.75
KB
-rw-r--r--
2021-11-01 05:53
keyboard.h
665
B
-rw-r--r--
2021-11-01 05:53
keyctl.h
1.25
KB
-rw-r--r--
2021-11-01 05:53
keyslot-manager.h
3.78
KB
-rw-r--r--
2021-11-01 05:53
kfence.h
8.56
KB
-rw-r--r--
2026-06-20 00:54
kfifo.h
26.18
KB
-rw-r--r--
2026-06-20 00:54
kgdb.h
12.05
KB
-rw-r--r--
2021-11-01 05:53
khugepaged.h
2.74
KB
-rw-r--r--
2021-11-01 05:53
klist.h
1.88
KB
-rw-r--r--
2021-11-01 05:53
kmemleak.h
3.27
KB
-rw-r--r--
2021-11-01 05:53
kmod.h
1.02
KB
-rw-r--r--
2021-11-01 05:53
kmsg_dump.h
2.71
KB
-rw-r--r--
2021-11-01 05:53
kobj_map.h
545
B
-rw-r--r--
2021-11-01 05:53
kobject.h
7.7
KB
-rw-r--r--
2026-06-20 00:54
kobject_ns.h
1.9
KB
-rw-r--r--
2021-11-01 05:53
kprobes.h
14.72
KB
-rw-r--r--
2026-06-20 00:54
kref.h
3.08
KB
-rw-r--r--
2021-11-01 05:53
ks0108.h
970
B
-rw-r--r--
2021-11-01 05:53
ks8842.h
632
B
-rw-r--r--
2021-11-01 05:53
ks8851_mll.h
472
B
-rw-r--r--
2021-11-01 05:53
ksm.h
2.47
KB
-rw-r--r--
2021-11-01 05:53
kstrtox.h
6.59
KB
-rw-r--r--
2021-11-01 05:53
kthread.h
7.69
KB
-rw-r--r--
2026-06-20 00:54
ktime.h
5.38
KB
-rw-r--r--
2021-11-01 05:53
kvm_dirty_ring.h
2.73
KB
-rw-r--r--
2021-11-01 05:53
kvm_host.h
58.61
KB
-rw-r--r--
2026-06-20 00:54
kvm_irqfd.h
2
KB
-rw-r--r--
2021-11-01 05:53
kvm_para.h
402
B
-rw-r--r--
2021-11-01 05:53
kvm_types.h
2.17
KB
-rw-r--r--
2021-11-01 05:53
l2tp.h
261
B
-rw-r--r--
2021-11-01 05:53
lantiq.h
365
B
-rw-r--r--
2021-11-01 05:53
lapb.h
1.71
KB
-rw-r--r--
2021-11-01 05:53
latencytop.h
1.16
KB
-rw-r--r--
2021-11-01 05:53
lcd.h
3.78
KB
-rw-r--r--
2021-11-01 05:53
lcm.h
275
B
-rw-r--r--
2021-11-01 05:53
led-class-flash.h
6.74
KB
-rw-r--r--
2021-11-01 05:53
led-class-multicolor.h
3.26
KB
-rw-r--r--
2021-11-01 05:53
led-lm3530.h
3.7
KB
-rw-r--r--
2021-11-01 05:53
leds-bd2802.h
476
B
-rw-r--r--
2021-11-01 05:53
leds-lp3944.h
950
B
-rw-r--r--
2021-11-01 05:53
leds-lp3952.h
2.35
KB
-rw-r--r--
2021-11-01 05:53
leds-pca9532.h
866
B
-rw-r--r--
2021-11-01 05:53
leds-regulator.h
1.14
KB
-rw-r--r--
2021-11-01 05:53
leds-ti-lmu-common.h
1.12
KB
-rw-r--r--
2021-11-01 05:53
leds.h
18.06
KB
-rw-r--r--
2026-06-20 00:54
libata.h
67.43
KB
-rw-r--r--
2026-06-20 00:54
libfdt.h
202
B
-rw-r--r--
2021-11-01 05:53
libfdt_env.h
491
B
-rw-r--r--
2021-11-01 05:53
libgcc.h
463
B
-rw-r--r--
2021-11-01 05:53
libnvdimm.h
10.38
KB
-rw-r--r--
2021-11-01 05:53
libps2.h
1.89
KB
-rw-r--r--
2021-11-01 05:53
license.h
418
B
-rw-r--r--
2021-11-01 05:53
limits.h
715
B
-rw-r--r--
2021-11-01 05:53
linear_range.h
1.72
KB
-rw-r--r--
2021-11-01 05:53
linkage.h
9.6
KB
-rw-r--r--
2026-06-20 00:54
linkmode.h
2.5
KB
-rw-r--r--
2021-11-01 05:53
linux_logo.h
1.91
KB
-rw-r--r--
2021-11-01 05:53
lis3lv02d.h
5
KB
-rw-r--r--
2021-11-01 05:53
list.h
30.47
KB
-rw-r--r--
2026-06-20 00:54
list_bl.h
4.79
KB
-rw-r--r--
2021-11-01 05:53
list_lru.h
7.29
KB
-rw-r--r--
2021-11-01 05:53
list_nulls.h
4.22
KB
-rw-r--r--
2021-11-01 05:53
list_sort.h
374
B
-rw-r--r--
2021-11-01 05:53
litex.h
2.06
KB
-rw-r--r--
2021-11-01 05:53
livepatch.h
8.22
KB
-rw-r--r--
2021-11-01 05:53
llc.h
749
B
-rw-r--r--
2021-11-01 05:53
llist.h
9.06
KB
-rw-r--r--
2021-11-01 05:53
local_lock.h
1.33
KB
-rw-r--r--
2021-11-01 05:53
local_lock_internal.h
3.42
KB
-rw-r--r--
2021-11-01 05:53
lockdep.h
21.49
KB
-rw-r--r--
2026-06-20 00:54
lockdep_types.h
5.18
KB
-rw-r--r--
2021-11-01 05:53
lockref.h
1.5
KB
-rw-r--r--
2021-11-01 05:53
log2.h
6.22
KB
-rw-r--r--
2021-11-01 05:53
logic_iomem.h
2.07
KB
-rw-r--r--
2021-11-01 05:53
logic_pio.h
3.23
KB
-rw-r--r--
2021-11-01 05:53
lp.h
2.76
KB
-rw-r--r--
2021-11-01 05:53
lru_cache.h
11.83
KB
-rw-r--r--
2021-11-01 05:53
lsm_audit.h
2.81
KB
-rw-r--r--
2021-11-01 05:53
lsm_hook_defs.h
21.01
KB
-rw-r--r--
2026-06-20 00:54
lsm_hooks.h
74.39
KB
-rw-r--r--
2026-06-20 00:54
lz4.h
26.44
KB
-rw-r--r--
2021-11-01 05:53
lzo.h
1.93
KB
-rw-r--r--
2026-06-20 00:54
mISDNdsp.h
1.19
KB
-rw-r--r--
2021-11-01 05:53
mISDNhw.h
5.39
KB
-rw-r--r--
2021-11-01 05:53
mISDNif.h
14.89
KB
-rw-r--r--
2021-11-01 05:53
mailbox_client.h
1.71
KB
-rw-r--r--
2021-11-01 05:53
mailbox_controller.h
5.7
KB
-rw-r--r--
2026-06-20 00:54
maple.h
2.71
KB
-rw-r--r--
2021-11-01 05:53
marvell_phy.h
1.69
KB
-rw-r--r--
2021-11-01 05:53
math.h
5.06
KB
-rw-r--r--
2021-11-01 05:53
math64.h
7.48
KB
-rw-r--r--
2021-11-01 05:53
mbcache.h
2.16
KB
-rw-r--r--
2026-06-20 00:54
mbus.h
3.09
KB
-rw-r--r--
2021-11-01 05:53
mc146818rtc.h
4.69
KB
-rw-r--r--
2026-06-20 00:54
mc6821.h
1.18
KB
-rw-r--r--
2021-11-01 05:53
mcb.h
3.71
KB
-rw-r--r--
2026-06-20 00:54
mdev.h
5.94
KB
-rw-r--r--
2021-11-01 05:53
mdio-bitbang.h
1.31
KB
-rw-r--r--
2021-11-01 05:53
mdio-gpio.h
177
B
-rw-r--r--
2021-11-01 05:53
mdio-mux.h
1021
B
-rw-r--r--
2021-11-01 05:53
mdio.h
12.69
KB
-rw-r--r--
2026-06-20 00:54
mei_cl_bus.h
3.75
KB
-rw-r--r--
2021-11-01 05:53
mem_encrypt.h
885
B
-rw-r--r--
2021-11-01 05:53
memblock.h
19.88
KB
-rw-r--r--
2026-06-20 00:54
memcontrol.h
43.58
KB
-rw-r--r--
2026-06-20 00:54
memfd.h
719
B
-rw-r--r--
2026-06-20 00:54
memory.h
5.99
KB
-rw-r--r--
2021-11-01 05:53
memory_hotplug.h
11.42
KB
-rw-r--r--
2021-11-01 05:53
mempolicy.h
7.37
KB
-rw-r--r--
2021-11-01 05:53
mempool.h
3.35
KB
-rw-r--r--
2021-11-01 05:53
memregion.h
417
B
-rw-r--r--
2026-06-20 00:54
memremap.h
5.61
KB
-rw-r--r--
2026-06-20 00:54
memstick.h
9.6
KB
-rw-r--r--
2021-11-01 05:53
mhi.h
26.04
KB
-rw-r--r--
2026-06-20 00:54
micrel_phy.h
1.84
KB
-rw-r--r--
2026-06-20 00:54
microchipphy.h
2.65
KB
-rw-r--r--
2021-11-01 05:53
migrate.h
5.41
KB
-rw-r--r--
2021-11-01 05:53
migrate_mode.h
758
B
-rw-r--r--
2021-11-01 05:53
mii.h
16.33
KB
-rw-r--r--
2021-11-01 05:53
mii_timestamper.h
3.57
KB
-rw-r--r--
2021-11-01 05:53
min_heap.h
3.3
KB
-rw-r--r--
2021-11-01 05:53
minmax.h
10
KB
-rw-r--r--
2026-06-20 00:54
misc_cgroup.h
2.95
KB
-rw-r--r--
2021-11-01 05:53
miscdevice.h
3.2
KB
-rw-r--r--
2021-11-01 05:53
mm.h
105.69
KB
-rw-r--r--
2026-06-20 00:54
mm_inline.h
2.92
KB
-rw-r--r--
2021-11-01 05:53
mm_types.h
25.13
KB
-rw-r--r--
2026-06-20 00:54
mm_types_task.h
2.5
KB
-rw-r--r--
2021-11-01 05:53
mman.h
3.96
KB
-rw-r--r--
2026-06-20 00:54
mmap_lock.h
4.25
KB
-rw-r--r--
2021-11-01 05:53
mmdebug.h
2.25
KB
-rw-r--r--
2021-11-01 05:53
mmiotrace.h
3.05
KB
-rw-r--r--
2021-11-01 05:53
mmu_context.h
855
B
-rw-r--r--
2021-11-01 05:53
mmu_notifier.h
24.64
KB
-rw-r--r--
2021-11-01 05:53
mmzone.h
47.39
KB
-rw-r--r--
2026-06-20 00:54
mnt_idmapping.h
7.65
KB
-rw-r--r--
2026-06-20 00:54
mnt_namespace.h
697
B
-rw-r--r--
2026-06-20 00:54
mod_devicetable.h
23.5
KB
-rw-r--r--
2026-06-20 00:54
module.h
23.96
KB
-rw-r--r--
2026-06-20 00:54
module_signature.h
1.22
KB
-rw-r--r--
2021-11-01 05:53
moduleloader.h
3.42
KB
-rw-r--r--
2026-06-20 00:54
moduleparam.h
22.35
KB
-rw-r--r--
2026-06-20 00:54
most.h
12.2
KB
-rw-r--r--
2021-11-01 05:53
mount.h
3.93
KB
-rw-r--r--
2021-11-01 05:53
moxtet.h
2.36
KB
-rw-r--r--
2021-11-01 05:53
mpage.h
737
B
-rw-r--r--
2021-11-01 05:53
mpi.h
8.41
KB
-rw-r--r--
2021-11-01 05:53
mpls.h
394
B
-rw-r--r--
2021-11-01 05:53
mpls_iptunnel.h
178
B
-rw-r--r--
2021-11-01 05:53
mroute.h
1.96
KB
-rw-r--r--
2026-06-20 00:54
mroute6.h
2.41
KB
-rw-r--r--
2021-11-01 05:53
mroute_base.h
12.17
KB
-rw-r--r--
2021-11-01 05:53
msdos_fs.h
273
B
-rw-r--r--
2021-11-01 05:53
msdos_partition.h
1.62
KB
-rw-r--r--
2021-11-01 05:53
msg.h
395
B
-rw-r--r--
2021-11-01 05:53
msi.h
15.36
KB
-rw-r--r--
2026-06-20 00:54
mtio.h
1.29
KB
-rw-r--r--
2021-11-01 05:53
mutex.h
7.31
KB
-rw-r--r--
2026-06-20 00:54
mv643xx.h
51.05
KB
-rw-r--r--
2021-11-01 05:53
mv643xx_eth.h
1.95
KB
-rw-r--r--
2021-11-01 05:53
mv643xx_i2c.h
335
B
-rw-r--r--
2021-11-01 05:53
mvebu-pmsu.h
520
B
-rw-r--r--
2021-11-01 05:53
mxm-wmi.h
399
B
-rw-r--r--
2021-11-01 05:53
namei.h
4.57
KB
-rw-r--r--
2026-06-20 00:54
nd.h
5.55
KB
-rw-r--r--
2021-11-01 05:53
ndctl.h
674
B
-rw-r--r--
2021-11-01 05:53
net.h
11.47
KB
-rw-r--r--
2026-06-20 00:54
netdev_features.h
10.75
KB
-rw-r--r--
2026-06-20 00:54
netdevice.h
168.73
KB
-rw-r--r--
2026-06-20 00:54
netfilter.h
13.56
KB
-rw-r--r--
2026-06-20 00:54
netfilter_bridge.h
2.08
KB
-rw-r--r--
2021-11-01 05:53
netfilter_defs.h
242
B
-rw-r--r--
2026-06-20 00:54
netfilter_ingress.h
1.44
KB
-rw-r--r--
2021-11-01 05:53
netfilter_ipv4.h
1.05
KB
-rw-r--r--
2021-11-01 05:53
netfilter_ipv6.h
5.85
KB
-rw-r--r--
2021-11-01 05:53
netfs.h
7.93
KB
-rw-r--r--
2021-11-01 05:53
netlink.h
7.88
KB
-rw-r--r--
2021-11-01 05:53
netpoll.h
2.42
KB
-rw-r--r--
2026-06-20 00:54
nfs.h
1.47
KB
-rw-r--r--
2026-06-20 00:54
nfs3.h
260
B
-rw-r--r--
2021-11-01 05:53
nfs4.h
19.37
KB
-rw-r--r--
2026-06-20 00:54
nfs_common.h
402
B
-rw-r--r--
2026-06-20 00:54
nfs_fs.h
20.39
KB
-rw-r--r--
2026-06-20 00:54
nfs_fs_i.h
308
B
-rw-r--r--
2021-11-01 05:53
nfs_fs_sb.h
10.25
KB
-rw-r--r--
2026-06-20 00:54
nfs_iostat.h
4.18
KB
-rw-r--r--
2021-11-01 05:53
nfs_page.h
6.8
KB
-rw-r--r--
2026-06-20 00:54
nfs_ssc.h
2.01
KB
-rw-r--r--
2026-06-20 00:54
nfs_xdr.h
42.26
KB
-rw-r--r--
2026-06-20 00:54
nfsacl.h
1.4
KB
-rw-r--r--
2021-11-01 05:53
nitro_enclaves.h
267
B
-rw-r--r--
2021-11-01 05:53
nl802154.h
3.85
KB
-rw-r--r--
2021-11-01 05:53
nls.h
3.09
KB
-rw-r--r--
2026-06-20 00:54
nmi.h
6.76
KB
-rw-r--r--
2026-06-20 00:54
node.h
4.67
KB
-rw-r--r--
2021-11-01 05:53
nodemask.h
17.17
KB
-rw-r--r--
2026-06-20 00:54
nospec.h
2.24
KB
-rw-r--r--
2026-06-20 00:54
notifier.h
7.84
KB
-rw-r--r--
2021-11-01 05:53
ns_common.h
283
B
-rw-r--r--
2021-11-01 05:53
nsc_gpio.h
1.42
KB
-rw-r--r--
2021-11-01 05:53
nsproxy.h
3.09
KB
-rw-r--r--
2021-11-01 05:53
ntb.h
52.43
KB
-rw-r--r--
2021-11-01 05:53
ntb_transport.h
3.8
KB
-rw-r--r--
2021-11-01 05:53
nubus.h
5.54
KB
-rw-r--r--
2021-11-01 05:53
numa.h
1.25
KB
-rw-r--r--
2021-11-01 05:53
nvme-fc-driver.h
45.86
KB
-rw-r--r--
2021-11-01 05:53
nvme-fc.h
9.72
KB
-rw-r--r--
2021-11-01 05:53
nvme-rdma.h
2.04
KB
-rw-r--r--
2021-11-01 05:53
nvme-tcp.h
4.42
KB
-rw-r--r--
2026-06-20 00:54
nvme.h
38.32
KB
-rw-r--r--
2026-06-20 00:54
nvmem-consumer.h
6.78
KB
-rw-r--r--
2021-11-01 05:53
nvmem-provider.h
4.66
KB
-rw-r--r--
2026-06-20 00:54
nvram.h
3.47
KB
-rw-r--r--
2021-11-01 05:53
objagg.h
1.94
KB
-rw-r--r--
2026-06-20 00:54
objtool.h
5.24
KB
-rw-r--r--
2026-06-20 00:54
of.h
43.4
KB
-rw-r--r--
2026-06-20 00:54
of_address.h
4.17
KB
-rw-r--r--
2021-11-01 05:53
of_clk.h
819
B
-rw-r--r--
2021-11-01 05:53
of_device.h
2.96
KB
-rw-r--r--
2026-06-20 00:54
of_dma.h
2.3
KB
-rw-r--r--
2021-11-01 05:53
of_fdt.h
3.65
KB
-rw-r--r--
2026-06-20 00:54
of_gpio.h
4.07
KB
-rw-r--r--
2021-11-01 05:53
of_graph.h
3.55
KB
-rw-r--r--
2021-11-01 05:53
of_iommu.h
505
B
-rw-r--r--
2021-11-01 05:53
of_irq.h
3.75
KB
-rw-r--r--
2021-11-01 05:53
of_mdio.h
3.91
KB
-rw-r--r--
2026-06-20 00:54
of_net.h
1009
B
-rw-r--r--
2026-06-20 00:54
of_pci.h
915
B
-rw-r--r--
2021-11-01 05:53
of_pdt.h
1.14
KB
-rw-r--r--
2021-11-01 05:53
of_platform.h
3.88
KB
-rw-r--r--
2021-11-01 05:53
of_reserved_mem.h
2.24
KB
-rw-r--r--
2021-11-01 05:53
oid_registry.h
5.63
KB
-rw-r--r--
2021-11-01 05:53
olpc-ec.h
1.95
KB
-rw-r--r--
2021-11-01 05:53
omap-dma.h
9.79
KB
-rw-r--r--
2021-11-01 05:53
omap-gpmc.h
2.64
KB
-rw-r--r--
2021-11-01 05:53
omap-iommu.h
880
B
-rw-r--r--
2021-11-01 05:53
omap-mailbox.h
689
B
-rw-r--r--
2021-11-01 05:53
omapfb.h
576
B
-rw-r--r--
2021-11-01 05:53
once.h
2.8
KB
-rw-r--r--
2026-06-20 00:54
once_lite.h
925
B
-rw-r--r--
2026-06-20 00:54
oom.h
3.26
KB
-rw-r--r--
2021-11-01 05:53
openvswitch.h
403
B
-rw-r--r--
2021-11-01 05:53
osq_lock.h
1.04
KB
-rw-r--r--
2021-11-01 05:53
overflow.h
7.82
KB
-rw-r--r--
2026-06-20 00:54
packing.h
1.76
KB
-rw-r--r--
2021-11-01 05:53
padata.h
5.96
KB
-rw-r--r--
2026-06-20 00:54
page-flags-layout.h
3.21
KB
-rw-r--r--
2021-11-01 05:53
page-flags.h
28
KB
-rw-r--r--
2021-11-01 05:53
page-isolation.h
1.64
KB
-rw-r--r--
2021-11-01 05:53
page_counter.h
2.3
KB
-rw-r--r--
2021-11-01 05:53
page_ext.h
1.83
KB
-rw-r--r--
2021-11-01 05:53
page_idle.h
2.61
KB
-rw-r--r--
2021-11-01 05:53
page_owner.h
2.31
KB
-rw-r--r--
2021-11-01 05:53
page_ref.h
4.95
KB
-rw-r--r--
2021-11-01 05:53
page_reporting.h
895
B
-rw-r--r--
2021-11-01 05:53
pageblock-flags.h
2.31
KB
-rw-r--r--
2021-11-01 05:53
pagemap.h
30.5
KB
-rw-r--r--
2026-06-20 00:54
pagevec.h
2.04
KB
-rw-r--r--
2021-11-01 05:53
pagewalk.h
4.22
KB
-rw-r--r--
2026-06-20 00:54
panic.h
2.59
KB
-rw-r--r--
2026-06-20 00:54
panic_notifier.h
296
B
-rw-r--r--
2021-11-01 05:53
parman.h
2.87
KB
-rw-r--r--
2021-11-01 05:53
parport.h
19.09
KB
-rw-r--r--
2021-11-01 05:53
parport_pc.h
6.56
KB
-rw-r--r--
2021-11-01 05:53
parser.h
1.17
KB
-rw-r--r--
2021-11-01 05:53
part_stat.h
2.38
KB
-rw-r--r--
2026-06-20 00:54
pata_arasan_cf_data.h
1.22
KB
-rw-r--r--
2021-11-01 05:53
patchkey.h
757
B
-rw-r--r--
2021-11-01 05:53
path.h
572
B
-rw-r--r--
2021-11-01 05:53
pch_dma.h
408
B
-rw-r--r--
2021-11-01 05:53
pci-acpi.h
3.85
KB
-rw-r--r--
2021-11-01 05:53
pci-ats.h
1.76
KB
-rw-r--r--
2021-11-01 05:53
pci-dma-compat.h
3.66
KB
-rw-r--r--
2021-11-01 05:53
pci-ecam.h
3.2
KB
-rw-r--r--
2021-11-01 05:53
pci-ep-cfs.h
956
B
-rw-r--r--
2021-11-01 05:53
pci-epc.h
9.47
KB
-rw-r--r--
2021-11-01 05:53
pci-epf.h
7.06
KB
-rw-r--r--
2021-11-01 05:53
pci-p2pdma.h
3.95
KB
-rw-r--r--
2021-11-01 05:53
pci.h
90.67
KB
-rw-r--r--
2026-06-20 00:54
pci_hotplug.h
4.35
KB
-rw-r--r--
2021-11-01 05:53
pci_ids.h
121.23
KB
-rw-r--r--
2026-06-20 00:54
pcs-lynx.h
425
B
-rw-r--r--
2021-11-01 05:53
pda_power.h
1005
B
-rw-r--r--
2021-11-01 05:53
pe.h
16.17
KB
-rw-r--r--
2021-11-01 05:53
percpu-defs.h
18.12
KB
-rw-r--r--
2021-11-01 05:53
percpu-refcount.h
10.84
KB
-rw-r--r--
2021-11-01 05:53
percpu-rwsem.h
4.16
KB
-rw-r--r--
2021-11-01 05:53
percpu.h
4.74
KB
-rw-r--r--
2026-06-20 00:54
percpu_counter.h
5.48
KB
-rw-r--r--
2026-06-20 00:54
perf_event.h
47.23
KB
-rw-r--r--
2026-06-20 00:54
perf_regs.h
1.05
KB
-rw-r--r--
2021-11-01 05:53
personality.h
393
B
-rw-r--r--
2021-11-01 05:53
pfn.h
666
B
-rw-r--r--
2021-11-01 05:53
pfn_t.h
3.21
KB
-rw-r--r--
2021-11-01 05:53
pgalloc.h
948
B
-rw-r--r--
2026-06-20 00:54
pgtable.h
44.43
KB
-rw-r--r--
2026-06-20 00:54
phonet.h
537
B
-rw-r--r--
2021-11-01 05:53
phy.h
58.08
KB
-rw-r--r--
2026-06-20 00:54
phy_fixed.h
1.77
KB
-rw-r--r--
2021-11-01 05:53
phy_led_triggers.h
1.01
KB
-rw-r--r--
2021-11-01 05:53
phylink.h
19.47
KB
-rw-r--r--
2026-06-20 00:54
pid.h
6.37
KB
-rw-r--r--
2026-06-20 00:54
pid_namespace.h
2.08
KB
-rw-r--r--
2021-11-01 05:53
pim.h
2.67
KB
-rw-r--r--
2021-11-01 05:53
pipe_fs_i.h
9.21
KB
-rw-r--r--
2026-06-20 00:54
pkeys.h
990
B
-rw-r--r--
2021-11-01 05:53
pktcdvd.h
5.87
KB
-rw-r--r--
2021-11-01 05:53
pl320-ipc.h
209
B
-rw-r--r--
2021-11-01 05:53
platform_device.h
12.77
KB
-rw-r--r--
2026-06-20 00:54
platform_profile.h
1.12
KB
-rw-r--r--
2021-11-01 05:53
pldmfw.h
4.76
KB
-rw-r--r--
2021-11-01 05:53
plist.h
8.66
KB
-rw-r--r--
2021-11-01 05:53
pm-trace.h
940
B
-rw-r--r--
2021-11-01 05:53
pm.h
34.87
KB
-rw-r--r--
2026-06-20 00:54
pm_clock.h
2.58
KB
-rw-r--r--
2021-11-01 05:53
pm_domain.h
13.18
KB
-rw-r--r--
2021-11-01 05:53
pm_opp.h
15.1
KB
-rw-r--r--
2021-11-01 05:53
pm_qos.h
10.41
KB
-rw-r--r--
2021-11-01 05:53
pm_runtime.h
19.69
KB
-rw-r--r--
2026-06-20 00:54
pm_wakeirq.h
1.48
KB
-rw-r--r--
2026-06-20 00:54
pm_wakeup.h
6.28
KB
-rw-r--r--
2021-11-01 05:53
pmbus.h
2.48
KB
-rw-r--r--
2021-11-01 05:53
pmu.h
2.44
KB
-rw-r--r--
2021-11-01 05:53
pnfs_osd_xdr.h
9.27
KB
-rw-r--r--
2021-11-01 05:53
pnp.h
14.9
KB
-rw-r--r--
2021-11-01 05:53
poison.h
2.48
KB
-rw-r--r--
2021-11-01 05:53
poll.h
4.27
KB
-rw-r--r--
2026-06-20 00:54
posix-clock.h
4.7
KB
-rw-r--r--
2026-06-20 00:54
posix-timers.h
7.21
KB
-rw-r--r--
2026-06-20 00:54
posix_acl.h
3.27
KB
-rw-r--r--
2021-11-01 05:53
posix_acl_xattr.h
1.86
KB
-rw-r--r--
2026-06-20 00:54
power_supply.h
17.8
KB
-rw-r--r--
2026-06-20 00:54
powercap.h
11.98
KB
-rw-r--r--
2021-11-01 05:53
ppp-comp.h
2.95
KB
-rw-r--r--
2021-11-01 05:53
ppp_channel.h
2.99
KB
-rw-r--r--
2021-11-01 05:53
ppp_defs.h
305
B
-rw-r--r--
2021-11-01 05:53
pps_kernel.h
2.94
KB
-rw-r--r--
2026-06-20 00:54
pr.h
566
B
-rw-r--r--
2021-11-01 05:53
prandom.h
3.38
KB
-rw-r--r--
2026-06-20 00:54
preempt.h
14.7
KB
-rw-r--r--
2026-06-20 00:54
prefetch.h
1.7
KB
-rw-r--r--
2021-11-01 05:53
prime_numbers.h
1.35
KB
-rw-r--r--
2021-11-01 05:53
printk.h
22.19
KB
-rw-r--r--
2026-06-20 00:54
prmt.h
143
B
-rw-r--r--
2021-11-01 05:53
proc_fs.h
8.6
KB
-rw-r--r--
2026-06-20 00:54
proc_ns.h
2.57
KB
-rw-r--r--
2021-11-01 05:53
processor.h
1.84
KB
-rw-r--r--
2021-11-01 05:53
profile.h
2.62
KB
-rw-r--r--
2026-06-20 00:54
projid.h
2.22
KB
-rw-r--r--
2021-11-01 05:53
property.h
17.65
KB
-rw-r--r--
2026-06-20 00:54
pruss_driver.h
1.27
KB
-rw-r--r--
2021-11-01 05:53
psci.h
1.52
KB
-rw-r--r--
2021-11-01 05:53
pseudo_fs.h
355
B
-rw-r--r--
2021-11-01 05:53
psi.h
1.56
KB
-rw-r--r--
2026-06-20 00:54
psi_types.h
4.31
KB
-rw-r--r--
2026-06-20 00:54
psp-sev.h
17.76
KB
-rw-r--r--
2021-11-01 05:53
psp-tee.h
2.65
KB
-rw-r--r--
2021-11-01 05:53
pstore.h
7.63
KB
-rw-r--r--
2026-06-20 00:54
pstore_blk.h
1.53
KB
-rw-r--r--
2021-11-01 05:53
pstore_ram.h
3.82
KB
-rw-r--r--
2021-11-01 05:53
pstore_zone.h
2.28
KB
-rw-r--r--
2021-11-01 05:53
ptdump.h
567
B
-rw-r--r--
2021-11-01 05:53
pti.h
240
B
-rw-r--r--
2021-11-01 05:53
ptp_classify.h
4.85
KB
-rw-r--r--
2026-06-20 00:54
ptp_clock_kernel.h
12.2
KB
-rw-r--r--
2026-06-20 00:54
ptp_kvm.h
460
B
-rw-r--r--
2026-06-20 00:54
ptp_pch.h
623
B
-rw-r--r--
2021-11-01 05:53
ptr_ring.h
16.29
KB
-rw-r--r--
2021-11-01 05:53
ptrace.h
14.65
KB
-rw-r--r--
2026-06-20 00:54
purgatory.h
590
B
-rw-r--r--
2021-11-01 05:53
pvclock_gtod.h
548
B
-rw-r--r--
2021-11-01 05:53
pwm.h
16.46
KB
-rw-r--r--
2026-06-20 00:54
pwm_backlight.h
722
B
-rw-r--r--
2021-11-01 05:53
pxa168_eth.h
728
B
-rw-r--r--
2021-11-01 05:53
pxa2xx_ssp.h
11.13
KB
-rw-r--r--
2021-11-01 05:53
qcom-geni-se.h
13.74
KB
-rw-r--r--
2021-11-01 05:53
qcom_scm.h
3.81
KB
-rw-r--r--
2021-11-01 05:53
qnx6_fs.h
3.27
KB
-rw-r--r--
2021-11-01 05:53
quota.h
18.77
KB
-rw-r--r--
2026-06-20 00:54
quotaops.h
10.28
KB
-rw-r--r--
2026-06-20 00:54
radix-tree.h
15.63
KB
-rw-r--r--
2026-06-20 00:54
raid_class.h
2
KB
-rw-r--r--
2026-06-20 00:54
ramfs.h
746
B
-rw-r--r--
2026-06-20 00:54
random.h
3.98
KB
-rw-r--r--
2026-06-20 00:54
randomize_kstack.h
2.46
KB
-rw-r--r--
2026-06-20 00:54
range.h
775
B
-rw-r--r--
2021-11-01 05:53
ras.h
1.02
KB
-rw-r--r--
2021-11-01 05:53
ratelimit.h
1.72
KB
-rw-r--r--
2021-11-01 05:53
ratelimit_types.h
1.33
KB
-rw-r--r--
2026-06-20 00:54
rational.h
639
B
-rw-r--r--
2021-11-01 05:53
rbtree.h
8.93
KB
-rw-r--r--
2021-11-01 05:53
rbtree_augmented.h
9.53
KB
-rw-r--r--
2021-11-01 05:53
rbtree_latch.h
6.66
KB
-rw-r--r--
2026-06-20 00:54
rbtree_types.h
946
B
-rw-r--r--
2021-11-01 05:53
rcu_node_tree.h
3.73
KB
-rw-r--r--
2021-11-01 05:53
rcu_segcblist.h
10.03
KB
-rw-r--r--
2021-11-01 05:53
rcu_sync.h
1.46
KB
-rw-r--r--
2021-11-01 05:53
rculist.h
28.56
KB
-rw-r--r--
2021-11-01 05:53
rculist_bl.h
3.29
KB
-rw-r--r--
2021-11-01 05:53
rculist_nulls.h
8.68
KB
-rw-r--r--
2026-06-20 00:54
rcupdate.h
38.69
KB
-rw-r--r--
2026-06-20 00:54
rcupdate_trace.h
3.08
KB
-rw-r--r--
2021-11-01 05:53
rcupdate_wait.h
1.73
KB
-rw-r--r--
2021-11-01 05:53
rcutiny.h
3.32
KB
-rw-r--r--
2021-11-01 05:53
rcutree.h
2.34
KB
-rw-r--r--
2026-06-20 00:54
rcuwait.h
1.84
KB
-rw-r--r--
2021-11-01 05:53
reboot-mode.h
600
B
-rw-r--r--
2021-11-01 05:53
reboot.h
2.18
KB
-rw-r--r--
2021-11-01 05:53
reciprocal_div.h
3.28
KB
-rw-r--r--
2021-11-01 05:53
refcount.h
12.02
KB
-rw-r--r--
2021-11-01 05:53
regmap.h
63.97
KB
-rw-r--r--
2026-06-20 00:54
regset.h
11.35
KB
-rw-r--r--
2021-11-01 05:53
relay.h
8.47
KB
-rw-r--r--
2021-11-01 05:53
remoteproc.h
24.77
KB
-rw-r--r--
2021-11-01 05:53
resctrl.h
6.5
KB
-rw-r--r--
2021-11-01 05:53
reset-controller.h
3.57
KB
-rw-r--r--
2021-11-01 05:53
reset.h
30.24
KB
-rw-r--r--
2026-06-20 00:54
resource.h
339
B
-rw-r--r--
2021-11-01 05:53
resource_ext.h
2.08
KB
-rw-r--r--
2021-11-01 05:53
restart_block.h
1.11
KB
-rw-r--r--
2021-11-01 05:53
rfkill.h
10.52
KB
-rw-r--r--
2021-11-01 05:53
rhashtable-types.h
3.45
KB
-rw-r--r--
2021-11-01 05:53
rhashtable.h
37.59
KB
-rw-r--r--
2021-11-01 05:53
ring_buffer.h
7.56
KB
-rw-r--r--
2026-06-20 00:54
rio.h
19.02
KB
-rw-r--r--
2021-11-01 05:53
rio_drv.h
14.32
KB
-rw-r--r--
2021-11-01 05:53
rio_ids.h
1.08
KB
-rw-r--r--
2021-11-01 05:53
rio_regs.h
19.07
KB
-rw-r--r--
2021-11-01 05:53
rmap.h
9.13
KB
-rw-r--r--
2026-06-20 00:54
rmi.h
12.04
KB
-rw-r--r--
2021-11-01 05:53
rndis.h
16.86
KB
-rw-r--r--
2021-11-01 05:53
rodata_test.h
394
B
-rw-r--r--
2021-11-01 05:53
root_dev.h
619
B
-rw-r--r--
2021-11-01 05:53
rpmsg.h
8.77
KB
-rw-r--r--
2026-06-20 00:54
rslib.h
3.67
KB
-rw-r--r--
2021-11-01 05:53
rtc.h
8.65
KB
-rw-r--r--
2021-11-01 05:53
rtmutex.h
2.97
KB
-rw-r--r--
2021-11-01 05:53
rtnetlink.h
4.46
KB
-rw-r--r--
2021-11-01 05:53
rtsx_common.h
890
B
-rw-r--r--
2021-11-01 05:53
rtsx_pci.h
39.82
KB
-rw-r--r--
2026-06-20 00:54
rtsx_usb.h
15.38
KB
-rw-r--r--
2026-06-20 00:54
rwbase_rt.h
876
B
-rw-r--r--
2021-11-01 05:53
rwlock.h
4.55
KB
-rw-r--r--
2021-11-01 05:53
rwlock_api_smp.h
7.65
KB
-rw-r--r--
2021-11-01 05:53
rwlock_rt.h
2.98
KB
-rw-r--r--
2021-11-01 05:53
rwlock_types.h
1.77
KB
-rw-r--r--
2021-11-01 05:53
rwsem.h
7.63
KB
-rw-r--r--
2026-06-20 00:54
s3c_adc_battery.h
923
B
-rw-r--r--
2021-11-01 05:53
sbitmap.h
16.9
KB
-rw-r--r--
2021-11-01 05:53
scatterlist.h
17.56
KB
-rw-r--r--
2021-11-01 05:53
scc.h
2.84
KB
-rw-r--r--
2021-11-01 05:53
sched.h
64.73
KB
-rw-r--r--
2026-06-20 00:54
sched_clock.h
1.44
KB
-rw-r--r--
2021-11-01 05:53
scmi_protocol.h
26.06
KB
-rw-r--r--
2026-06-20 00:54
scpi_protocol.h
2.67
KB
-rw-r--r--
2021-11-01 05:53
screen_info.h
191
B
-rw-r--r--
2021-11-01 05:53
scs.h
1.83
KB
-rw-r--r--
2021-11-01 05:53
sctp.h
22.88
KB
-rw-r--r--
2021-11-01 05:53
scx200.h
1.82
KB
-rw-r--r--
2021-11-01 05:53
scx200_gpio.h
2.38
KB
-rw-r--r--
2021-11-01 05:53
sdb.h
4.17
KB
-rw-r--r--
2021-11-01 05:53
seccomp.h
3.45
KB
-rw-r--r--
2026-06-20 00:54
secretmem.h
1.14
KB
-rw-r--r--
2026-06-20 00:54
securebits.h
239
B
-rw-r--r--
2021-11-01 05:53
security.h
58.92
KB
-rw-r--r--
2026-06-20 00:54
sed-opal.h
1.66
KB
-rw-r--r--
2021-11-01 05:53
seg6.h
121
B
-rw-r--r--
2021-11-01 05:53
seg6_genl.h
136
B
-rw-r--r--
2021-11-01 05:53
seg6_hmac.h
136
B
-rw-r--r--
2021-11-01 05:53
seg6_iptunnel.h
148
B
-rw-r--r--
2021-11-01 05:53
seg6_local.h
100
B
-rw-r--r--
2021-11-01 05:53
selection.h
1.81
KB
-rw-r--r--
2021-11-01 05:53
sem.h
599
B
-rw-r--r--
2021-11-01 05:53
semaphore.h
1.35
KB
-rw-r--r--
2021-11-01 05:53
seq_buf.h
3.94
KB
-rw-r--r--
2021-11-01 05:53
seq_file.h
9
KB
-rw-r--r--
2026-06-20 00:54
seq_file_net.h
730
B
-rw-r--r--
2021-11-01 05:53
seqlock.h
39.51
KB
-rw-r--r--
2026-06-20 00:54
seqno-fence.h
3.57
KB
-rw-r--r--
2021-11-01 05:53
serdev.h
9.82
KB
-rw-r--r--
2021-11-01 05:53
serial.h
630
B
-rw-r--r--
2021-11-01 05:53
serial_8250.h
6.57
KB
-rw-r--r--
2026-06-20 00:54
serial_bcm63xx.h
4.73
KB
-rw-r--r--
2021-11-01 05:53
serial_core.h
20.46
KB
-rw-r--r--
2026-06-20 00:54
serial_max3100.h
1.19
KB
-rw-r--r--
2021-11-01 05:53
serial_s3c.h
9.42
KB
-rw-r--r--
2021-11-01 05:53
serial_sci.h
1.6
KB
-rw-r--r--
2021-11-01 05:53
serio.h
4.28
KB
-rw-r--r--
2021-11-01 05:53
set_memory.h
1.66
KB
-rw-r--r--
2021-11-01 05:53
sfp.h
15.87
KB
-rw-r--r--
2021-11-01 05:53
sh_clk.h
5.96
KB
-rw-r--r--
2021-11-01 05:53
sh_dma.h
3.47
KB
-rw-r--r--
2021-11-01 05:53
sh_eth.h
369
B
-rw-r--r--
2021-11-01 05:53
sh_intc.h
3.59
KB
-rw-r--r--
2026-06-20 00:54
sh_timer.h
172
B
-rw-r--r--
2021-11-01 05:53
shdma-base.h
4.27
KB
-rw-r--r--
2026-06-20 00:54
shm.h
968
B
-rw-r--r--
2021-11-01 05:53
shmem_fs.h
5.81
KB
-rw-r--r--
2021-11-01 05:53
shrinker.h
3.25
KB
-rw-r--r--
2021-11-01 05:53
signal.h
13.75
KB
-rw-r--r--
2026-06-20 00:54
signal_types.h
1.68
KB
-rw-r--r--
2026-06-20 00:54
signalfd.h
817
B
-rw-r--r--
2021-11-01 05:53
siox.h
2.26
KB
-rw-r--r--
2021-11-01 05:53
siphash.h
5.59
KB
-rw-r--r--
2026-06-20 00:54
sizes.h
1.27
KB
-rw-r--r--
2021-11-01 05:53
skb_array.h
5.18
KB
-rw-r--r--
2021-11-01 05:53
skbuff.h
137.84
KB
-rw-r--r--
2026-06-20 00:54
skmsg.h
13.44
KB
-rw-r--r--
2026-06-20 00:54
slab.h
23.74
KB
-rw-r--r--
2026-06-20 00:54
slab_def.h
3.02
KB
-rw-r--r--
2021-11-01 05:53
slimbus.h
6.93
KB
-rw-r--r--
2021-11-01 05:53
slub_def.h
6.22
KB
-rw-r--r--
2021-11-01 05:53
sm501-regs.h
11.62
KB
-rw-r--r--
2021-11-01 05:53
sm501.h
4.02
KB
-rw-r--r--
2021-11-01 05:53
smc911x.h
294
B
-rw-r--r--
2021-11-01 05:53
smc91x.h
1.57
KB
-rw-r--r--
2021-11-01 05:53
smp.h
7.63
KB
-rw-r--r--
2021-11-01 05:53
smp_types.h
1.35
KB
-rw-r--r--
2021-11-01 05:53
smpboot.h
1.68
KB
-rw-r--r--
2021-11-01 05:53
smsc911x.h
1.63
KB
-rw-r--r--
2021-11-01 05:53
smscphy.h
1.25
KB
-rw-r--r--
2021-11-01 05:53
sock_diag.h
2.31
KB
-rw-r--r--
2021-11-01 05:53
socket.h
15.1
KB
-rw-r--r--
2026-06-20 00:54
sockptr.h
2.36
KB
-rw-r--r--
2026-06-20 00:54
sonet.h
469
B
-rw-r--r--
2021-11-01 05:53
sony-laptop.h
1.41
KB
-rw-r--r--
2021-11-01 05:53
sonypi.h
1.71
KB
-rw-r--r--
2021-11-01 05:53
sort.h
346
B
-rw-r--r--
2021-11-01 05:53
sound.h
685
B
-rw-r--r--
2021-11-01 05:53
soundcard.h
1.59
KB
-rw-r--r--
2021-11-01 05:53
spinlock.h
15.08
KB
-rw-r--r--
2026-06-20 00:54
spinlock_api_smp.h
5.47
KB
-rw-r--r--
2021-11-01 05:53
spinlock_api_up.h
3.31
KB
-rw-r--r--
2021-11-01 05:53
spinlock_rt.h
4.11
KB
-rw-r--r--
2021-11-01 05:53
spinlock_types.h
1.78
KB
-rw-r--r--
2021-11-01 05:53
spinlock_types_raw.h
1.69
KB
-rw-r--r--
2021-11-01 05:53
spinlock_types_up.h
726
B
-rw-r--r--
2021-11-01 05:53
spinlock_up.h
2.16
KB
-rw-r--r--
2021-11-01 05:53
splice.h
3.31
KB
-rw-r--r--
2026-06-20 00:54
spmi.h
5.59
KB
-rw-r--r--
2021-11-01 05:53
sram.h
844
B
-rw-r--r--
2021-11-01 05:53
srcu.h
7.07
KB
-rw-r--r--
2026-06-20 00:54
srcutiny.h
2.75
KB
-rw-r--r--
2021-11-01 05:53
srcutree.h
4.8
KB
-rw-r--r--
2021-11-01 05:53
ssbi.h
726
B
-rw-r--r--
2021-11-01 05:53
stackdepot.h
686
B
-rw-r--r--
2026-06-20 00:54
stackleak.h
902
B
-rw-r--r--
2021-11-01 05:53
stackprotector.h
361
B
-rw-r--r--
2021-11-01 05:53
stacktrace.h
3.97
KB
-rw-r--r--
2026-06-20 00:54
start_kernel.h
415
B
-rw-r--r--
2021-11-01 05:53
stat.h
1.33
KB
-rw-r--r--
2021-11-01 05:53
statfs.h
1.78
KB
-rw-r--r--
2021-11-01 05:53
static_call.h
10.25
KB
-rw-r--r--
2026-06-20 00:54
static_call_types.h
2.74
KB
-rw-r--r--
2021-11-01 05:53
static_key.h
30
B
-rw-r--r--
2021-11-01 05:53
stdarg.h
313
B
-rw-r--r--
2021-11-01 05:53
stddef.h
3.2
KB
-rw-r--r--
2026-06-20 00:54
stm.h
4.34
KB
-rw-r--r--
2021-11-01 05:53
stmmac.h
6.86
KB
-rw-r--r--
2026-06-20 00:54
stmp3xxx_rtc_wdt.h
331
B
-rw-r--r--
2021-11-01 05:53
stmp_device.h
412
B
-rw-r--r--
2021-11-01 05:53
stop_machine.h
4.41
KB
-rw-r--r--
2021-11-01 05:53
string.h
9.75
KB
-rw-r--r--
2026-06-20 00:54
string_helpers.h
2.69
KB
-rw-r--r--
2021-11-01 05:53
stringhash.h
2.65
KB
-rw-r--r--
2021-11-01 05:53
stringify.h
341
B
-rw-r--r--
2021-11-01 05:53
sungem_phy.h
3.94
KB
-rw-r--r--
2021-11-01 05:53
sunserialcore.h
1.08
KB
-rw-r--r--
2021-11-01 05:53
sunxi-rsb.h
2.89
KB
-rw-r--r--
2021-11-01 05:53
superhyway.h
2.81
KB
-rw-r--r--
2021-11-01 05:53
surface_acpi_notify.h
1.07
KB
-rw-r--r--
2021-11-01 05:53
suspend.h
20.02
KB
-rw-r--r--
2026-06-20 00:54
svga.h
3.75
KB
-rw-r--r--
2021-11-01 05:53
sw842.h
328
B
-rw-r--r--
2021-11-01 05:53
swab.h
569
B
-rw-r--r--
2021-11-01 05:53
swait.h
9.45
KB
-rw-r--r--
2021-11-01 05:53
swap.h
23.43
KB
-rw-r--r--
2026-06-20 00:54
swap_cgroup.h
971
B
-rw-r--r--
2021-11-01 05:53
swap_slots.h
841
B
-rw-r--r--
2021-11-01 05:53
swapfile.h
556
B
-rw-r--r--
2021-11-01 05:53
swapops.h
9.61
KB
-rw-r--r--
2021-11-01 05:53
swiotlb.h
5.36
KB
-rw-r--r--
2026-06-20 00:54
switchtec.h
10.9
KB
-rw-r--r--
2021-11-01 05:53
sxgbe_platform.h
1.23
KB
-rw-r--r--
2021-11-01 05:53
sync_core.h
581
B
-rw-r--r--
2021-11-01 05:53
sync_file.h
1.57
KB
-rw-r--r--
2021-11-01 05:53
synclink.h
989
B
-rw-r--r--
2021-11-01 05:53
sys.h
960
B
-rw-r--r--
2021-11-01 05:53
sys_soc.h
1.26
KB
-rw-r--r--
2021-11-01 05:53
syscall_user_dispatch.h
930
B
-rw-r--r--
2021-11-01 05:53
syscalls.h
55.56
KB
-rw-r--r--
2026-06-20 00:54
syscore_ops.h
633
B
-rw-r--r--
2021-11-01 05:53
sysctl.h
8.59
KB
-rw-r--r--
2026-06-20 00:54
sysfb.h
2.67
KB
-rw-r--r--
2026-06-20 00:54
sysfs.h
17.64
KB
-rw-r--r--
2021-11-01 05:53
syslog.h
1.24
KB
-rw-r--r--
2021-11-01 05:53
sysrq.h
1.96
KB
-rw-r--r--
2021-11-01 05:53
sysv_fs.h
9.03
KB
-rw-r--r--
2021-11-01 05:53
t10-pi.h
1.5
KB
-rw-r--r--
2021-11-01 05:53
task_io_accounting.h
1.13
KB
-rw-r--r--
2021-11-01 05:53
task_io_accounting_ops.h
2.55
KB
-rw-r--r--
2021-11-01 05:53
task_work.h
934
B
-rw-r--r--
2026-06-20 00:54
taskstats_kern.h
957
B
-rw-r--r--
2021-11-01 05:53
tboot.h
3.33
KB
-rw-r--r--
2021-11-01 05:53
tc.h
3.45
KB
-rw-r--r--
2021-11-01 05:53
tca6416_keypad.h
683
B
-rw-r--r--
2026-06-20 00:54
tcp.h
17.14
KB
-rw-r--r--
2026-06-20 00:54
tee_drv.h
18.35
KB
-rw-r--r--
2026-06-20 00:54
textsearch.h
4.75
KB
-rw-r--r--
2026-06-20 00:54
textsearch_fsm.h
1.19
KB
-rw-r--r--
2021-11-01 05:53
tfrc.h
1.68
KB
-rw-r--r--
2021-11-01 05:53
thermal.h
15.44
KB
-rw-r--r--
2026-06-20 00:54
thread_info.h
6.89
KB
-rw-r--r--
2026-06-20 00:54
threads.h
1.28
KB
-rw-r--r--
2021-11-01 05:53
thunderbolt.h
20.78
KB
-rw-r--r--
2021-11-01 05:53
ti-emif-sram.h
5.15
KB
-rw-r--r--
2021-11-01 05:53
ti_wilink_st.h
13.46
KB
-rw-r--r--
2021-11-01 05:53
tick.h
10.05
KB
-rw-r--r--
2026-06-20 00:54
tifm.h
4.66
KB
-rw-r--r--
2021-11-01 05:53
timb_dma.h
1.17
KB
-rw-r--r--
2021-11-01 05:53
timb_gpio.h
717
B
-rw-r--r--
2021-11-01 05:53
time.h
3.14
KB
-rw-r--r--
2021-11-01 05:53
time32.h
1.75
KB
-rw-r--r--
2021-11-01 05:53
time64.h
4.49
KB
-rw-r--r--
2021-11-01 05:53
time_namespace.h
3.82
KB
-rw-r--r--
2021-11-01 05:53
timecounter.h
4.14
KB
-rw-r--r--
2021-11-01 05:53
timekeeper_internal.h
5.33
KB
-rw-r--r--
2021-11-01 05:53
timekeeping.h
7.61
KB
-rw-r--r--
2021-11-01 05:53
timer.h
7.9
KB
-rw-r--r--
2026-06-20 00:54
timerfd.h
508
B
-rw-r--r--
2021-11-01 05:53
timeriomem-rng.h
432
B
-rw-r--r--
2021-11-01 05:53
timerqueue.h
1.4
KB
-rw-r--r--
2026-06-20 00:54
timex.h
6.67
KB
-rw-r--r--
2026-06-20 00:54
tnum.h
3.39
KB
-rw-r--r--
2021-11-01 05:53
topology.h
5.25
KB
-rw-r--r--
2021-11-01 05:53
torture.h
4.48
KB
-rw-r--r--
2026-06-20 00:54
toshiba.h
460
B
-rw-r--r--
2021-11-01 05:53
tpm.h
11.07
KB
-rw-r--r--
2026-06-20 00:54
tpm_command.h
847
B
-rw-r--r--
2021-11-01 05:53
tpm_eventlog.h
6.53
KB
-rw-r--r--
2026-06-20 00:54
trace.h
2.72
KB
-rw-r--r--
2026-06-20 00:54
trace_clock.h
667
B
-rw-r--r--
2021-11-01 05:53
trace_events.h
27.68
KB
-rw-r--r--
2026-06-20 00:54
trace_recursion.h
5.49
KB
-rw-r--r--
2026-06-20 00:54
trace_seq.h
3.94
KB
-rw-r--r--
2026-06-20 00:54
tracefs.h
1018
B
-rw-r--r--
2021-11-01 05:53
tracehook.h
7.97
KB
-rw-r--r--
2021-11-01 05:53
tracepoint-defs.h
2.34
KB
-rw-r--r--
2021-11-01 05:53
tracepoint.h
18
KB
-rw-r--r--
2026-06-20 00:54
transport_class.h
2.58
KB
-rw-r--r--
2026-06-20 00:54
ts-nbus.h
532
B
-rw-r--r--
2021-11-01 05:53
tsacct_kern.h
1.2
KB
-rw-r--r--
2021-11-01 05:53
tty.h
14.52
KB
-rw-r--r--
2021-11-01 05:53
tty_buffer.h
1.28
KB
-rw-r--r--
2021-11-01 05:53
tty_driver.h
15.69
KB
-rw-r--r--
2021-11-01 05:53
tty_flip.h
1.69
KB
-rw-r--r--
2026-06-20 00:54
tty_ldisc.h
8.46
KB
-rw-r--r--
2021-11-01 05:53
tty_port.h
7.24
KB
-rw-r--r--
2021-11-01 05:53
typecheck.h
782
B
-rw-r--r--
2021-11-01 05:53
types.h
5.68
KB
-rw-r--r--
2026-06-20 00:54
u64_stats_sync.h
6.41
KB
-rw-r--r--
2026-06-20 00:54
uacce.h
3.79
KB
-rw-r--r--
2026-06-20 00:54
uaccess.h
13.06
KB
-rw-r--r--
2026-06-20 00:54
ucb1400.h
4.12
KB
-rw-r--r--
2021-11-01 05:53
ucs2_string.h
662
B
-rw-r--r--
2021-11-01 05:53
udp.h
5.3
KB
-rw-r--r--
2026-06-20 00:54
uidgid.h
4.07
KB
-rw-r--r--
2021-11-01 05:53
uio.h
9.1
KB
-rw-r--r--
2026-06-20 00:54
uio_driver.h
4.71
KB
-rw-r--r--
2021-11-01 05:53
umh.h
1.79
KB
-rw-r--r--
2021-11-01 05:53
unicode.h
1.02
KB
-rw-r--r--
2021-11-01 05:53
units.h
2.59
KB
-rw-r--r--
2021-11-01 05:53
uprobes.h
6
KB
-rw-r--r--
2021-11-01 05:53
usb.h
77.76
KB
-rw-r--r--
2026-06-20 00:54
usb_usual.h
3.58
KB
-rw-r--r--
2021-11-01 05:53
usbdevice_fs.h
2.18
KB
-rw-r--r--
2021-11-01 05:53
user-return-notifier.h
1.18
KB
-rw-r--r--
2021-11-01 05:53
user.h
22
B
-rw-r--r--
2021-11-01 05:53
user_namespace.h
6.03
KB
-rw-r--r--
2026-06-20 00:54
userfaultfd_k.h
6.44
KB
-rw-r--r--
2021-11-01 05:53
usermode_driver.h
515
B
-rw-r--r--
2021-11-01 05:53
util_macros.h
2.49
KB
-rw-r--r--
2026-06-20 00:54
uts.h
388
B
-rw-r--r--
2021-11-01 05:53
utsname.h
1.78
KB
-rw-r--r--
2021-11-01 05:53
uuid.h
2.34
KB
-rw-r--r--
2021-11-01 05:53
vbox_utils.h
1.75
KB
-rw-r--r--
2021-11-01 05:53
vdpa.h
14.38
KB
-rw-r--r--
2026-06-20 00:54
verification.h
1.77
KB
-rw-r--r--
2021-11-01 05:53
vermagic.h
1.28
KB
-rw-r--r--
2021-11-01 05:53
vexpress.h
297
B
-rw-r--r--
2021-11-01 05:53
vfio.h
8.3
KB
-rw-r--r--
2026-06-20 00:54
vfio_pci_core.h
8.07
KB
-rw-r--r--
2026-06-20 00:54
vfs.h
116
B
-rw-r--r--
2021-11-01 05:53
vga_switcheroo.h
8.62
KB
-rw-r--r--
2021-11-01 05:53
vgaarb.h
3.88
KB
-rw-r--r--
2021-11-01 05:53
vhost_iotlb.h
1.34
KB
-rw-r--r--
2021-11-01 05:53
via-core.h
6.57
KB
-rw-r--r--
2021-11-01 05:53
via-gpio.h
310
B
-rw-r--r--
2021-11-01 05:53
via.h
932
B
-rw-r--r--
2021-11-01 05:53
via_i2c.h
844
B
-rw-r--r--
2021-11-01 05:53
videodev2.h
2.7
KB
-rw-r--r--
2021-11-01 05:53
virtio.h
6.7
KB
-rw-r--r--
2026-06-20 00:54
virtio_byteorder.h
1.46
KB
-rw-r--r--
2021-11-01 05:53
virtio_caif.h
513
B
-rw-r--r--
2021-11-01 05:53
virtio_config.h
16.25
KB
-rw-r--r--
2026-06-20 00:54
virtio_console.h
1.93
KB
-rw-r--r--
2021-11-01 05:53
virtio_dma_buf.h
1.12
KB
-rw-r--r--
2021-11-01 05:53
virtio_net.h
6.01
KB
-rw-r--r--
2026-06-20 00:54
virtio_pci_modern.h
3.25
KB
-rw-r--r--
2021-11-01 05:53
virtio_ring.h
2.95
KB
-rw-r--r--
2021-11-01 05:53
virtio_vsock.h
4.79
KB
-rw-r--r--
2021-11-01 05:53
visorbus.h
12.23
KB
-rw-r--r--
2021-11-01 05:53
vlynq.h
3.22
KB
-rw-r--r--
2021-11-01 05:53
vm_event_item.h
3.46
KB
-rw-r--r--
2021-11-01 05:53
vmacache.h
722
B
-rw-r--r--
2021-11-01 05:53
vmalloc.h
8.4
KB
-rw-r--r--
2026-06-20 00:54
vme.h
5.66
KB
-rw-r--r--
2021-11-01 05:53
vmpressure.h
1.68
KB
-rw-r--r--
2021-11-01 05:53
vmstat.h
14.79
KB
-rw-r--r--
2026-06-20 00:54
vmw_vmci_api.h
2.88
KB
-rw-r--r--
2021-11-01 05:53
vmw_vmci_defs.h
30.03
KB
-rw-r--r--
2026-06-20 00:54
vringh.h
8.62
KB
-rw-r--r--
2021-11-01 05:53
vsc.h
1.87
KB
-rw-r--r--
2026-06-20 00:54
vt.h
611
B
-rw-r--r--
2021-11-01 05:53
vt_buffer.h
1.49
KB
-rw-r--r--
2026-06-20 00:54
vt_kern.h
5.31
KB
-rw-r--r--
2021-11-01 05:53
vtime.h
4.6
KB
-rw-r--r--
2021-11-01 05:53
w1-gpio.h
493
B
-rw-r--r--
2021-11-01 05:53
w1.h
8.93
KB
-rw-r--r--
2021-11-01 05:53
wait.h
42.04
KB
-rw-r--r--
2026-06-20 00:54
wait_bit.h
11.2
KB
-rw-r--r--
2021-11-01 05:53
watch_queue.h
3.82
KB
-rw-r--r--
2026-06-20 00:54
watchdog.h
8.21
KB
-rw-r--r--
2021-11-01 05:53
win_minmax.h
832
B
-rw-r--r--
2021-11-01 05:53
wireless.h
1.57
KB
-rw-r--r--
2026-06-20 00:54
wkup_m3_ipc.h
1.75
KB
-rw-r--r--
2021-11-01 05:53
wl12xx.h
810
B
-rw-r--r--
2021-11-01 05:53
wm97xx.h
10.59
KB
-rw-r--r--
2021-11-01 05:53
wmi.h
1.56
KB
-rw-r--r--
2021-11-01 05:53
workqueue.h
22.44
KB
-rw-r--r--
2026-06-20 00:54
writeback.h
12.83
KB
-rw-r--r--
2021-11-01 05:53
ww_mutex.h
13.11
KB
-rw-r--r--
2021-11-01 05:53
wwan.h
5.13
KB
-rw-r--r--
2021-11-01 05:53
xarray.h
56.45
KB
-rw-r--r--
2026-06-20 00:54
xattr.h
3.88
KB
-rw-r--r--
2021-11-01 05:53
xxhash.h
8.27
KB
-rw-r--r--
2021-11-01 05:53
xz.h
11.16
KB
-rw-r--r--
2021-11-01 05:53
yam.h
2.18
KB
-rw-r--r--
2021-11-01 05:53
z2_battery.h
299
B
-rw-r--r--
2021-11-01 05:53
zconf.h
1.73
KB
-rw-r--r--
2021-11-01 05:53
zlib.h
28.11
KB
-rw-r--r--
2021-11-01 05:53
zorro.h
3.57
KB
-rw-r--r--
2021-11-01 05:53
zpool.h
3.24
KB
-rw-r--r--
2021-11-01 05:53
zsmalloc.h
1.63
KB
-rw-r--r--
2021-11-01 05:53
zstd.h
48.58
KB
-rw-r--r--
2021-11-01 05:53
zutil.h
2.73
KB
-rw-r--r--
2021-11-01 05:53
Save
Rename
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Framework and drivers for configuring and reading different PHYs * Based on code in sungem_phy.c and (long-removed) gianfar_phy.c * * Author: Andy Fleming * * Copyright (c) 2004 Freescale Semiconductor, Inc. */ #ifndef __PHY_H #define __PHY_H #include <linux/compiler.h> #include <linux/spinlock.h> #include <linux/ethtool.h> #include <linux/linkmode.h> #include <linux/netlink.h> #include <linux/mdio.h> #include <linux/mii.h> #include <linux/mii_timestamper.h> #include <linux/module.h> #include <linux/timer.h> #include <linux/workqueue.h> #include <linux/mod_devicetable.h> #include <linux/u64_stats_sync.h> #include <linux/irqreturn.h> #include <linux/iopoll.h> #include <linux/refcount.h> #include <linux/atomic.h> #define PHY_DEFAULT_FEATURES (SUPPORTED_Autoneg | \ SUPPORTED_TP | \ SUPPORTED_MII) #define PHY_10BT_FEATURES (SUPPORTED_10baseT_Half | \ SUPPORTED_10baseT_Full) #define PHY_100BT_FEATURES (SUPPORTED_100baseT_Half | \ SUPPORTED_100baseT_Full) #define PHY_1000BT_FEATURES (SUPPORTED_1000baseT_Half | \ SUPPORTED_1000baseT_Full) extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_basic_features) __ro_after_init; extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_basic_t1_features) __ro_after_init; extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_gbit_features) __ro_after_init; extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_gbit_fibre_features) __ro_after_init; extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_gbit_all_ports_features) __ro_after_init; extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_10gbit_features) __ro_after_init; extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_10gbit_fec_features) __ro_after_init; extern __ETHTOOL_DECLARE_LINK_MODE_MASK(phy_10gbit_full_features) __ro_after_init; #define PHY_BASIC_FEATURES ((unsigned long *)&phy_basic_features) #define PHY_BASIC_T1_FEATURES ((unsigned long *)&phy_basic_t1_features) #define PHY_GBIT_FEATURES ((unsigned long *)&phy_gbit_features) #define PHY_GBIT_FIBRE_FEATURES ((unsigned long *)&phy_gbit_fibre_features) #define PHY_GBIT_ALL_PORTS_FEATURES ((unsigned long *)&phy_gbit_all_ports_features) #define PHY_10GBIT_FEATURES ((unsigned long *)&phy_10gbit_features) #define PHY_10GBIT_FEC_FEATURES ((unsigned long *)&phy_10gbit_fec_features) #define PHY_10GBIT_FULL_FEATURES ((unsigned long *)&phy_10gbit_full_features) extern const int phy_basic_ports_array[3]; extern const int phy_fibre_port_array[1]; extern const int phy_all_ports_features_array[7]; extern const int phy_10_100_features_array[4]; extern const int phy_basic_t1_features_array[2]; extern const int phy_gbit_features_array[2]; extern const int phy_10gbit_features_array[1]; /* * Set phydev->irq to PHY_POLL if interrupts are not supported, * or not desired for this PHY. Set to PHY_MAC_INTERRUPT if * the attached MAC driver handles the interrupt */ #define PHY_POLL -1 #define PHY_MAC_INTERRUPT -2 #define PHY_IS_INTERNAL 0x00000001 #define PHY_RST_AFTER_CLK_EN 0x00000002 #define PHY_POLL_CABLE_TEST 0x00000004 #define MDIO_DEVICE_IS_PHY 0x80000000 /** * enum phy_interface_t - Interface Mode definitions * * @PHY_INTERFACE_MODE_NA: Not Applicable - don't touch * @PHY_INTERFACE_MODE_INTERNAL: No interface, MAC and PHY combined * @PHY_INTERFACE_MODE_MII: Median-independent interface * @PHY_INTERFACE_MODE_GMII: Gigabit median-independent interface * @PHY_INTERFACE_MODE_SGMII: Serial gigabit media-independent interface * @PHY_INTERFACE_MODE_TBI: Ten Bit Interface * @PHY_INTERFACE_MODE_REVMII: Reverse Media Independent Interface * @PHY_INTERFACE_MODE_RMII: Reduced Media Independent Interface * @PHY_INTERFACE_MODE_REVRMII: Reduced Media Independent Interface in PHY role * @PHY_INTERFACE_MODE_RGMII: Reduced gigabit media-independent interface * @PHY_INTERFACE_MODE_RGMII_ID: RGMII with Internal RX+TX delay * @PHY_INTERFACE_MODE_RGMII_RXID: RGMII with Internal RX delay * @PHY_INTERFACE_MODE_RGMII_TXID: RGMII with Internal RX delay * @PHY_INTERFACE_MODE_RTBI: Reduced TBI * @PHY_INTERFACE_MODE_SMII: ??? MII * @PHY_INTERFACE_MODE_XGMII: 10 gigabit media-independent interface * @PHY_INTERFACE_MODE_XLGMII:40 gigabit media-independent interface * @PHY_INTERFACE_MODE_MOCA: Multimedia over Coax * @PHY_INTERFACE_MODE_QSGMII: Quad SGMII * @PHY_INTERFACE_MODE_TRGMII: Turbo RGMII * @PHY_INTERFACE_MODE_100BASEX: 100 BaseX * @PHY_INTERFACE_MODE_1000BASEX: 1000 BaseX * @PHY_INTERFACE_MODE_2500BASEX: 2500 BaseX * @PHY_INTERFACE_MODE_5GBASER: 5G BaseR * @PHY_INTERFACE_MODE_RXAUI: Reduced XAUI * @PHY_INTERFACE_MODE_XAUI: 10 Gigabit Attachment Unit Interface * @PHY_INTERFACE_MODE_10GBASER: 10G BaseR * @PHY_INTERFACE_MODE_25GBASER: 25G BaseR * @PHY_INTERFACE_MODE_USXGMII: Universal Serial 10GE MII * @PHY_INTERFACE_MODE_10GKR: 10GBASE-KR - with Clause 73 AN * @PHY_INTERFACE_MODE_MAX: Book keeping * * Describes the interface between the MAC and PHY. */ typedef enum { PHY_INTERFACE_MODE_NA, PHY_INTERFACE_MODE_INTERNAL, PHY_INTERFACE_MODE_MII, PHY_INTERFACE_MODE_GMII, PHY_INTERFACE_MODE_SGMII, PHY_INTERFACE_MODE_TBI, PHY_INTERFACE_MODE_REVMII, PHY_INTERFACE_MODE_RMII, PHY_INTERFACE_MODE_REVRMII, PHY_INTERFACE_MODE_RGMII, PHY_INTERFACE_MODE_RGMII_ID, PHY_INTERFACE_MODE_RGMII_RXID, PHY_INTERFACE_MODE_RGMII_TXID, PHY_INTERFACE_MODE_RTBI, PHY_INTERFACE_MODE_SMII, PHY_INTERFACE_MODE_XGMII, PHY_INTERFACE_MODE_XLGMII, PHY_INTERFACE_MODE_MOCA, PHY_INTERFACE_MODE_QSGMII, PHY_INTERFACE_MODE_TRGMII, PHY_INTERFACE_MODE_100BASEX, PHY_INTERFACE_MODE_1000BASEX, PHY_INTERFACE_MODE_2500BASEX, PHY_INTERFACE_MODE_5GBASER, PHY_INTERFACE_MODE_RXAUI, PHY_INTERFACE_MODE_XAUI, /* 10GBASE-R, XFI, SFI - single lane 10G Serdes */ PHY_INTERFACE_MODE_10GBASER, PHY_INTERFACE_MODE_25GBASER, PHY_INTERFACE_MODE_USXGMII, /* 10GBASE-KR - with Clause 73 AN */ PHY_INTERFACE_MODE_10GKR, PHY_INTERFACE_MODE_MAX, } phy_interface_t; /* * phy_supported_speeds - return all speeds currently supported by a PHY device */ unsigned int phy_supported_speeds(struct phy_device *phy, unsigned int *speeds, unsigned int size); /** * phy_modes - map phy_interface_t enum to device tree binding of phy-mode * @interface: enum phy_interface_t value * * Description: maps enum &phy_interface_t defined in this file * into the device tree binding of 'phy-mode', so that Ethernet * device driver can get PHY interface from device tree. */ static inline const char *phy_modes(phy_interface_t interface) { switch (interface) { case PHY_INTERFACE_MODE_NA: return ""; case PHY_INTERFACE_MODE_INTERNAL: return "internal"; case PHY_INTERFACE_MODE_MII: return "mii"; case PHY_INTERFACE_MODE_GMII: return "gmii"; case PHY_INTERFACE_MODE_SGMII: return "sgmii"; case PHY_INTERFACE_MODE_TBI: return "tbi"; case PHY_INTERFACE_MODE_REVMII: return "rev-mii"; case PHY_INTERFACE_MODE_RMII: return "rmii"; case PHY_INTERFACE_MODE_REVRMII: return "rev-rmii"; case PHY_INTERFACE_MODE_RGMII: return "rgmii"; case PHY_INTERFACE_MODE_RGMII_ID: return "rgmii-id"; case PHY_INTERFACE_MODE_RGMII_RXID: return "rgmii-rxid"; case PHY_INTERFACE_MODE_RGMII_TXID: return "rgmii-txid"; case PHY_INTERFACE_MODE_RTBI: return "rtbi"; case PHY_INTERFACE_MODE_SMII: return "smii"; case PHY_INTERFACE_MODE_XGMII: return "xgmii"; case PHY_INTERFACE_MODE_XLGMII: return "xlgmii"; case PHY_INTERFACE_MODE_MOCA: return "moca"; case PHY_INTERFACE_MODE_QSGMII: return "qsgmii"; case PHY_INTERFACE_MODE_TRGMII: return "trgmii"; case PHY_INTERFACE_MODE_1000BASEX: return "1000base-x"; case PHY_INTERFACE_MODE_2500BASEX: return "2500base-x"; case PHY_INTERFACE_MODE_5GBASER: return "5gbase-r"; case PHY_INTERFACE_MODE_RXAUI: return "rxaui"; case PHY_INTERFACE_MODE_XAUI: return "xaui"; case PHY_INTERFACE_MODE_10GBASER: return "10gbase-r"; case PHY_INTERFACE_MODE_25GBASER: return "25gbase-r"; case PHY_INTERFACE_MODE_USXGMII: return "usxgmii"; case PHY_INTERFACE_MODE_10GKR: return "10gbase-kr"; case PHY_INTERFACE_MODE_100BASEX: return "100base-x"; default: return "unknown"; } } #define PHY_INIT_TIMEOUT 100000 #define PHY_FORCE_TIMEOUT 10 #define PHY_MAX_ADDR 32 /* Used when trying to connect to a specific phy (mii bus id:phy device id) */ #define PHY_ID_FMT "%s:%02x" #define MII_BUS_ID_SIZE 61 struct device; struct phylink; struct sfp_bus; struct sfp_upstream_ops; struct sk_buff; /** * struct mdio_bus_stats - Statistics counters for MDIO busses * @transfers: Total number of transfers, i.e. @writes + @reads * @errors: Number of MDIO transfers that returned an error * @writes: Number of write transfers * @reads: Number of read transfers * @syncp: Synchronisation for incrementing statistics */ struct mdio_bus_stats { u64_stats_t transfers; u64_stats_t errors; u64_stats_t writes; u64_stats_t reads; /* Must be last, add new statistics above */ struct u64_stats_sync syncp; }; /** * struct phy_package_shared - Shared information in PHY packages * @addr: Common PHY address used to combine PHYs in one package * @refcnt: Number of PHYs connected to this shared data * @flags: Initialization of PHY package * @priv_size: Size of the shared private data @priv * @priv: Driver private data shared across a PHY package * * Represents a shared structure between different phydev's in the same * package, for example a quad PHY. See phy_package_join() and * phy_package_leave(). */ struct phy_package_shared { int addr; refcount_t refcnt; unsigned long flags; size_t priv_size; /* private data pointer */ /* note that this pointer is shared between different phydevs and * the user has to take care of appropriate locking. It is allocated * and freed automatically by phy_package_join() and * phy_package_leave(). */ void *priv; }; /* used as bit number in atomic bitops */ #define PHY_SHARED_F_INIT_DONE 0 #define PHY_SHARED_F_PROBE_DONE 1 /** * struct mii_bus - Represents an MDIO bus * * @owner: Who owns this device * @name: User friendly name for this MDIO device, or driver name * @id: Unique identifier for this bus, typical from bus hierarchy * @priv: Driver private data * * The Bus class for PHYs. Devices which provide access to * PHYs should register using this structure */ struct mii_bus { struct module *owner; const char *name; char id[MII_BUS_ID_SIZE]; void *priv; /** @read: Perform a read transfer on the bus */ int (*read)(struct mii_bus *bus, int addr, int regnum); /** @write: Perform a write transfer on the bus */ int (*write)(struct mii_bus *bus, int addr, int regnum, u16 val); /** @reset: Perform a reset of the bus */ int (*reset)(struct mii_bus *bus); /** @stats: Statistic counters per device on the bus */ struct mdio_bus_stats stats[PHY_MAX_ADDR]; /** * @mdio_lock: A lock to ensure that only one thing can read/write * the MDIO bus at a time */ struct mutex mdio_lock; /** @parent: Parent device of this bus */ struct device *parent; /** @state: State of bus structure */ enum { MDIOBUS_ALLOCATED = 1, MDIOBUS_REGISTERED, MDIOBUS_UNREGISTERED, MDIOBUS_RELEASED, } state; /** @dev: Kernel device representation */ struct device dev; /** @mdio_map: list of all MDIO devices on bus */ struct mdio_device *mdio_map[PHY_MAX_ADDR]; /** @phy_mask: PHY addresses to be ignored when probing */ u32 phy_mask; /** @phy_ignore_ta_mask: PHY addresses to ignore the TA/read failure */ u32 phy_ignore_ta_mask; /** * @irq: An array of interrupts, each PHY's interrupt at the index * matching its address */ int irq[PHY_MAX_ADDR]; /** @reset_delay_us: GPIO reset pulse width in microseconds */ int reset_delay_us; /** @reset_post_delay_us: GPIO reset deassert delay in microseconds */ int reset_post_delay_us; /** @reset_gpiod: Reset GPIO descriptor pointer */ struct gpio_desc *reset_gpiod; /** @probe_capabilities: bus capabilities, used for probing */ enum { MDIOBUS_NO_CAP = 0, MDIOBUS_C22, MDIOBUS_C45, MDIOBUS_C22_C45, } probe_capabilities; /** @shared_lock: protect access to the shared element */ struct mutex shared_lock; /** @shared: shared state across different PHYs */ struct phy_package_shared *shared[PHY_MAX_ADDR]; }; #define to_mii_bus(d) container_of(d, struct mii_bus, dev) struct mii_bus *mdiobus_alloc_size(size_t size); /** * mdiobus_alloc - Allocate an MDIO bus structure * * The internal state of the MDIO bus will be set of MDIOBUS_ALLOCATED ready * for the driver to register the bus. */ static inline struct mii_bus *mdiobus_alloc(void) { return mdiobus_alloc_size(0); } int __mdiobus_register(struct mii_bus *bus, struct module *owner); int __devm_mdiobus_register(struct device *dev, struct mii_bus *bus, struct module *owner); #define mdiobus_register(bus) __mdiobus_register(bus, THIS_MODULE) #define devm_mdiobus_register(dev, bus) \ __devm_mdiobus_register(dev, bus, THIS_MODULE) void mdiobus_unregister(struct mii_bus *bus); void mdiobus_free(struct mii_bus *bus); struct mii_bus *devm_mdiobus_alloc_size(struct device *dev, int sizeof_priv); static inline struct mii_bus *devm_mdiobus_alloc(struct device *dev) { return devm_mdiobus_alloc_size(dev, 0); } struct mii_bus *mdio_find_bus(const char *mdio_name); struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr); #define PHY_INTERRUPT_DISABLED false #define PHY_INTERRUPT_ENABLED true /** * enum phy_state - PHY state machine states: * * @PHY_DOWN: PHY device and driver are not ready for anything. probe * should be called if and only if the PHY is in this state, * given that the PHY device exists. * - PHY driver probe function will set the state to @PHY_READY * * @PHY_READY: PHY is ready to send and receive packets, but the * controller is not. By default, PHYs which do not implement * probe will be set to this state by phy_probe(). * - start will set the state to UP * * @PHY_UP: The PHY and attached device are ready to do work. * Interrupts should be started here. * - timer moves to @PHY_NOLINK or @PHY_RUNNING * * @PHY_NOLINK: PHY is up, but not currently plugged in. * - irq or timer will set @PHY_RUNNING if link comes back * - phy_stop moves to @PHY_HALTED * * @PHY_RUNNING: PHY is currently up, running, and possibly sending * and/or receiving packets * - irq or timer will set @PHY_NOLINK if link goes down * - phy_stop moves to @PHY_HALTED * * @PHY_CABLETEST: PHY is performing a cable test. Packet reception/sending * is not expected to work, carrier will be indicated as down. PHY will be * poll once per second, or on interrupt for it current state. * Once complete, move to UP to restart the PHY. * - phy_stop aborts the running test and moves to @PHY_HALTED * * @PHY_HALTED: PHY is up, but no polling or interrupts are done. Or * PHY is in an error state. * - phy_start moves to @PHY_UP */ enum phy_state { PHY_DOWN = 0, PHY_READY, PHY_HALTED, PHY_UP, PHY_RUNNING, PHY_NOLINK, PHY_CABLETEST, }; #define MDIO_MMD_NUM 32 /** * struct phy_c45_device_ids - 802.3-c45 Device Identifiers * @devices_in_package: IEEE 802.3 devices in package register value. * @mmds_present: bit vector of MMDs present. * @device_ids: The device identifer for each present device. */ struct phy_c45_device_ids { u32 devices_in_package; u32 mmds_present; u32 device_ids[MDIO_MMD_NUM]; }; struct macsec_context; struct macsec_ops; /** * struct phy_device - An instance of a PHY * * @mdio: MDIO bus this PHY is on * @drv: Pointer to the driver for this PHY instance * @phy_id: UID for this device found during discovery * @c45_ids: 802.3-c45 Device Identifiers if is_c45. * @is_c45: Set to true if this PHY uses clause 45 addressing. * @is_internal: Set to true if this PHY is internal to a MAC. * @is_pseudo_fixed_link: Set to true if this PHY is an Ethernet switch, etc. * @is_gigabit_capable: Set to true if PHY supports 1000Mbps * @has_fixups: Set to true if this PHY has fixups/quirks. * @suspended: Set to true if this PHY has been suspended successfully. * @suspended_by_mdio_bus: Set to true if this PHY was suspended by MDIO bus. * @sysfs_links: Internal boolean tracking sysfs symbolic links setup/removal. * @loopback_enabled: Set true if this PHY has been loopbacked successfully. * @downshifted_rate: Set true if link speed has been downshifted. * @is_on_sfp_module: Set true if PHY is located on an SFP module. * @mac_managed_pm: Set true if MAC driver takes of suspending/resuming PHY * @state: State of the PHY for management purposes * @dev_flags: Device-specific flags used by the PHY driver. * Bits [15:0] are free to use by the PHY driver to communicate * driver specific behavior. * Bits [23:16] are currently reserved for future use. * Bits [31:24] are reserved for defining generic * PHY driver behavior. * @irq: IRQ number of the PHY's interrupt (-1 if none) * @phy_timer: The timer for handling the state machine * @phylink: Pointer to phylink instance for this PHY * @sfp_bus_attached: Flag indicating whether the SFP bus has been attached * @sfp_bus: SFP bus attached to this PHY's fiber port * @attached_dev: The attached enet driver's device instance ptr * @adjust_link: Callback for the enet controller to respond to changes: in the * link state. * @phy_link_change: Callback for phylink for notification of link change * @macsec_ops: MACsec offloading ops. * * @speed: Current link speed * @duplex: Current duplex * @port: Current port * @pause: Current pause * @asym_pause: Current asymmetric pause * @supported: Combined MAC/PHY supported linkmodes * @advertising: Currently advertised linkmodes * @adv_old: Saved advertised while power saving for WoL * @lp_advertising: Current link partner advertised linkmodes * @eee_broken_modes: Energy efficient ethernet modes which should be prohibited * @autoneg: Flag autoneg being used * @link: Current link state * @autoneg_complete: Flag auto negotiation of the link has completed * @mdix: Current crossover * @mdix_ctrl: User setting of crossover * @interrupts: Flag interrupts have been enabled * @irq_suspended: Flag indicating PHY is suspended and therefore interrupt * handling shall be postponed until PHY has resumed * @irq_rerun: Flag indicating interrupts occurred while PHY was suspended, * requiring a rerun of the interrupt handler after resume * @interface: enum phy_interface_t value * @skb: Netlink message for cable diagnostics * @nest: Netlink nest used for cable diagnostics * @ehdr: nNtlink header for cable diagnostics * @phy_led_triggers: Array of LED triggers * @phy_num_led_triggers: Number of triggers in @phy_led_triggers * @led_link_trigger: LED trigger for link up/down * @last_triggered: last LED trigger for link speed * @master_slave_set: User requested master/slave configuration * @master_slave_get: Current master/slave advertisement * @master_slave_state: Current master/slave configuration * @mii_ts: Pointer to time stamper callbacks * @lock: Mutex for serialization access to PHY * @state_queue: Work queue for state machine * @shared: Pointer to private data shared by phys in one package * @priv: Pointer to driver private data * * interrupts currently only supports enabled or disabled, * but could be changed in the future to support enabling * and disabling specific interrupts * * Contains some infrastructure for polling and interrupt * handling, as well as handling shifts in PHY hardware state */ struct phy_device { struct mdio_device mdio; /* Information about the PHY type */ /* And management functions */ struct phy_driver *drv; u32 phy_id; struct phy_c45_device_ids c45_ids; unsigned is_c45:1; unsigned is_internal:1; unsigned is_pseudo_fixed_link:1; unsigned is_gigabit_capable:1; unsigned has_fixups:1; unsigned suspended:1; unsigned suspended_by_mdio_bus:1; unsigned sysfs_links:1; unsigned loopback_enabled:1; unsigned downshifted_rate:1; unsigned is_on_sfp_module:1; unsigned mac_managed_pm:1; unsigned autoneg:1; /* The most recently read link state */ unsigned link:1; unsigned autoneg_complete:1; /* Interrupts are enabled */ unsigned interrupts:1; unsigned irq_suspended:1; unsigned irq_rerun:1; enum phy_state state; u32 dev_flags; phy_interface_t interface; /* * forced speed & duplex (no autoneg) * partner speed & duplex & pause (autoneg) */ int speed; int duplex; int port; int pause; int asym_pause; u8 master_slave_get; u8 master_slave_set; u8 master_slave_state; /* Union of PHY and Attached devices' supported link modes */ /* See ethtool.h for more info */ __ETHTOOL_DECLARE_LINK_MODE_MASK(supported); __ETHTOOL_DECLARE_LINK_MODE_MASK(advertising); __ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising); /* used with phy_speed_down */ __ETHTOOL_DECLARE_LINK_MODE_MASK(adv_old); /* Energy efficient ethernet modes which should be prohibited */ u32 eee_broken_modes; #ifdef CONFIG_LED_TRIGGER_PHY struct phy_led_trigger *phy_led_triggers; unsigned int phy_num_led_triggers; struct phy_led_trigger *last_triggered; struct phy_led_trigger *led_link_trigger; #endif /* * Interrupt number for this PHY * -1 means no interrupt */ int irq; /* private data pointer */ /* For use by PHYs to maintain extra state */ void *priv; /* shared data pointer */ /* For use by PHYs inside the same package that need a shared state. */ struct phy_package_shared *shared; /* Reporting cable test results */ struct sk_buff *skb; void *ehdr; struct nlattr *nest; /* Interrupt and Polling infrastructure */ struct delayed_work state_queue; struct mutex lock; /* This may be modified under the rtnl lock */ bool sfp_bus_attached; struct sfp_bus *sfp_bus; struct phylink *phylink; struct net_device *attached_dev; struct mii_timestamper *mii_ts; u8 mdix; u8 mdix_ctrl; void (*phy_link_change)(struct phy_device *phydev, bool up); void (*adjust_link)(struct net_device *dev); #if IS_ENABLED(CONFIG_MACSEC) /* MACsec management functions */ const struct macsec_ops *macsec_ops; #endif }; static inline struct phy_device *to_phy_device(const struct device *dev) { return container_of(to_mdio_device(dev), struct phy_device, mdio); } /** * struct phy_tdr_config - Configuration of a TDR raw test * * @first: Distance for first data collection point * @last: Distance for last data collection point * @step: Step between data collection points * @pair: Bitmap of cable pairs to collect data for * * A structure containing possible configuration parameters * for a TDR cable test. The driver does not need to implement * all the parameters, but should report what is actually used. * All distances are in centimeters. */ struct phy_tdr_config { u32 first; u32 last; u32 step; s8 pair; }; #define PHY_PAIR_ALL -1 /** * struct phy_driver - Driver structure for a particular PHY type * * @mdiodrv: Data common to all MDIO devices * @phy_id: The result of reading the UID registers of this PHY * type, and ANDing them with the phy_id_mask. This driver * only works for PHYs with IDs which match this field * @name: The friendly name of this PHY type * @phy_id_mask: Defines the important bits of the phy_id * @features: A mandatory list of features (speed, duplex, etc) * supported by this PHY * @flags: A bitfield defining certain other features this PHY * supports (like interrupts) * @driver_data: Static driver data * * All functions are optional. If config_aneg or read_status * are not implemented, the phy core uses the genphy versions. * Note that none of these functions should be called from * interrupt time. The goal is for the bus read/write functions * to be able to block when the bus transaction is happening, * and be freed up by an interrupt (The MPC85xx has this ability, * though it is not currently supported in the driver). */ struct phy_driver { struct mdio_driver_common mdiodrv; u32 phy_id; char *name; u32 phy_id_mask; const unsigned long * const features; u32 flags; const void *driver_data; /** * @soft_reset: Called to issue a PHY software reset */ int (*soft_reset)(struct phy_device *phydev); /** * @config_init: Called to initialize the PHY, * including after a reset */ int (*config_init)(struct phy_device *phydev); /** * @probe: Called during discovery. Used to set * up device-specific structures, if any */ int (*probe)(struct phy_device *phydev); /** * @get_features: Probe the hardware to determine what * abilities it has. Should only set phydev->supported. */ int (*get_features)(struct phy_device *phydev); /* PHY Power Management */ /** @suspend: Suspend the hardware, saving state if needed */ int (*suspend)(struct phy_device *phydev); /** @resume: Resume the hardware, restoring state if needed */ int (*resume)(struct phy_device *phydev); /** * @config_aneg: Configures the advertisement and resets * autonegotiation if phydev->autoneg is on, * forces the speed to the current settings in phydev * if phydev->autoneg is off */ int (*config_aneg)(struct phy_device *phydev); /** @aneg_done: Determines the auto negotiation result */ int (*aneg_done)(struct phy_device *phydev); /** @read_status: Determines the negotiated speed and duplex */ int (*read_status)(struct phy_device *phydev); /** * @config_intr: Enables or disables interrupts. * It should also clear any pending interrupts prior to enabling the * IRQs and after disabling them. */ int (*config_intr)(struct phy_device *phydev); /** @handle_interrupt: Override default interrupt handling */ irqreturn_t (*handle_interrupt)(struct phy_device *phydev); /** @remove: Clears up any memory if needed */ void (*remove)(struct phy_device *phydev); /** * @match_phy_device: Returns true if this is a suitable * driver for the given phydev. If NULL, matching is based on * phy_id and phy_id_mask. */ int (*match_phy_device)(struct phy_device *phydev); /** * @set_wol: Some devices (e.g. qnap TS-119P II) require PHY * register changes to enable Wake on LAN, so set_wol is * provided to be called in the ethernet driver's set_wol * function. */ int (*set_wol)(struct phy_device *dev, struct ethtool_wolinfo *wol); /** * @get_wol: See set_wol, but for checking whether Wake on LAN * is enabled. */ void (*get_wol)(struct phy_device *dev, struct ethtool_wolinfo *wol); /** * @link_change_notify: Called to inform a PHY device driver * when the core is about to change the link state. This * callback is supposed to be used as fixup hook for drivers * that need to take action when the link state * changes. Drivers are by no means allowed to mess with the * PHY device structure in their implementations. */ void (*link_change_notify)(struct phy_device *dev); /** * @read_mmd: PHY specific driver override for reading a MMD * register. This function is optional for PHY specific * drivers. When not provided, the default MMD read function * will be used by phy_read_mmd(), which will use either a * direct read for Clause 45 PHYs or an indirect read for * Clause 22 PHYs. devnum is the MMD device number within the * PHY device, regnum is the register within the selected MMD * device. */ int (*read_mmd)(struct phy_device *dev, int devnum, u16 regnum); /** * @write_mmd: PHY specific driver override for writing a MMD * register. This function is optional for PHY specific * drivers. When not provided, the default MMD write function * will be used by phy_write_mmd(), which will use either a * direct write for Clause 45 PHYs, or an indirect write for * Clause 22 PHYs. devnum is the MMD device number within the * PHY device, regnum is the register within the selected MMD * device. val is the value to be written. */ int (*write_mmd)(struct phy_device *dev, int devnum, u16 regnum, u16 val); /** @read_page: Return the current PHY register page number */ int (*read_page)(struct phy_device *dev); /** @write_page: Set the current PHY register page number */ int (*write_page)(struct phy_device *dev, int page); /** * @module_info: Get the size and type of the eeprom contained * within a plug-in module */ int (*module_info)(struct phy_device *dev, struct ethtool_modinfo *modinfo); /** * @module_eeprom: Get the eeprom information from the plug-in * module */ int (*module_eeprom)(struct phy_device *dev, struct ethtool_eeprom *ee, u8 *data); /** @cable_test_start: Start a cable test */ int (*cable_test_start)(struct phy_device *dev); /** @cable_test_tdr_start: Start a raw TDR cable test */ int (*cable_test_tdr_start)(struct phy_device *dev, const struct phy_tdr_config *config); /** * @cable_test_get_status: Once per second, or on interrupt, * request the status of the test. */ int (*cable_test_get_status)(struct phy_device *dev, bool *finished); /* Get statistics from the PHY using ethtool */ /** @get_sset_count: Number of statistic counters */ int (*get_sset_count)(struct phy_device *dev); /** @get_strings: Names of the statistic counters */ void (*get_strings)(struct phy_device *dev, u8 *data); /** @get_stats: Return the statistic counter values */ void (*get_stats)(struct phy_device *dev, struct ethtool_stats *stats, u64 *data); /* Get and Set PHY tunables */ /** @get_tunable: Return the value of a tunable */ int (*get_tunable)(struct phy_device *dev, struct ethtool_tunable *tuna, void *data); /** @set_tunable: Set the value of a tunable */ int (*set_tunable)(struct phy_device *dev, struct ethtool_tunable *tuna, const void *data); /** @set_loopback: Set the loopback mood of the PHY */ int (*set_loopback)(struct phy_device *dev, bool enable); /** @get_sqi: Get the signal quality indication */ int (*get_sqi)(struct phy_device *dev); /** @get_sqi_max: Get the maximum signal quality indication */ int (*get_sqi_max)(struct phy_device *dev); }; #define to_phy_driver(d) container_of(to_mdio_common_driver(d), \ struct phy_driver, mdiodrv) #define PHY_ANY_ID "MATCH ANY PHY" #define PHY_ANY_UID 0xffffffff #define PHY_ID_MATCH_EXACT(id) .phy_id = (id), .phy_id_mask = GENMASK(31, 0) #define PHY_ID_MATCH_MODEL(id) .phy_id = (id), .phy_id_mask = GENMASK(31, 4) #define PHY_ID_MATCH_VENDOR(id) .phy_id = (id), .phy_id_mask = GENMASK(31, 10) /* A Structure for boards to register fixups with the PHY Lib */ struct phy_fixup { struct list_head list; char bus_id[MII_BUS_ID_SIZE + 3]; u32 phy_uid; u32 phy_uid_mask; int (*run)(struct phy_device *phydev); }; const char *phy_speed_to_str(int speed); const char *phy_duplex_to_str(unsigned int duplex); /* A structure for mapping a particular speed and duplex * combination to a particular SUPPORTED and ADVERTISED value */ struct phy_setting { u32 speed; u8 duplex; u8 bit; }; const struct phy_setting * phy_lookup_setting(int speed, int duplex, const unsigned long *mask, bool exact); size_t phy_speeds(unsigned int *speeds, size_t size, unsigned long *mask); void of_set_phy_supported(struct phy_device *phydev); void of_set_phy_eee_broken(struct phy_device *phydev); int phy_speed_down_core(struct phy_device *phydev); /** * phy_is_started - Convenience function to check whether PHY is started * @phydev: The phy_device struct */ static inline bool phy_is_started(struct phy_device *phydev) { return phydev->state >= PHY_UP; } void phy_resolve_aneg_pause(struct phy_device *phydev); void phy_resolve_aneg_linkmode(struct phy_device *phydev); void phy_check_downshift(struct phy_device *phydev); /** * phy_read - Convenience function for reading a given PHY register * @phydev: the phy_device struct * @regnum: register number to read * * NOTE: MUST NOT be called from interrupt context, * because the bus read/write functions may wait for an interrupt * to conclude the operation. */ static inline int phy_read(struct phy_device *phydev, u32 regnum) { return mdiobus_read(phydev->mdio.bus, phydev->mdio.addr, regnum); } #define phy_read_poll_timeout(phydev, regnum, val, cond, sleep_us, \ timeout_us, sleep_before_read) \ ({ \ int __ret = read_poll_timeout(phy_read, val, (cond) || val < 0, \ sleep_us, timeout_us, sleep_before_read, phydev, regnum); \ if (val < 0) \ __ret = val; \ if (__ret) \ phydev_err(phydev, "%s failed: %d\n", __func__, __ret); \ __ret; \ }) /** * __phy_read - convenience function for reading a given PHY register * @phydev: the phy_device struct * @regnum: register number to read * * The caller must have taken the MDIO bus lock. */ static inline int __phy_read(struct phy_device *phydev, u32 regnum) { return __mdiobus_read(phydev->mdio.bus, phydev->mdio.addr, regnum); } /** * phy_write - Convenience function for writing a given PHY register * @phydev: the phy_device struct * @regnum: register number to write * @val: value to write to @regnum * * NOTE: MUST NOT be called from interrupt context, * because the bus read/write functions may wait for an interrupt * to conclude the operation. */ static inline int phy_write(struct phy_device *phydev, u32 regnum, u16 val) { return mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, regnum, val); } /** * __phy_write - Convenience function for writing a given PHY register * @phydev: the phy_device struct * @regnum: register number to write * @val: value to write to @regnum * * The caller must have taken the MDIO bus lock. */ static inline int __phy_write(struct phy_device *phydev, u32 regnum, u16 val) { return __mdiobus_write(phydev->mdio.bus, phydev->mdio.addr, regnum, val); } /** * __phy_modify_changed() - Convenience function for modifying a PHY register * @phydev: a pointer to a &struct phy_device * @regnum: register number * @mask: bit mask of bits to clear * @set: bit mask of bits to set * * Unlocked helper function which allows a PHY register to be modified as * new register value = (old register value & ~mask) | set * * Returns negative errno, 0 if there was no change, and 1 in case of change */ static inline int __phy_modify_changed(struct phy_device *phydev, u32 regnum, u16 mask, u16 set) { return __mdiobus_modify_changed(phydev->mdio.bus, phydev->mdio.addr, regnum, mask, set); } /* * phy_read_mmd - Convenience function for reading a register * from an MMD on a given PHY. */ int phy_read_mmd(struct phy_device *phydev, int devad, u32 regnum); /** * phy_read_mmd_poll_timeout - Periodically poll a PHY register until a * condition is met or a timeout occurs * * @phydev: The phy_device struct * @devaddr: The MMD to read from * @regnum: The register on the MMD to read * @val: Variable to read the register into * @cond: Break condition (usually involving @val) * @sleep_us: Maximum time to sleep between reads in us (0 * tight-loops). Should be less than ~20ms since usleep_range * is used (see Documentation/timers/timers-howto.rst). * @timeout_us: Timeout in us, 0 means never timeout * @sleep_before_read: if it is true, sleep @sleep_us before read. * Returns 0 on success and -ETIMEDOUT upon a timeout. In either * case, the last read value at @args is stored in @val. Must not * be called from atomic context if sleep_us or timeout_us are used. */ #define phy_read_mmd_poll_timeout(phydev, devaddr, regnum, val, cond, \ sleep_us, timeout_us, sleep_before_read) \ ({ \ int __ret = read_poll_timeout(phy_read_mmd, val, (cond) || val < 0, \ sleep_us, timeout_us, sleep_before_read, \ phydev, devaddr, regnum); \ if (val < 0) \ __ret = val; \ if (__ret) \ phydev_err(phydev, "%s failed: %d\n", __func__, __ret); \ __ret; \ }) /* * __phy_read_mmd - Convenience function for reading a register * from an MMD on a given PHY. */ int __phy_read_mmd(struct phy_device *phydev, int devad, u32 regnum); /* * phy_write_mmd - Convenience function for writing a register * on an MMD on a given PHY. */ int phy_write_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val); /* * __phy_write_mmd - Convenience function for writing a register * on an MMD on a given PHY. */ int __phy_write_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val); int __phy_modify_changed(struct phy_device *phydev, u32 regnum, u16 mask, u16 set); int phy_modify_changed(struct phy_device *phydev, u32 regnum, u16 mask, u16 set); int __phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set); int phy_modify(struct phy_device *phydev, u32 regnum, u16 mask, u16 set); int __phy_modify_mmd_changed(struct phy_device *phydev, int devad, u32 regnum, u16 mask, u16 set); int phy_modify_mmd_changed(struct phy_device *phydev, int devad, u32 regnum, u16 mask, u16 set); int __phy_modify_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 mask, u16 set); int phy_modify_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 mask, u16 set); /** * __phy_set_bits - Convenience function for setting bits in a PHY register * @phydev: the phy_device struct * @regnum: register number to write * @val: bits to set * * The caller must have taken the MDIO bus lock. */ static inline int __phy_set_bits(struct phy_device *phydev, u32 regnum, u16 val) { return __phy_modify(phydev, regnum, 0, val); } /** * __phy_clear_bits - Convenience function for clearing bits in a PHY register * @phydev: the phy_device struct * @regnum: register number to write * @val: bits to clear * * The caller must have taken the MDIO bus lock. */ static inline int __phy_clear_bits(struct phy_device *phydev, u32 regnum, u16 val) { return __phy_modify(phydev, regnum, val, 0); } /** * phy_set_bits - Convenience function for setting bits in a PHY register * @phydev: the phy_device struct * @regnum: register number to write * @val: bits to set */ static inline int phy_set_bits(struct phy_device *phydev, u32 regnum, u16 val) { return phy_modify(phydev, regnum, 0, val); } /** * phy_clear_bits - Convenience function for clearing bits in a PHY register * @phydev: the phy_device struct * @regnum: register number to write * @val: bits to clear */ static inline int phy_clear_bits(struct phy_device *phydev, u32 regnum, u16 val) { return phy_modify(phydev, regnum, val, 0); } /** * __phy_set_bits_mmd - Convenience function for setting bits in a register * on MMD * @phydev: the phy_device struct * @devad: the MMD containing register to modify * @regnum: register number to modify * @val: bits to set * * The caller must have taken the MDIO bus lock. */ static inline int __phy_set_bits_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val) { return __phy_modify_mmd(phydev, devad, regnum, 0, val); } /** * __phy_clear_bits_mmd - Convenience function for clearing bits in a register * on MMD * @phydev: the phy_device struct * @devad: the MMD containing register to modify * @regnum: register number to modify * @val: bits to clear * * The caller must have taken the MDIO bus lock. */ static inline int __phy_clear_bits_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val) { return __phy_modify_mmd(phydev, devad, regnum, val, 0); } /** * phy_set_bits_mmd - Convenience function for setting bits in a register * on MMD * @phydev: the phy_device struct * @devad: the MMD containing register to modify * @regnum: register number to modify * @val: bits to set */ static inline int phy_set_bits_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val) { return phy_modify_mmd(phydev, devad, regnum, 0, val); } /** * phy_clear_bits_mmd - Convenience function for clearing bits in a register * on MMD * @phydev: the phy_device struct * @devad: the MMD containing register to modify * @regnum: register number to modify * @val: bits to clear */ static inline int phy_clear_bits_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val) { return phy_modify_mmd(phydev, devad, regnum, val, 0); } /** * phy_interrupt_is_valid - Convenience function for testing a given PHY irq * @phydev: the phy_device struct * * NOTE: must be kept in sync with addition/removal of PHY_POLL and * PHY_MAC_INTERRUPT */ static inline bool phy_interrupt_is_valid(struct phy_device *phydev) { return phydev->irq != PHY_POLL && phydev->irq != PHY_MAC_INTERRUPT; } /** * phy_polling_mode - Convenience function for testing whether polling is * used to detect PHY status changes * @phydev: the phy_device struct */ static inline bool phy_polling_mode(struct phy_device *phydev) { if (phydev->state == PHY_CABLETEST) if (phydev->drv->flags & PHY_POLL_CABLE_TEST) return true; return phydev->irq == PHY_POLL; } /** * phy_has_hwtstamp - Tests whether a PHY time stamp configuration. * @phydev: the phy_device struct */ static inline bool phy_has_hwtstamp(struct phy_device *phydev) { return phydev && phydev->mii_ts && phydev->mii_ts->hwtstamp; } /** * phy_has_rxtstamp - Tests whether a PHY supports receive time stamping. * @phydev: the phy_device struct */ static inline bool phy_has_rxtstamp(struct phy_device *phydev) { return phydev && phydev->mii_ts && phydev->mii_ts->rxtstamp; } /** * phy_has_tsinfo - Tests whether a PHY reports time stamping and/or * PTP hardware clock capabilities. * @phydev: the phy_device struct */ static inline bool phy_has_tsinfo(struct phy_device *phydev) { return phydev && phydev->mii_ts && phydev->mii_ts->ts_info; } /** * phy_has_txtstamp - Tests whether a PHY supports transmit time stamping. * @phydev: the phy_device struct */ static inline bool phy_has_txtstamp(struct phy_device *phydev) { return phydev && phydev->mii_ts && phydev->mii_ts->txtstamp; } static inline int phy_hwtstamp(struct phy_device *phydev, struct ifreq *ifr) { return phydev->mii_ts->hwtstamp(phydev->mii_ts, ifr); } static inline bool phy_rxtstamp(struct phy_device *phydev, struct sk_buff *skb, int type) { return phydev->mii_ts->rxtstamp(phydev->mii_ts, skb, type); } static inline int phy_ts_info(struct phy_device *phydev, struct ethtool_ts_info *tsinfo) { return phydev->mii_ts->ts_info(phydev->mii_ts, tsinfo); } static inline void phy_txtstamp(struct phy_device *phydev, struct sk_buff *skb, int type) { phydev->mii_ts->txtstamp(phydev->mii_ts, skb, type); } /** * phy_is_internal - Convenience function for testing if a PHY is internal * @phydev: the phy_device struct */ static inline bool phy_is_internal(struct phy_device *phydev) { return phydev->is_internal; } /** * phy_on_sfp - Convenience function for testing if a PHY is on an SFP module * @phydev: the phy_device struct */ static inline bool phy_on_sfp(struct phy_device *phydev) { return phydev->is_on_sfp_module; } /** * phy_interface_mode_is_rgmii - Convenience function for testing if a * PHY interface mode is RGMII (all variants) * @mode: the &phy_interface_t enum */ static inline bool phy_interface_mode_is_rgmii(phy_interface_t mode) { return mode >= PHY_INTERFACE_MODE_RGMII && mode <= PHY_INTERFACE_MODE_RGMII_TXID; }; /** * phy_interface_mode_is_8023z() - does the PHY interface mode use 802.3z * negotiation * @mode: one of &enum phy_interface_t * * Returns true if the PHY interface mode uses the 16-bit negotiation * word as defined in 802.3z. (See 802.3-2015 37.2.1 Config_Reg encoding) */ static inline bool phy_interface_mode_is_8023z(phy_interface_t mode) { return mode == PHY_INTERFACE_MODE_1000BASEX || mode == PHY_INTERFACE_MODE_2500BASEX; } /** * phy_interface_is_rgmii - Convenience function for testing if a PHY interface * is RGMII (all variants) * @phydev: the phy_device struct */ static inline bool phy_interface_is_rgmii(struct phy_device *phydev) { return phy_interface_mode_is_rgmii(phydev->interface); }; /** * phy_is_pseudo_fixed_link - Convenience function for testing if this * PHY is the CPU port facing side of an Ethernet switch, or similar. * @phydev: the phy_device struct */ static inline bool phy_is_pseudo_fixed_link(struct phy_device *phydev) { return phydev->is_pseudo_fixed_link; } int phy_save_page(struct phy_device *phydev); int phy_select_page(struct phy_device *phydev, int page); int phy_restore_page(struct phy_device *phydev, int oldpage, int ret); int phy_read_paged(struct phy_device *phydev, int page, u32 regnum); int phy_write_paged(struct phy_device *phydev, int page, u32 regnum, u16 val); int phy_modify_paged_changed(struct phy_device *phydev, int page, u32 regnum, u16 mask, u16 set); int phy_modify_paged(struct phy_device *phydev, int page, u32 regnum, u16 mask, u16 set); struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id, bool is_c45, struct phy_c45_device_ids *c45_ids); #if IS_ENABLED(CONFIG_PHYLIB) int fwnode_get_phy_id(struct fwnode_handle *fwnode, u32 *phy_id); struct mdio_device *fwnode_mdio_find_device(struct fwnode_handle *fwnode); struct phy_device *fwnode_phy_find_device(struct fwnode_handle *phy_fwnode); struct phy_device *device_phy_find_device(struct device *dev); struct fwnode_handle *fwnode_get_phy_node(struct fwnode_handle *fwnode); struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45); int phy_device_register(struct phy_device *phy); void phy_device_free(struct phy_device *phydev); #else static inline int fwnode_get_phy_id(struct fwnode_handle *fwnode, u32 *phy_id) { return 0; } static inline struct mdio_device *fwnode_mdio_find_device(struct fwnode_handle *fwnode) { return 0; } static inline struct phy_device *fwnode_phy_find_device(struct fwnode_handle *phy_fwnode) { return NULL; } static inline struct phy_device *device_phy_find_device(struct device *dev) { return NULL; } static inline struct fwnode_handle *fwnode_get_phy_node(struct fwnode_handle *fwnode) { return NULL; } static inline struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45) { return NULL; } static inline int phy_device_register(struct phy_device *phy) { return 0; } static inline void phy_device_free(struct phy_device *phydev) { } #endif /* CONFIG_PHYLIB */ void phy_device_remove(struct phy_device *phydev); int phy_get_c45_ids(struct phy_device *phydev); int phy_init_hw(struct phy_device *phydev); int phy_suspend(struct phy_device *phydev); int phy_resume(struct phy_device *phydev); int __phy_resume(struct phy_device *phydev); int phy_loopback(struct phy_device *phydev, bool enable); void phy_sfp_attach(void *upstream, struct sfp_bus *bus); void phy_sfp_detach(void *upstream, struct sfp_bus *bus); int phy_sfp_probe(struct phy_device *phydev, const struct sfp_upstream_ops *ops); struct phy_device *phy_attach(struct net_device *dev, const char *bus_id, phy_interface_t interface); struct phy_device *phy_find_first(struct mii_bus *bus); int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, u32 flags, phy_interface_t interface); int phy_connect_direct(struct net_device *dev, struct phy_device *phydev, void (*handler)(struct net_device *), phy_interface_t interface); struct phy_device *phy_connect(struct net_device *dev, const char *bus_id, void (*handler)(struct net_device *), phy_interface_t interface); void phy_disconnect(struct phy_device *phydev); void phy_detach(struct phy_device *phydev); void phy_start(struct phy_device *phydev); void phy_stop(struct phy_device *phydev); int phy_config_aneg(struct phy_device *phydev); int phy_start_aneg(struct phy_device *phydev); int phy_aneg_done(struct phy_device *phydev); int phy_speed_down(struct phy_device *phydev, bool sync); int phy_speed_up(struct phy_device *phydev); int phy_restart_aneg(struct phy_device *phydev); int phy_reset_after_clk_enable(struct phy_device *phydev); #if IS_ENABLED(CONFIG_PHYLIB) int phy_start_cable_test(struct phy_device *phydev, struct netlink_ext_ack *extack); int phy_start_cable_test_tdr(struct phy_device *phydev, struct netlink_ext_ack *extack, const struct phy_tdr_config *config); #else static inline int phy_start_cable_test(struct phy_device *phydev, struct netlink_ext_ack *extack) { NL_SET_ERR_MSG(extack, "Kernel not compiled with PHYLIB support"); return -EOPNOTSUPP; } static inline int phy_start_cable_test_tdr(struct phy_device *phydev, struct netlink_ext_ack *extack, const struct phy_tdr_config *config) { NL_SET_ERR_MSG(extack, "Kernel not compiled with PHYLIB support"); return -EOPNOTSUPP; } #endif int phy_cable_test_result(struct phy_device *phydev, u8 pair, u16 result); int phy_cable_test_fault_length(struct phy_device *phydev, u8 pair, u16 cm); static inline void phy_device_reset(struct phy_device *phydev, int value) { mdio_device_reset(&phydev->mdio, value); } #define phydev_err(_phydev, format, args...) \ dev_err(&_phydev->mdio.dev, format, ##args) #define phydev_info(_phydev, format, args...) \ dev_info(&_phydev->mdio.dev, format, ##args) #define phydev_warn(_phydev, format, args...) \ dev_warn(&_phydev->mdio.dev, format, ##args) #define phydev_dbg(_phydev, format, args...) \ dev_dbg(&_phydev->mdio.dev, format, ##args) static inline const char *phydev_name(const struct phy_device *phydev) { return dev_name(&phydev->mdio.dev); } static inline void phy_lock_mdio_bus(struct phy_device *phydev) { mutex_lock(&phydev->mdio.bus->mdio_lock); } static inline void phy_unlock_mdio_bus(struct phy_device *phydev) { mutex_unlock(&phydev->mdio.bus->mdio_lock); } void phy_attached_print(struct phy_device *phydev, const char *fmt, ...) __printf(2, 3); char *phy_attached_info_irq(struct phy_device *phydev) __malloc; void phy_attached_info(struct phy_device *phydev); /* Clause 22 PHY */ int genphy_read_abilities(struct phy_device *phydev); int genphy_setup_forced(struct phy_device *phydev); int genphy_restart_aneg(struct phy_device *phydev); int genphy_check_and_restart_aneg(struct phy_device *phydev, bool restart); int genphy_config_eee_advert(struct phy_device *phydev); int __genphy_config_aneg(struct phy_device *phydev, bool changed); int genphy_aneg_done(struct phy_device *phydev); int genphy_update_link(struct phy_device *phydev); int genphy_read_lpa(struct phy_device *phydev); int genphy_read_status_fixed(struct phy_device *phydev); int genphy_read_status(struct phy_device *phydev); int genphy_suspend(struct phy_device *phydev); int genphy_resume(struct phy_device *phydev); int genphy_loopback(struct phy_device *phydev, bool enable); int genphy_soft_reset(struct phy_device *phydev); irqreturn_t genphy_handle_interrupt_no_ack(struct phy_device *phydev); static inline int genphy_config_aneg(struct phy_device *phydev) { return __genphy_config_aneg(phydev, false); } static inline int genphy_no_config_intr(struct phy_device *phydev) { return 0; } int genphy_read_mmd_unsupported(struct phy_device *phdev, int devad, u16 regnum); int genphy_write_mmd_unsupported(struct phy_device *phdev, int devnum, u16 regnum, u16 val); /* Clause 37 */ int genphy_c37_config_aneg(struct phy_device *phydev); int genphy_c37_read_status(struct phy_device *phydev); /* Clause 45 PHY */ int genphy_c45_restart_aneg(struct phy_device *phydev); int genphy_c45_check_and_restart_aneg(struct phy_device *phydev, bool restart); int genphy_c45_aneg_done(struct phy_device *phydev); int genphy_c45_read_link(struct phy_device *phydev); int genphy_c45_read_lpa(struct phy_device *phydev); int genphy_c45_read_pma(struct phy_device *phydev); int genphy_c45_pma_setup_forced(struct phy_device *phydev); int genphy_c45_an_config_aneg(struct phy_device *phydev); int genphy_c45_an_disable_aneg(struct phy_device *phydev); int genphy_c45_read_mdix(struct phy_device *phydev); int genphy_c45_pma_read_abilities(struct phy_device *phydev); int genphy_c45_read_status(struct phy_device *phydev); int genphy_c45_config_aneg(struct phy_device *phydev); int genphy_c45_loopback(struct phy_device *phydev, bool enable); int genphy_c45_pma_resume(struct phy_device *phydev); int genphy_c45_pma_suspend(struct phy_device *phydev); /* Generic C45 PHY driver */ extern struct phy_driver genphy_c45_driver; /* The gen10g_* functions are the old Clause 45 stub */ int gen10g_config_aneg(struct phy_device *phydev); static inline int phy_read_status(struct phy_device *phydev) { if (!phydev->drv) return -EIO; if (phydev->drv->read_status) return phydev->drv->read_status(phydev); else return genphy_read_status(phydev); } void phy_driver_unregister(struct phy_driver *drv); void phy_drivers_unregister(struct phy_driver *drv, int n); int phy_driver_register(struct phy_driver *new_driver, struct module *owner); int phy_drivers_register(struct phy_driver *new_driver, int n, struct module *owner); void phy_error(struct phy_device *phydev); void phy_state_machine(struct work_struct *work); void phy_queue_state_machine(struct phy_device *phydev, unsigned long jiffies); void phy_trigger_machine(struct phy_device *phydev); void phy_mac_interrupt(struct phy_device *phydev); void phy_start_machine(struct phy_device *phydev); void phy_stop_machine(struct phy_device *phydev); void phy_ethtool_ksettings_get(struct phy_device *phydev, struct ethtool_link_ksettings *cmd); int phy_ethtool_ksettings_set(struct phy_device *phydev, const struct ethtool_link_ksettings *cmd); int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd); int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); int phy_do_ioctl_running(struct net_device *dev, struct ifreq *ifr, int cmd); int phy_disable_interrupts(struct phy_device *phydev); void phy_request_interrupt(struct phy_device *phydev); void phy_free_interrupt(struct phy_device *phydev); void phy_print_status(struct phy_device *phydev); int phy_set_max_speed(struct phy_device *phydev, u32 max_speed); void phy_remove_link_mode(struct phy_device *phydev, u32 link_mode); void phy_advertise_supported(struct phy_device *phydev); void phy_support_sym_pause(struct phy_device *phydev); void phy_support_asym_pause(struct phy_device *phydev); void phy_set_sym_pause(struct phy_device *phydev, bool rx, bool tx, bool autoneg); void phy_set_asym_pause(struct phy_device *phydev, bool rx, bool tx); bool phy_validate_pause(struct phy_device *phydev, struct ethtool_pauseparam *pp); void phy_get_pause(struct phy_device *phydev, bool *tx_pause, bool *rx_pause); s32 phy_get_internal_delay(struct phy_device *phydev, struct device *dev, const int *delay_values, int size, bool is_rx); void phy_resolve_pause(unsigned long *local_adv, unsigned long *partner_adv, bool *tx_pause, bool *rx_pause); int phy_register_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask, int (*run)(struct phy_device *)); int phy_register_fixup_for_id(const char *bus_id, int (*run)(struct phy_device *)); int phy_register_fixup_for_uid(u32 phy_uid, u32 phy_uid_mask, int (*run)(struct phy_device *)); int phy_unregister_fixup(const char *bus_id, u32 phy_uid, u32 phy_uid_mask); int phy_unregister_fixup_for_id(const char *bus_id); int phy_unregister_fixup_for_uid(u32 phy_uid, u32 phy_uid_mask); int phy_init_eee(struct phy_device *phydev, bool clk_stop_enable); int phy_get_eee_err(struct phy_device *phydev); int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data); int phy_ethtool_get_eee(struct phy_device *phydev, struct ethtool_eee *data); int phy_ethtool_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol); void phy_ethtool_get_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol); int phy_ethtool_get_link_ksettings(struct net_device *ndev, struct ethtool_link_ksettings *cmd); int phy_ethtool_set_link_ksettings(struct net_device *ndev, const struct ethtool_link_ksettings *cmd); int phy_ethtool_nway_reset(struct net_device *ndev); int phy_package_join(struct phy_device *phydev, int addr, size_t priv_size); void phy_package_leave(struct phy_device *phydev); int devm_phy_package_join(struct device *dev, struct phy_device *phydev, int addr, size_t priv_size); #if IS_ENABLED(CONFIG_PHYLIB) int __init mdio_bus_init(void); void mdio_bus_exit(void); #endif int phy_ethtool_get_strings(struct phy_device *phydev, u8 *data); int phy_ethtool_get_sset_count(struct phy_device *phydev); int phy_ethtool_get_stats(struct phy_device *phydev, struct ethtool_stats *stats, u64 *data); static inline int phy_package_read(struct phy_device *phydev, u32 regnum) { struct phy_package_shared *shared = phydev->shared; if (!shared) return -EIO; return mdiobus_read(phydev->mdio.bus, shared->addr, regnum); } static inline int __phy_package_read(struct phy_device *phydev, u32 regnum) { struct phy_package_shared *shared = phydev->shared; if (!shared) return -EIO; return __mdiobus_read(phydev->mdio.bus, shared->addr, regnum); } static inline int phy_package_write(struct phy_device *phydev, u32 regnum, u16 val) { struct phy_package_shared *shared = phydev->shared; if (!shared) return -EIO; return mdiobus_write(phydev->mdio.bus, shared->addr, regnum, val); } static inline int __phy_package_write(struct phy_device *phydev, u32 regnum, u16 val) { struct phy_package_shared *shared = phydev->shared; if (!shared) return -EIO; return __mdiobus_write(phydev->mdio.bus, shared->addr, regnum, val); } static inline bool __phy_package_set_once(struct phy_device *phydev, unsigned int b) { struct phy_package_shared *shared = phydev->shared; if (!shared) return false; return !test_and_set_bit(b, &shared->flags); } static inline bool phy_package_init_once(struct phy_device *phydev) { return __phy_package_set_once(phydev, PHY_SHARED_F_INIT_DONE); } static inline bool phy_package_probe_once(struct phy_device *phydev) { return __phy_package_set_once(phydev, PHY_SHARED_F_PROBE_DONE); } extern struct bus_type mdio_bus_type; struct mdio_board_info { const char *bus_id; char modalias[MDIO_NAME_SIZE]; int mdio_addr; const void *platform_data; }; #if IS_ENABLED(CONFIG_MDIO_DEVICE) int mdiobus_register_board_info(const struct mdio_board_info *info, unsigned int n); #else static inline int mdiobus_register_board_info(const struct mdio_board_info *i, unsigned int n) { return 0; } #endif /** * phy_module_driver() - Helper macro for registering PHY drivers * @__phy_drivers: array of PHY drivers to register * @__count: Numbers of members in array * * Helper macro for PHY drivers which do not do anything special in module * init/exit. Each module may only use this macro once, and calling it * replaces module_init() and module_exit(). */ #define phy_module_driver(__phy_drivers, __count) \ static int __init phy_module_init(void) \ { \ return phy_drivers_register(__phy_drivers, __count, THIS_MODULE); \ } \ module_init(phy_module_init); \ static void __exit phy_module_exit(void) \ { \ phy_drivers_unregister(__phy_drivers, __count); \ } \ module_exit(phy_module_exit) #define module_phy_driver(__phy_drivers) \ phy_module_driver(__phy_drivers, ARRAY_SIZE(__phy_drivers)) bool phy_driver_is_genphy(struct phy_device *phydev); bool phy_driver_is_genphy_10g(struct phy_device *phydev); #endif /* __PHY_H */