OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
arch
/
sparc
/
include
/
asm
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:13 AM
rwxr-xr-x
📄
Kbuild
491 bytes
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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
06/16/2023 05:32:39 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: parport.h
Close
/* SPDX-License-Identifier: GPL-2.0 */ /* parport.h: sparc64 specific parport initialization and dma. * * Copyright (C) 1999 Eddie C. Dost (ecd@skynet.be) */ #ifndef _ASM_SPARC64_PARPORT_H #define _ASM_SPARC64_PARPORT_H 1 #include <linux/of_device.h> #include <asm/ebus_dma.h> #include <asm/ns87303.h> #include <asm/prom.h> #define PARPORT_PC_MAX_PORTS PARPORT_MAX /* * While sparc64 doesn't have an ISA DMA API, we provide something that looks * close enough to make parport_pc happy */ #define HAS_DMA #ifdef CONFIG_PARPORT_PC_FIFO static DEFINE_SPINLOCK(dma_spin_lock); #define claim_dma_lock() \ ({ unsigned long flags; \ spin_lock_irqsave(&dma_spin_lock, flags); \ flags; \ }) #define release_dma_lock(__flags) \ spin_unlock_irqrestore(&dma_spin_lock, __flags); #endif static struct sparc_ebus_info { struct ebus_dma_info info; unsigned int addr; unsigned int count; int lock; struct parport *port; } sparc_ebus_dmas[PARPORT_PC_MAX_PORTS]; static DECLARE_BITMAP(dma_slot_map, PARPORT_PC_MAX_PORTS); static inline int request_dma(unsigned int dmanr, const char *device_id) { if (dmanr >= PARPORT_PC_MAX_PORTS) return -EINVAL; if (xchg(&sparc_ebus_dmas[dmanr].lock, 1) != 0) return -EBUSY; return 0; } static inline void free_dma(unsigned int dmanr) { if (dmanr >= PARPORT_PC_MAX_PORTS) { printk(KERN_WARNING "Trying to free DMA%d\n", dmanr); return; } if (xchg(&sparc_ebus_dmas[dmanr].lock, 0) == 0) { printk(KERN_WARNING "Trying to free free DMA%d\n", dmanr); return; } } static inline void enable_dma(unsigned int dmanr) { ebus_dma_enable(&sparc_ebus_dmas[dmanr].info, 1); if (ebus_dma_request(&sparc_ebus_dmas[dmanr].info, sparc_ebus_dmas[dmanr].addr, sparc_ebus_dmas[dmanr].count)) BUG(); } static inline void disable_dma(unsigned int dmanr) { ebus_dma_enable(&sparc_ebus_dmas[dmanr].info, 0); } static inline void clear_dma_ff(unsigned int dmanr) { /* nothing */ } static inline void set_dma_mode(unsigned int dmanr, char mode) { ebus_dma_prepare(&sparc_ebus_dmas[dmanr].info, (mode != DMA_MODE_WRITE)); } static inline void set_dma_addr(unsigned int dmanr, unsigned int addr) { sparc_ebus_dmas[dmanr].addr = addr; } static inline void set_dma_count(unsigned int dmanr, unsigned int count) { sparc_ebus_dmas[dmanr].count = count; } static inline unsigned int get_dma_residue(unsigned int dmanr) { return ebus_dma_residue(&sparc_ebus_dmas[dmanr].info); } static int ecpp_probe(struct platform_device *op) { unsigned long base = op->resource[0].start; unsigned long config = op->resource[1].start; unsigned long d_base = op->resource[2].start; unsigned long d_len; struct device_node *parent; struct parport *p; int slot, err; parent = op->dev.of_node->parent; if (!strcmp(parent->name, "dma")) { p = parport_pc_probe_port(base, base + 0x400, op->archdata.irqs[0], PARPORT_DMA_NOFIFO, op->dev.parent->parent, 0); if (!p) return -ENOMEM; dev_set_drvdata(&op->dev, p); return 0; } for (slot = 0; slot < PARPORT_PC_MAX_PORTS; slot++) { if (!test_and_set_bit(slot, dma_slot_map)) break; } err = -ENODEV; if (slot >= PARPORT_PC_MAX_PORTS) goto out_err; spin_lock_init(&sparc_ebus_dmas[slot].info.lock); d_len = (op->resource[2].end - d_base) + 1UL; sparc_ebus_dmas[slot].info.regs = of_ioremap(&op->resource[2], 0, d_len, "ECPP DMA"); if (!sparc_ebus_dmas[slot].info.regs) goto out_clear_map; sparc_ebus_dmas[slot].info.flags = 0; sparc_ebus_dmas[slot].info.callback = NULL; sparc_ebus_dmas[slot].info.client_cookie = NULL; sparc_ebus_dmas[slot].info.irq = 0xdeadbeef; strcpy(sparc_ebus_dmas[slot].info.name, "parport"); if (ebus_dma_register(&sparc_ebus_dmas[slot].info)) goto out_unmap_regs; ebus_dma_irq_enable(&sparc_ebus_dmas[slot].info, 1); /* Configure IRQ to Push Pull, Level Low */ /* Enable ECP, set bit 2 of the CTR first */ outb(0x04, base + 0x02); ns87303_modify(config, PCR, PCR_EPP_ENABLE | PCR_IRQ_ODRAIN, PCR_ECP_ENABLE | PCR_ECP_CLK_ENA | PCR_IRQ_POLAR); /* CTR bit 5 controls direction of port */ ns87303_modify(config, PTR, 0, PTR_LPT_REG_DIR); p = parport_pc_probe_port(base, base + 0x400, op->archdata.irqs[0], slot, op->dev.parent, 0); err = -ENOMEM; if (!p) goto out_disable_irq; dev_set_drvdata(&op->dev, p); return 0; out_disable_irq: ebus_dma_irq_enable(&sparc_ebus_dmas[slot].info, 0); ebus_dma_unregister(&sparc_ebus_dmas[slot].info); out_unmap_regs: of_iounmap(&op->resource[2], sparc_ebus_dmas[slot].info.regs, d_len); out_clear_map: clear_bit(slot, dma_slot_map); out_err: return err; } static int ecpp_remove(struct platform_device *op) { struct parport *p = dev_get_drvdata(&op->dev); int slot = p->dma; parport_pc_unregister_port(p); if (slot != PARPORT_DMA_NOFIFO) { unsigned long d_base = op->resource[2].start; unsigned long d_len; d_len = (op->resource[2].end - d_base) + 1UL; ebus_dma_irq_enable(&sparc_ebus_dmas[slot].info, 0); ebus_dma_unregister(&sparc_ebus_dmas[slot].info); of_iounmap(&op->resource[2], sparc_ebus_dmas[slot].info.regs, d_len); clear_bit(slot, dma_slot_map); } return 0; } static const struct of_device_id ecpp_match[] = { { .name = "ecpp", }, { .name = "parallel", .compatible = "ecpp", }, { .name = "parallel", .compatible = "ns87317-ecpp", }, { .name = "parallel", .compatible = "pnpALI,1533,3", }, {}, }; static struct platform_driver ecpp_driver = { .driver = { .name = "ecpp", .of_match_table = ecpp_match, }, .probe = ecpp_probe, .remove = ecpp_remove, }; static int parport_pc_find_nonpci_ports(int autoirq, int autodma) { return platform_driver_register(&ecpp_driver); } #endif /* !(_ASM_SPARC64_PARPORT_H */