OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-197
/
arch
/
sparc
/
include
/
asm
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
11/17/2022 06:42:16 AM
rwxr-xr-x
📄
Kbuild
491 bytes
11/01/2022 04:52:05 PM
rw-r--r--
📄
agp.h
434 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
apb.h
1.06 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
asm-offsets.h
35 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
asm-prototypes.h
727 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
asm.h
1.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
asmmacro.h
1.16 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic.h
219 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic_32.h
2.26 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
atomic_64.h
3.34 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
auxio.h
310 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
auxio_32.h
2.55 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
auxio_64.h
3.18 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
backoff.h
2.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier.h
223 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier_32.h
160 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
barrier_64.h
1.96 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bbc.h
9.76 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitext.h
631 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitops.h
219 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitops_32.h
2.79 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
bitops_64.h
1.64 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
btext.h
145 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
bug.h
588 bytes
11/01/2022 04:52:05 PM
rw-r--r--
📄
bugs.h
404 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cache.h
649 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush.h
373 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush_32.h
1.97 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cacheflush_64.h
2.56 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cachetlb_32.h
882 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
chafsr.h
9.48 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
checksum.h
227 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
checksum_32.h
6.81 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
checksum_64.h
4.4 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
chmctrl.h
7.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
clock.h
231 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
clocksource.h
407 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg.h
223 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg_32.h
2.4 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cmpxchg_64.h
5.13 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
compat.h
6.45 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
compat_signal.h
565 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
contregs.h
1.9 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpu_type.h
579 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpudata.h
378 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpudata_32.h
729 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
cpudata_64.h
1.13 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
current.h
991 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dcr.h
728 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dcu.h
1.48 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay.h
215 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay_32.h
907 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
delay_64.h
403 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
device.h
565 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma-mapping.h
632 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
dma.h
6.6 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ebus_dma.h
1.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ecc.h
4.34 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
eeprom.h
254 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf.h
207 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf_32.h
3.19 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
elf_64.h
6.47 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
estate.h
2.23 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
extable_64.h
727 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
fb.h
680 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
fbio.h
2.26 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
fhc.h
4.43 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
floppy.h
219 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
floppy_32.h
9.74 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
floppy_64.h
18.83 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
fpumacro.h
710 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
ftrace.h
800 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
futex.h
215 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
futex_32.h
82 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
futex_64.h
2.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardirq.h
223 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardirq_32.h
334 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
hardirq_64.h
417 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
head.h
211 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
head_32.h
2.56 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
head_64.h
2.13 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hibernate.h
421 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
highmem.h
2.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hugetlb.h
2.09 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hvtramp.h
782 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
hw_irq.h
88 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
hypervisor.h
110.71 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ide.h
2.19 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
idprom.h
656 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
intr_queue.h
794 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
io-unit.h
2.41 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
io.h
620 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
io_32.h
3.51 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
io_64.h
10.66 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
ioctls.h
358 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
iommu.h
215 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
iommu_32.h
5.73 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
iommu_64.h
2.43 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq.h
207 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq_32.h
526 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
irq_64.h
3.06 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags.h
227 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags_32.h
1.03 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
irqflags_64.h
1.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
jump_label.h
1.01 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kdebug.h
219 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kdebug_32.h
1.99 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
kdebug_64.h
393 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kgdb.h
1014 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kmap_types.h
233 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
kprobes.h
1.41 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ldc.h
4.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
leon.h
7.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
leon_amba.h
8.09 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
leon_pci.h
512 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
lsu.h
1.04 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
machines.h
1.5 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mbus.h
2.93 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mc146818rtc.h
298 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mc146818rtc_32.h
699 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mc146818rtc_64.h
689 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mdesc.h
2.99 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
memctrl.h
311 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mman.h
304 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu.h
207 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_32.h
209 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_64.h
3.14 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context.h
239 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context_32.h
1.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmu_context_64.h
4.15 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mmzone.h
393 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
msi.h
774 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
mxcc.h
4.33 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
nmi.h
354 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
ns87303.h
3.22 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
obio.h
6.26 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
openprom.h
7.3 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
oplib.h
215 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
oplib_32.h
5.92 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
oplib_64.h
8.12 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
page.h
274 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
page_32.h
3.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
page_64.h
4.49 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
parport.h
5.68 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pbm.h
1.47 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci.h
207 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci_32.h
1.09 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pci_64.h
1.49 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pcic.h
5.77 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pcr.h
1.85 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
percpu.h
219 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
percpu_32.h
168 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
percpu_64.h
515 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
perf_event.h
802 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc.h
223 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc_32.h
1.91 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgalloc_64.h
2.85 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable.h
223 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable_32.h
11.35 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pgtable_64.h
30.71 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
pgtsrmmu.h
6.05 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
pil.h
1.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
processor.h
231 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
processor_32.h
3.13 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
processor_64.h
7.58 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
prom.h
2.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
psr.h
1.38 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ptrace.h
4.19 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
qrwlock.h
205 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
qspinlock.h
215 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
ross.h
5.52 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sbi.h
3.34 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
scratchpad.h
547 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
seccomp.h
225 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sections.h
289 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
setup.h
1.52 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sfafsr.h
3.14 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sfp-machine.h
239 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sfp-machine_32.h
6.79 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sfp-machine_64.h
3.1 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
shmparam.h
227 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
shmparam_32.h
253 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
shmparam_64.h
306 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sigcontext.h
2.55 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
signal.h
835 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp.h
207 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp_32.h
3.29 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
smp_64.h
1.84 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sparsemem.h
349 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock.h
227 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_32.h
4.22 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_64.h
409 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spinlock_types.h
549 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
spitfire.h
9.73 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
stacktrace.h
166 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
starfire.h
418 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
string.h
1.13 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
string_32.h
405 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
string_64.h
505 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
sunbpp.h
3.27 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
swift.h
3.07 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to.h
231 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to_32.h
3.53 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
switch_to_64.h
2.58 KB
11/01/2022 04:52:05 PM
rw-r--r--
📄
syscall.h
3.41 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
syscalls.h
307 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
termbits.h
198 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
termios.h
4.94 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info.h
239 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info_32.h
3.66 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
thread_info_64.h
7.84 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
timer.h
215 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
timer_32.h
1.18 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
timer_64.h
2.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
timex.h
215 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
timex_32.h
266 bytes
11/01/2022 04:52:05 PM
rw-r--r--
📄
timex_64.h
423 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlb.h
207 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlb_32.h
520 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlb_64.h
913 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush.h
227 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush_32.h
621 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tlbflush_64.h
1.73 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
topology.h
227 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
topology_32.h
170 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
topology_64.h
1.51 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
trap_block.h
6.51 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
traps.h
577 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
tsb.h
12.17 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
tsunami.h
1.85 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
ttable.h
20.08 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
turbosparc.h
3.78 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess.h
363 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess_32.h
8.31 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
uaccess_64.h
6.05 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
unaligned.h
339 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
unistd.h
1.37 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
upa.h
3.72 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
uprobes.h
1.86 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
user.h
102 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
vaddrs.h
2.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
vdso.h
662 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
vga.h
964 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
viking.h
8.14 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
vio.h
11.81 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
visasm.h
1.51 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
vvar.h
1.52 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
winmacro.h
4.66 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
xor.h
207 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
xor_32.h
7.31 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
xor_64.h
2.5 KB
01/28/2018 09:20:33 PM
rw-r--r--
Editing: vio.h
Close
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _SPARC64_VIO_H #define _SPARC64_VIO_H #include <linux/kernel.h> #include <linux/device.h> #include <linux/mod_devicetable.h> #include <linux/timer.h> #include <linux/spinlock.h> #include <linux/completion.h> #include <linux/list.h> #include <linux/log2.h> #include <asm/ldc.h> #include <asm/mdesc.h> struct vio_msg_tag { u8 type; #define VIO_TYPE_CTRL 0x01 #define VIO_TYPE_DATA 0x02 #define VIO_TYPE_ERR 0x04 u8 stype; #define VIO_SUBTYPE_INFO 0x01 #define VIO_SUBTYPE_ACK 0x02 #define VIO_SUBTYPE_NACK 0x04 u16 stype_env; #define VIO_VER_INFO 0x0001 #define VIO_ATTR_INFO 0x0002 #define VIO_DRING_REG 0x0003 #define VIO_DRING_UNREG 0x0004 #define VIO_RDX 0x0005 #define VIO_PKT_DATA 0x0040 #define VIO_DESC_DATA 0x0041 #define VIO_DRING_DATA 0x0042 #define VNET_MCAST_INFO 0x0101 u32 sid; }; struct vio_rdx { struct vio_msg_tag tag; u64 resv[6]; }; struct vio_ver_info { struct vio_msg_tag tag; u16 major; u16 minor; u8 dev_class; #define VDEV_NETWORK 0x01 #define VDEV_NETWORK_SWITCH 0x02 #define VDEV_DISK 0x03 #define VDEV_DISK_SERVER 0x04 #define VDEV_CONSOLE_CON 0x05 u8 resv1[3]; u64 resv2[5]; }; struct vio_dring_register { struct vio_msg_tag tag; u64 dring_ident; u32 num_descr; u32 descr_size; u16 options; #define VIO_TX_DRING 0x0001 #define VIO_RX_DRING 0x0002 #define VIO_RX_DRING_DATA 0x0004 u16 resv; u32 num_cookies; struct ldc_trans_cookie cookies[0]; }; struct vio_dring_unregister { struct vio_msg_tag tag; u64 dring_ident; u64 resv[5]; }; /* Data transfer modes */ #define VIO_PKT_MODE 0x01 /* Packet based transfer */ #define VIO_DESC_MODE 0x02 /* In-band descriptors */ #define VIO_DRING_MODE 0x03 /* Descriptor rings */ /* in vers >= 1.2, VIO_DRING_MODE is 0x04 and transfer mode is a bitmask */ #define VIO_NEW_DRING_MODE 0x04 struct vio_dring_data { struct vio_msg_tag tag; u64 seq; u64 dring_ident; u32 start_idx; u32 end_idx; u8 state; #define VIO_DRING_ACTIVE 0x01 #define VIO_DRING_STOPPED 0x02 u8 __pad1; u16 __pad2; u32 __pad3; u64 __par4[2]; }; struct vio_dring_hdr { u8 state; #define VIO_DESC_FREE 0x01 #define VIO_DESC_READY 0x02 #define VIO_DESC_ACCEPTED 0x03 #define VIO_DESC_DONE 0x04 u8 ack; #define VIO_ACK_ENABLE 0x01 #define VIO_ACK_DISABLE 0x00 u16 __pad1; u32 __pad2; }; /* VIO disk specific structures and defines */ struct vio_disk_attr_info { struct vio_msg_tag tag; u8 xfer_mode; u8 vdisk_type; #define VD_DISK_TYPE_SLICE 0x01 /* Slice in block device */ #define VD_DISK_TYPE_DISK 0x02 /* Entire block device */ u8 vdisk_mtype; /* v1.1 */ #define VD_MEDIA_TYPE_FIXED 0x01 /* Fixed device */ #define VD_MEDIA_TYPE_CD 0x02 /* CD Device */ #define VD_MEDIA_TYPE_DVD 0x03 /* DVD Device */ u8 resv1; u32 vdisk_block_size; u64 operations; u64 vdisk_size; /* v1.1 */ u64 max_xfer_size; u32 phys_block_size; /* v1.2 */ u32 resv2; u64 resv3[1]; }; struct vio_disk_desc { struct vio_dring_hdr hdr; u64 req_id; u8 operation; #define VD_OP_BREAD 0x01 /* Block read */ #define VD_OP_BWRITE 0x02 /* Block write */ #define VD_OP_FLUSH 0x03 /* Flush disk contents */ #define VD_OP_GET_WCE 0x04 /* Get write-cache status */ #define VD_OP_SET_WCE 0x05 /* Enable/disable write-cache */ #define VD_OP_GET_VTOC 0x06 /* Get VTOC */ #define VD_OP_SET_VTOC 0x07 /* Set VTOC */ #define VD_OP_GET_DISKGEOM 0x08 /* Get disk geometry */ #define VD_OP_SET_DISKGEOM 0x09 /* Set disk geometry */ #define VD_OP_SCSICMD 0x0a /* SCSI control command */ #define VD_OP_GET_DEVID 0x0b /* Get device ID */ #define VD_OP_GET_EFI 0x0c /* Get EFI */ #define VD_OP_SET_EFI 0x0d /* Set EFI */ u8 slice; u16 resv1; u32 status; u64 offset; u64 size; u32 ncookies; u32 resv2; struct ldc_trans_cookie cookies[0]; }; #define VIO_DISK_VNAME_LEN 8 #define VIO_DISK_ALABEL_LEN 128 #define VIO_DISK_NUM_PART 8 struct vio_disk_vtoc { u8 volume_name[VIO_DISK_VNAME_LEN]; u16 sector_size; u16 num_partitions; u8 ascii_label[VIO_DISK_ALABEL_LEN]; struct { u16 id; u16 perm_flags; u32 resv; u64 start_block; u64 num_blocks; } partitions[VIO_DISK_NUM_PART]; }; struct vio_disk_geom { u16 num_cyl; /* Num data cylinders */ u16 alt_cyl; /* Num alternate cylinders */ u16 beg_cyl; /* Cyl off of fixed head area */ u16 num_hd; /* Num heads */ u16 num_sec; /* Num sectors */ u16 ifact; /* Interleave factor */ u16 apc; /* Alts per cylinder (SCSI) */ u16 rpm; /* Revolutions per minute */ u16 phy_cyl; /* Num physical cylinders */ u16 wr_skip; /* Num sects to skip, writes */ u16 rd_skip; /* Num sects to skip, writes */ }; struct vio_disk_devid { u16 resv; u16 type; u32 len; char id[0]; }; struct vio_disk_efi { u64 lba; u64 len; char data[0]; }; /* VIO net specific structures and defines */ struct vio_net_attr_info { struct vio_msg_tag tag; u8 xfer_mode; u8 addr_type; #define VNET_ADDR_ETHERMAC 0x01 u16 ack_freq; u8 plnk_updt; #define PHYSLINK_UPDATE_NONE 0x00 #define PHYSLINK_UPDATE_STATE 0x01 #define PHYSLINK_UPDATE_STATE_ACK 0x02 #define PHYSLINK_UPDATE_STATE_NACK 0x03 u8 options; u16 resv1; u64 addr; u64 mtu; u16 cflags; #define VNET_LSO_IPV4_CAPAB 0x0001 u16 ipv4_lso_maxlen; u32 resv2; u64 resv3[2]; }; #define VNET_NUM_MCAST 7 struct vio_net_mcast_info { struct vio_msg_tag tag; u8 set; u8 count; u8 mcast_addr[VNET_NUM_MCAST * 6]; u32 resv; }; struct vio_net_desc { struct vio_dring_hdr hdr; u32 size; u32 ncookies; struct ldc_trans_cookie cookies[0]; }; struct vio_net_dext { u8 flags; #define VNET_PKT_HASH 0x01 #define VNET_PKT_HCK_IPV4_HDRCKSUM 0x02 #define VNET_PKT_HCK_FULLCKSUM 0x04 #define VNET_PKT_IPV4_LSO 0x08 #define VNET_PKT_HCK_IPV4_HDRCKSUM_OK 0x10 #define VNET_PKT_HCK_FULLCKSUM_OK 0x20 u8 vnet_hashval; u16 ipv4_lso_mss; u32 resv3; }; static inline struct vio_net_dext *vio_net_ext(struct vio_net_desc *desc) { return (struct vio_net_dext *)&desc->cookies[2]; } #define VIO_MAX_RING_COOKIES 24 struct vio_dring_state { u64 ident; void *base; u64 snd_nxt; u64 rcv_nxt; u32 entry_size; u32 num_entries; u32 prod; u32 cons; u32 pending; int ncookies; struct ldc_trans_cookie cookies[VIO_MAX_RING_COOKIES]; }; #define VIO_TAG_SIZE ((int)sizeof(struct vio_msg_tag)) #define VIO_VCC_MTU_SIZE (LDC_PACKET_SIZE - VIO_TAG_SIZE) struct vio_vcc { struct vio_msg_tag tag; char data[VIO_VCC_MTU_SIZE]; }; static inline void *vio_dring_cur(struct vio_dring_state *dr) { return dr->base + (dr->entry_size * dr->prod); } static inline void *vio_dring_entry(struct vio_dring_state *dr, unsigned int index) { return dr->base + (dr->entry_size * index); } static inline u32 vio_dring_avail(struct vio_dring_state *dr, unsigned int ring_size) { return (dr->pending - ((dr->prod - dr->cons) & (ring_size - 1)) - 1); } static inline u32 vio_dring_next(struct vio_dring_state *dr, u32 index) { if (++index == dr->num_entries) index = 0; return index; } static inline u32 vio_dring_prev(struct vio_dring_state *dr, u32 index) { if (index == 0) return dr->num_entries - 1; else return index - 1; } #define VIO_MAX_TYPE_LEN 32 #define VIO_MAX_NAME_LEN 32 #define VIO_MAX_COMPAT_LEN 64 struct vio_dev { u64 mp; struct device_node *dp; char node_name[VIO_MAX_NAME_LEN]; char type[VIO_MAX_TYPE_LEN]; char compat[VIO_MAX_COMPAT_LEN]; int compat_len; u64 dev_no; unsigned long port_id; unsigned long channel_id; unsigned int tx_irq; unsigned int rx_irq; u64 rx_ino; u64 tx_ino; /* Handle to the root of "channel-devices" sub-tree in MDESC */ u64 cdev_handle; /* MD specific data used to identify the vdev in MD */ union md_node_info md_node_info; struct device dev; }; struct vio_driver { const char *name; struct list_head node; const struct vio_device_id *id_table; int (*probe)(struct vio_dev *dev, const struct vio_device_id *id); int (*remove)(struct vio_dev *dev); void (*shutdown)(struct vio_dev *dev); unsigned long driver_data; struct device_driver driver; bool no_irq; }; struct vio_version { u16 major; u16 minor; }; struct vio_driver_state; struct vio_driver_ops { int (*send_attr)(struct vio_driver_state *vio); int (*handle_attr)(struct vio_driver_state *vio, void *pkt); void (*handshake_complete)(struct vio_driver_state *vio); }; struct vio_completion { struct completion com; int err; int waiting_for; }; struct vio_driver_state { /* Protects VIO handshake and, optionally, driver private state. */ spinlock_t lock; struct ldc_channel *lp; u32 _peer_sid; u32 _local_sid; struct vio_dring_state drings[2]; #define VIO_DRIVER_TX_RING 0 #define VIO_DRIVER_RX_RING 1 u8 hs_state; #define VIO_HS_INVALID 0x00 #define VIO_HS_GOTVERS 0x01 #define VIO_HS_GOT_ATTR 0x04 #define VIO_HS_SENT_DREG 0x08 #define VIO_HS_SENT_RDX 0x10 #define VIO_HS_GOT_RDX_ACK 0x20 #define VIO_HS_GOT_RDX 0x40 #define VIO_HS_SENT_RDX_ACK 0x80 #define VIO_HS_COMPLETE (VIO_HS_GOT_RDX_ACK | VIO_HS_SENT_RDX_ACK) u8 dev_class; u8 dr_state; #define VIO_DR_STATE_TXREG 0x01 #define VIO_DR_STATE_RXREG 0x02 #define VIO_DR_STATE_TXREQ 0x10 #define VIO_DR_STATE_RXREQ 0x20 u8 debug; #define VIO_DEBUG_HS 0x01 #define VIO_DEBUG_DATA 0x02 void *desc_buf; unsigned int desc_buf_len; struct vio_completion *cmp; struct vio_dev *vdev; struct timer_list timer; struct vio_version ver; struct vio_version *ver_table; int ver_table_entries; char *name; struct vio_driver_ops *ops; }; static inline bool vio_version_before(struct vio_driver_state *vio, u16 major, u16 minor) { u32 have = (u32)vio->ver.major << 16 | vio->ver.minor; u32 want = (u32)major << 16 | minor; return have < want; } static inline bool vio_version_after(struct vio_driver_state *vio, u16 major, u16 minor) { u32 have = (u32)vio->ver.major << 16 | vio->ver.minor; u32 want = (u32)major << 16 | minor; return have > want; } static inline bool vio_version_after_eq(struct vio_driver_state *vio, u16 major, u16 minor) { u32 have = (u32)vio->ver.major << 16 | vio->ver.minor; u32 want = (u32)major << 16 | minor; return have >= want; } #define viodbg(TYPE, f, a...) \ do { if (vio->debug & VIO_DEBUG_##TYPE) \ printk(KERN_INFO "vio: ID[%lu] " f, \ vio->vdev->channel_id, ## a); \ } while (0) int __vio_register_driver(struct vio_driver *drv, struct module *owner, const char *mod_name); /* * vio_register_driver must be a macro so that KBUILD_MODNAME can be expanded */ #define vio_register_driver(driver) \ __vio_register_driver(driver, THIS_MODULE, KBUILD_MODNAME) void vio_unregister_driver(struct vio_driver *drv); static inline struct vio_driver *to_vio_driver(struct device_driver *drv) { return container_of(drv, struct vio_driver, driver); } static inline struct vio_dev *to_vio_dev(struct device *dev) { return container_of(dev, struct vio_dev, dev); } int vio_ldc_send(struct vio_driver_state *vio, void *data, int len); void vio_link_state_change(struct vio_driver_state *vio, int event); void vio_conn_reset(struct vio_driver_state *vio); int vio_control_pkt_engine(struct vio_driver_state *vio, void *pkt); int vio_validate_sid(struct vio_driver_state *vio, struct vio_msg_tag *tp); u32 vio_send_sid(struct vio_driver_state *vio); int vio_ldc_alloc(struct vio_driver_state *vio, struct ldc_channel_config *base_cfg, void *event_arg); void vio_ldc_free(struct vio_driver_state *vio); int vio_driver_init(struct vio_driver_state *vio, struct vio_dev *vdev, u8 dev_class, struct vio_version *ver_table, int ver_table_size, struct vio_driver_ops *ops, char *name); void vio_port_up(struct vio_driver_state *vio); int vio_set_intr(unsigned long dev_ino, int state); u64 vio_vdev_node(struct mdesc_handle *hp, struct vio_dev *vdev); #endif /* _SPARC64_VIO_H */