__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2003, 04, 07 Ralf Baechle <[email protected]> * Copyright (C) MIPS Technologies, Inc. * written by Ralf Baechle <[email protected]> */ #ifndef _ASM_HAZARDS_H #define _ASM_HAZARDS_H #include <linux/stringify.h> #include <asm/compiler.h> #define ___ssnop \ sll $0, $0, 1 #define ___ehb \ sll $0, $0, 3 /* * TLB hazards */ #if (defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR5) || \ defined(CONFIG_CPU_MIPSR6)) && \ !defined(CONFIG_CPU_CAVIUM_OCTEON) && !defined(CONFIG_CPU_LOONGSON64) /* * MIPSR2 defines ehb for hazard avoidance */ #define __mtc0_tlbw_hazard \ ___ehb #define __mtc0_tlbr_hazard \ ___ehb #define __tlbw_use_hazard \ ___ehb #define __tlb_read_hazard \ ___ehb #define __tlb_probe_hazard \ ___ehb #define __irq_enable_hazard \ ___ehb #define __irq_disable_hazard \ ___ehb #define __back_to_back_c0_hazard \ ___ehb /* * gcc has a tradition of misscompiling the previous construct using the * address of a label as argument to inline assembler. Gas otoh has the * annoying difference between la and dla which are only usable for 32-bit * rsp. 64-bit code, so can't be used without conditional compilation. * The alternative is switching the assembler to 64-bit code which happens * to work right even for 32-bit code... */ #define instruction_hazard() \ do { \ unsigned long tmp; \ \ __asm__ __volatile__( \ " .set push \n" \ " .set "MIPS_ISA_LEVEL" \n" \ " dla %0, 1f \n" \ " jr.hb %0 \n" \ " .set pop \n" \ "1: \n" \ : "=r" (tmp)); \ } while (0) #elif (defined(CONFIG_CPU_MIPSR1) && !defined(CONFIG_MIPS_ALCHEMY)) || \ defined(CONFIG_CPU_BMIPS) /* * These are slightly complicated by the fact that we guarantee R1 kernels to * run fine on R2 processors. */ #define __mtc0_tlbw_hazard \ ___ssnop; \ ___ssnop; \ ___ehb #define __mtc0_tlbr_hazard \ ___ssnop; \ ___ssnop; \ ___ehb #define __tlbw_use_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop; \ ___ehb #define __tlb_read_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop; \ ___ehb #define __tlb_probe_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop; \ ___ehb #define __irq_enable_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop; \ ___ehb #define __irq_disable_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop; \ ___ehb #define __back_to_back_c0_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop; \ ___ehb /* * gcc has a tradition of misscompiling the previous construct using the * address of a label as argument to inline assembler. Gas otoh has the * annoying difference between la and dla which are only usable for 32-bit * rsp. 64-bit code, so can't be used without conditional compilation. * The alternative is switching the assembler to 64-bit code which happens * to work right even for 32-bit code... */ #define __instruction_hazard() \ do { \ unsigned long tmp; \ \ __asm__ __volatile__( \ " .set push \n" \ " .set mips64r2 \n" \ " dla %0, 1f \n" \ " jr.hb %0 \n" \ " .set pop \n" \ "1: \n" \ : "=r" (tmp)); \ } while (0) #define instruction_hazard() \ do { \ if (cpu_has_mips_r2_r6) \ __instruction_hazard(); \ } while (0) #elif defined(CONFIG_MIPS_ALCHEMY) || defined(CONFIG_CPU_CAVIUM_OCTEON) || \ defined(CONFIG_CPU_LOONGSON2EF) || defined(CONFIG_CPU_LOONGSON64) || \ defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_R5500) /* * R10000 rocks - all hazards handled in hardware, so this becomes a nobrainer. */ #define __mtc0_tlbw_hazard #define __mtc0_tlbr_hazard #define __tlbw_use_hazard #define __tlb_read_hazard #define __tlb_probe_hazard #define __irq_enable_hazard #define __irq_disable_hazard #define __back_to_back_c0_hazard #define instruction_hazard() do { } while (0) #elif defined(CONFIG_CPU_SB1) /* * Mostly like R4000 for historic reasons */ #define __mtc0_tlbw_hazard #define __mtc0_tlbr_hazard #define __tlbw_use_hazard #define __tlb_read_hazard #define __tlb_probe_hazard #define __irq_enable_hazard #define __irq_disable_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop #define __back_to_back_c0_hazard #define instruction_hazard() do { } while (0) #else /* * Finally the catchall case for all other processors including R4000, R4400, * R4600, R4700, R5000, RM7000, NEC VR41xx etc. * * The taken branch will result in a two cycle penalty for the two killed * instructions on R4000 / R4400. Other processors only have a single cycle * hazard so this is nice trick to have an optimal code for a range of * processors. */ #define __mtc0_tlbw_hazard \ nop; \ nop #define __mtc0_tlbr_hazard \ nop; \ nop #define __tlbw_use_hazard \ nop; \ nop; \ nop #define __tlb_read_hazard \ nop; \ nop; \ nop #define __tlb_probe_hazard \ nop; \ nop; \ nop #define __irq_enable_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop #define __irq_disable_hazard \ nop; \ nop; \ nop #define __back_to_back_c0_hazard \ ___ssnop; \ ___ssnop; \ ___ssnop #define instruction_hazard() do { } while (0) #endif /* FPU hazards */ #if defined(CONFIG_CPU_SB1) #define __enable_fpu_hazard \ .set push; \ .set mips64; \ .set noreorder; \ ___ssnop; \ bnezl $0, .+4; \ ___ssnop; \ .set pop #define __disable_fpu_hazard #elif defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR5) || \ defined(CONFIG_CPU_MIPSR6) #define __enable_fpu_hazard \ ___ehb #define __disable_fpu_hazard \ ___ehb #else #define __enable_fpu_hazard \ nop; \ nop; \ nop; \ nop #define __disable_fpu_hazard \ ___ehb #endif #ifdef __ASSEMBLY__ #define _ssnop ___ssnop #define _ehb ___ehb #define mtc0_tlbw_hazard __mtc0_tlbw_hazard #define mtc0_tlbr_hazard __mtc0_tlbr_hazard #define tlbw_use_hazard __tlbw_use_hazard #define tlb_read_hazard __tlb_read_hazard #define tlb_probe_hazard __tlb_probe_hazard #define irq_enable_hazard __irq_enable_hazard #define irq_disable_hazard __irq_disable_hazard #define back_to_back_c0_hazard __back_to_back_c0_hazard #define enable_fpu_hazard __enable_fpu_hazard #define disable_fpu_hazard __disable_fpu_hazard #else #define _ssnop() \ do { \ __asm__ __volatile__( \ __stringify(___ssnop) \ ); \ } while (0) #define _ehb() \ do { \ __asm__ __volatile__( \ __stringify(___ehb) \ ); \ } while (0) #define mtc0_tlbw_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__mtc0_tlbw_hazard) \ ); \ } while (0) #define mtc0_tlbr_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__mtc0_tlbr_hazard) \ ); \ } while (0) #define tlbw_use_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__tlbw_use_hazard) \ ); \ } while (0) #define tlb_read_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__tlb_read_hazard) \ ); \ } while (0) #define tlb_probe_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__tlb_probe_hazard) \ ); \ } while (0) #define irq_enable_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__irq_enable_hazard) \ ); \ } while (0) #define irq_disable_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__irq_disable_hazard) \ ); \ } while (0) #define back_to_back_c0_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__back_to_back_c0_hazard) \ ); \ } while (0) #define enable_fpu_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__enable_fpu_hazard) \ ); \ } while (0) #define disable_fpu_hazard() \ do { \ __asm__ __volatile__( \ __stringify(__disable_fpu_hazard) \ ); \ } while (0) /* * MIPS R2 instruction hazard barrier. Needs to be called as a subroutine. */ extern void mips_ihb(void); #endif /* __ASSEMBLY__ */ #endif /* _ASM_HAZARDS_H */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| dec | Folder | 0755 |
|
|
| fw | Folder | 0755 |
|
|
| ip32 | Folder | 0755 |
|
|
| mach-ath25 | Folder | 0755 |
|
|
| mach-ath79 | Folder | 0755 |
|
|
| mach-au1x00 | Folder | 0755 |
|
|
| mach-bcm47xx | Folder | 0755 |
|
|
| mach-bcm63xx | Folder | 0755 |
|
|
| mach-bmips | Folder | 0755 |
|
|
| mach-cavium-octeon | Folder | 0755 |
|
|
| mach-cobalt | Folder | 0755 |
|
|
| mach-db1x00 | Folder | 0755 |
|
|
| mach-dec | Folder | 0755 |
|
|
| mach-generic | Folder | 0755 |
|
|
| mach-ingenic | Folder | 0755 |
|
|
| mach-ip22 | Folder | 0755 |
|
|
| mach-ip27 | Folder | 0755 |
|
|
| mach-ip28 | Folder | 0755 |
|
|
| mach-ip30 | Folder | 0755 |
|
|
| mach-ip32 | Folder | 0755 |
|
|
| mach-jazz | Folder | 0755 |
|
|
| mach-lantiq | Folder | 0755 |
|
|
| mach-loongson2ef | Folder | 0755 |
|
|
| mach-loongson32 | Folder | 0755 |
|
|
| mach-loongson64 | Folder | 0755 |
|
|
| mach-malta | Folder | 0755 |
|
|
| mach-n64 | Folder | 0755 |
|
|
| mach-pic32 | Folder | 0755 |
|
|
| mach-ralink | Folder | 0755 |
|
|
| mach-rc32434 | Folder | 0755 |
|
|
| mach-rm | Folder | 0755 |
|
|
| mach-sibyte | Folder | 0755 |
|
|
| mach-tx49xx | Folder | 0755 |
|
|
| mips-boards | Folder | 0755 |
|
|
| octeon | Folder | 0755 |
|
|
| pci | Folder | 0755 |
|
|
| sgi | Folder | 0755 |
|
|
| sibyte | Folder | 0755 |
|
|
| sn | Folder | 0755 |
|
|
| txx9 | Folder | 0755 |
|
|
| vdso | Folder | 0755 |
|
|
| xtalk | Folder | 0755 |
|
|
| Kbuild | File | 421 B | 0644 |
|
| abi.h | File | 853 B | 0644 |
|
| addrspace.h | File | 4.02 KB | 0644 |
|
| amon.h | File | 409 B | 0644 |
|
| arch_hweight.h | File | 792 B | 0644 |
|
| asm-eva.h | File | 7.17 KB | 0644 |
|
| asm-offsets.h | File | 35 B | 0644 |
|
| asm-prototypes.h | File | 318 B | 0644 |
|
| asm.h | File | 7.16 KB | 0644 |
|
| asmmacro-32.h | File | 2.47 KB | 0644 |
|
| asmmacro-64.h | File | 1.22 KB | 0644 |
|
| asmmacro.h | File | 14.67 KB | 0644 |
|
| atomic.h | File | 7.83 KB | 0644 |
|
| barrier.h | File | 3.42 KB | 0644 |
|
| bcache.h | File | 2.04 KB | 0644 |
|
| bitops.h | File | 11.18 KB | 0644 |
|
| bitrev.h | File | 608 B | 0644 |
|
| bmips-spaces.h | File | 268 B | 0644 |
|
| bmips.h | File | 3.06 KB | 0644 |
|
| bootinfo.h | File | 4.81 KB | 0644 |
|
| branch.h | File | 2.44 KB | 0644 |
|
| break.h | File | 787 B | 0644 |
|
| bug.h | File | 759 B | 0644 |
|
| bugs.h | File | 527 B | 0644 |
|
| cache.h | File | 810 B | 0644 |
|
| cacheflush.h | File | 4.98 KB | 0644 |
|
| cacheops.h | File | 3.71 KB | 0644 |
|
| cachetype.h | File | 193 B | 0644 |
|
| cdmm.h | File | 3.68 KB | 0644 |
|
| cevt-r4k.h | File | 823 B | 0644 |
|
| checksum.h | File | 5.66 KB | 0644 |
|
| clocksource.h | File | 273 B | 0644 |
|
| cmp.h | File | 181 B | 0644 |
|
| cmpxchg.h | File | 8.69 KB | 0644 |
|
| compat-signal.h | File | 640 B | 0644 |
|
| compat.h | File | 3.45 KB | 0644 |
|
| compiler.h | File | 2.61 KB | 0644 |
|
| cop2.h | File | 1.47 KB | 0644 |
|
| cpu-features.h | File | 22.21 KB | 0644 |
|
| cpu-info.h | File | 6.16 KB | 0644 |
|
| cpu-type.h | File | 3.78 KB | 0644 |
|
| cpu.h | File | 16.31 KB | 0644 |
|
| cpufeature.h | File | 510 B | 0644 |
|
| debug.h | File | 447 B | 0644 |
|
| delay.h | File | 841 B | 0644 |
|
| div64.h | File | 2.17 KB | 0644 |
|
| dma-direct.h | File | 255 B | 0644 |
|
| dma-mapping.h | File | 349 B | 0644 |
|
| dma.h | File | 9.81 KB | 0644 |
|
| dmi.h | File | 547 B | 0644 |
|
| ds1287.h | File | 333 B | 0644 |
|
| dsemul.h | File | 3.51 KB | 0644 |
|
| dsp.h | File | 1.71 KB | 0644 |
|
| edac.h | File | 839 B | 0644 |
|
| elf.h | File | 15.19 KB | 0644 |
|
| elfcore-compat.h | File | 841 B | 0644 |
|
| errno.h | File | 429 B | 0644 |
|
| eva.h | File | 796 B | 0644 |
|
| exec.h | File | 579 B | 0644 |
|
| extable.h | File | 241 B | 0644 |
|
| fixmap.h | File | 2.17 KB | 0644 |
|
| floppy.h | File | 1.57 KB | 0644 |
|
| fpregdef.h | File | 2.1 KB | 0644 |
|
| fpu.h | File | 7.39 KB | 0644 |
|
| fpu_emulator.h | File | 4.73 KB | 0644 |
|
| ftrace.h | File | 2.7 KB | 0644 |
|
| futex.h | File | 5.43 KB | 0644 |
|
| ginvt.h | File | 1.13 KB | 0644 |
|
| gio_device.h | File | 1.38 KB | 0644 |
|
| gt64120.h | File | 18.77 KB | 0644 |
|
| hardirq.h | File | 544 B | 0644 |
|
| hazards.h | File | 8.44 KB | 0644 |
|
| highmem.h | File | 1.7 KB | 0644 |
|
| hpet.h | File | 1.93 KB | 0644 |
|
| hugetlb.h | File | 2.09 KB | 0644 |
|
| hw_irq.h | File | 475 B | 0644 |
|
| i8259.h | File | 2.38 KB | 0644 |
|
| idle.h | File | 727 B | 0644 |
|
| inst.h | File | 2.34 KB | 0644 |
|
| io.h | File | 16.26 KB | 0644 |
|
| irq.h | File | 2.2 KB | 0644 |
|
| irq_cpu.h | File | 427 B | 0644 |
|
| irq_gt641xx.h | File | 2.03 KB | 0644 |
|
| irq_regs.h | File | 540 B | 0644 |
|
| irqflags.h | File | 4.11 KB | 0644 |
|
| isa-rev.h | File | 556 B | 0644 |
|
| isadep.h | File | 573 B | 0644 |
|
| jazz.h | File | 8 KB | 0644 |
|
| jazzdma.h | File | 2.76 KB | 0644 |
|
| jump_label.h | File | 1.65 KB | 0644 |
|
| kdebug.h | File | 303 B | 0644 |
|
| kexec.h | File | 1.46 KB | 0644 |
|
| kgdb.h | File | 1.19 KB | 0644 |
|
| kprobes.h | File | 1.58 KB | 0644 |
|
| kvm_host.h | File | 29.5 KB | 0644 |
|
| kvm_types.h | File | 184 B | 0644 |
|
| linkage.h | File | 306 B | 0644 |
|
| local.h | File | 4.71 KB | 0644 |
|
| maar.h | File | 4.17 KB | 0644 |
|
| machine.h | File | 2.73 KB | 0644 |
|
| mc146818-time.h | File | 3.69 KB | 0644 |
|
| mc146818rtc.h | File | 450 B | 0644 |
|
| mips-cm.h | File | 17.11 KB | 0644 |
|
| mips-cpc.h | File | 5.63 KB | 0644 |
|
| mips-cps.h | File | 7.62 KB | 0644 |
|
| mips-gic.h | File | 12.93 KB | 0644 |
|
| mips-r2-to-r6-emul.h | File | 2.05 KB | 0644 |
|
| mips_mt.h | File | 641 B | 0644 |
|
| mipsmtregs.h | File | 12.44 KB | 0644 |
|
| mipsprom.h | File | 2.1 KB | 0644 |
|
| mipsregs.h | File | 97.75 KB | 0644 |
|
| mmiowb.h | File | 194 B | 0644 |
|
| mmu.h | File | 555 B | 0644 |
|
| mmu_context.h | File | 6.06 KB | 0644 |
|
| mmzone.h | File | 464 B | 0644 |
|
| module.h | File | 2.33 KB | 0644 |
|
| msa.h | File | 7.71 KB | 0644 |
|
| msc01_ic.h | File | 6.55 KB | 0644 |
|
| paccess.h | File | 3.07 KB | 0644 |
|
| page.h | File | 6.45 KB | 0644 |
|
| pci.h | File | 3.65 KB | 0644 |
|
| perf_event.h | File | 336 B | 0644 |
|
| pgalloc.h | File | 2.38 KB | 0644 |
|
| pgtable-32.h | File | 9.99 KB | 0644 |
|
| pgtable-64.h | File | 9.89 KB | 0644 |
|
| pgtable-bits.h | File | 7.7 KB | 0644 |
|
| pgtable.h | File | 18.57 KB | 0644 |
|
| pm-cps.h | File | 1.48 KB | 0644 |
|
| pm.h | File | 3.69 KB | 0644 |
|
| prefetch.h | File | 2.1 KB | 0644 |
|
| processor.h | File | 10.97 KB | 0644 |
|
| prom.h | File | 706 B | 0644 |
|
| ptrace.h | File | 5.55 KB | 0644 |
|
| r4k-timer.h | File | 499 B | 0644 |
|
| r4kcache.h | File | 11.2 KB | 0644 |
|
| reboot.h | File | 440 B | 0644 |
|
| reg.h | File | 26 B | 0644 |
|
| regdef.h | File | 4.95 KB | 0644 |
|
| rtlx.h | File | 2.03 KB | 0644 |
|
| seccomp.h | File | 810 B | 0644 |
|
| setup.h | File | 1.08 KB | 0644 |
|
| sgialib.h | File | 1.7 KB | 0644 |
|
| sgiarcs.h | File | 13.69 KB | 0644 |
|
| shmparam.h | File | 352 B | 0644 |
|
| sigcontext.h | File | 1.04 KB | 0644 |
|
| signal.h | File | 1.1 KB | 0644 |
|
| sim.h | File | 2.02 KB | 0644 |
|
| smp-cps.h | File | 1.22 KB | 0644 |
|
| smp-ops.h | File | 2.24 KB | 0644 |
|
| smp.h | File | 3.64 KB | 0644 |
|
| sni.h | File | 7.26 KB | 0644 |
|
| socket.h | File | 1.34 KB | 0644 |
|
| sparsemem.h | File | 486 B | 0644 |
|
| spinlock.h | File | 822 B | 0644 |
|
| spinlock_types.h | File | 188 B | 0644 |
|
| spram.h | File | 254 B | 0644 |
|
| stackframe.h | File | 10.88 KB | 0644 |
|
| stackprotector.h | File | 1022 B | 0644 |
|
| stacktrace.h | File | 2.15 KB | 0644 |
|
| string.h | File | 692 B | 0644 |
|
| switch_to.h | File | 4.35 KB | 0644 |
|
| sync.h | File | 7.64 KB | 0644 |
|
| syscall.h | File | 3.45 KB | 0644 |
|
| syscalls.h | File | 1.28 KB | 0644 |
|
| thread_info.h | File | 6.59 KB | 0644 |
|
| time.h | File | 1.58 KB | 0644 |
|
| timex.h | File | 2.87 KB | 0644 |
|
| tlb.h | File | 613 B | 0644 |
|
| tlbdebug.h | File | 403 B | 0644 |
|
| tlbex.h | File | 1014 B | 0644 |
|
| tlbflush.h | File | 1.64 KB | 0644 |
|
| tlbmisc.h | File | 320 B | 0644 |
|
| topology.h | File | 619 B | 0644 |
|
| traps.h | File | 2.39 KB | 0644 |
|
| txx9irq.h | File | 682 B | 0644 |
|
| txx9pio.h | File | 592 B | 0644 |
|
| txx9tmr.h | File | 1.52 KB | 0644 |
|
| types.h | File | 459 B | 0644 |
|
| uaccess.h | File | 14.68 KB | 0644 |
|
| uasm.h | File | 9.44 KB | 0644 |
|
| unaligned-emul.h | File | 26.23 KB | 0644 |
|
| unistd.h | File | 1.83 KB | 0644 |
|
| unroll.h | File | 2.79 KB | 0644 |
|
| uprobes.h | File | 1.11 KB | 0644 |
|
| vdso.h | File | 1.35 KB | 0644 |
|
| vermagic.h | File | 2.06 KB | 0644 |
|
| vga.h | File | 1.12 KB | 0644 |
|
| video.h | File | 875 B | 0644 |
|
| vmalloc.h | File | 90 B | 0644 |
|
| vpe.h | File | 2.53 KB | 0644 |
|
| watch.h | File | 827 B | 0644 |
|
| wbflush.h | File | 694 B | 0644 |
|
| yamon-dt.h | File | 1.68 KB | 0644 |
|