__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 1999, 2000 Niibe Yutaka
*/
#ifndef __ASM_SH_PTRACE_H
#define __ASM_SH_PTRACE_H
#include <linux/stringify.h>
#include <linux/stddef.h>
#include <linux/thread_info.h>
#include <asm/addrspace.h>
#include <asm/page.h>
#include <uapi/asm/ptrace.h>
#define user_mode(regs) (((regs)->sr & 0x40000000)==0)
#define kernel_stack_pointer(_regs) ((unsigned long)(_regs)->regs[15])
static inline unsigned long instruction_pointer(struct pt_regs *regs)
{
return regs->pc;
}
static inline void instruction_pointer_set(struct pt_regs *regs,
unsigned long val)
{
regs->pc = val;
}
static inline unsigned long frame_pointer(struct pt_regs *regs)
{
return regs->regs[14];
}
static inline unsigned long user_stack_pointer(struct pt_regs *regs)
{
return regs->regs[15];
}
static inline void user_stack_pointer_set(struct pt_regs *regs,
unsigned long val)
{
regs->regs[15] = val;
}
#define arch_has_single_step() (1)
/*
* kprobe-based event tracer support
*/
struct pt_regs_offset {
const char *name;
int offset;
};
#define REG_OFFSET_NAME(r) {.name = #r, .offset = offsetof(struct pt_regs, r)}
#define REGS_OFFSET_NAME(num) \
{.name = __stringify(r##num), .offset = offsetof(struct pt_regs, regs[num])}
#define TREGS_OFFSET_NAME(num) \
{.name = __stringify(tr##num), .offset = offsetof(struct pt_regs, tregs[num])}
#define REG_OFFSET_END {.name = NULL, .offset = 0}
/* Query offset/name of register from its name/offset */
extern int regs_query_register_offset(const char *name);
extern const char *regs_query_register_name(unsigned int offset);
extern const struct pt_regs_offset regoffset_table[];
/**
* regs_get_register() - get register value from its offset
* @regs: pt_regs from which register value is gotten.
* @offset: offset number of the register.
*
* regs_get_register returns the value of a register. The @offset is the
* offset of the register in struct pt_regs address which specified by @regs.
* If @offset is bigger than MAX_REG_OFFSET, this returns 0.
*/
static inline unsigned long regs_get_register(struct pt_regs *regs,
unsigned int offset)
{
if (unlikely(offset > MAX_REG_OFFSET))
return 0;
return *(unsigned long *)((unsigned long)regs + offset);
}
/**
* regs_within_kernel_stack() - check the address in the stack
* @regs: pt_regs which contains kernel stack pointer.
* @addr: address which is checked.
*
* regs_within_kernel_stack() checks @addr is within the kernel stack page(s).
* If @addr is within the kernel stack, it returns true. If not, returns false.
*/
static inline int regs_within_kernel_stack(struct pt_regs *regs,
unsigned long addr)
{
return ((addr & ~(THREAD_SIZE - 1)) ==
(kernel_stack_pointer(regs) & ~(THREAD_SIZE - 1)));
}
/**
* regs_get_kernel_stack_nth() - get Nth entry of the stack
* @regs: pt_regs which contains kernel stack pointer.
* @n: stack entry number.
*
* regs_get_kernel_stack_nth() returns @n th entry of the kernel stack which
* is specified by @regs. If the @n th entry is NOT in the kernel stack,
* this returns 0.
*/
static inline unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs,
unsigned int n)
{
unsigned long *addr = (unsigned long *)kernel_stack_pointer(regs);
addr += n;
if (regs_within_kernel_stack(regs, (unsigned long)addr))
return *addr;
else
return 0;
}
struct perf_event;
struct perf_sample_data;
extern void ptrace_triggered(struct perf_event *bp,
struct perf_sample_data *data, struct pt_regs *regs);
#define task_pt_regs(task) \
((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE) - 1)
static inline unsigned long profile_pc(struct pt_regs *regs)
{
unsigned long pc = regs->pc;
if (virt_addr_uncached(pc))
return CAC_ADDR(pc);
return pc;
}
#endif /* __ASM_SH_PTRACE_H */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Kbuild | File | 170 B | 0644 |
|
| adc.h | File | 211 B | 0644 |
|
| addrspace.h | File | 1.85 KB | 0644 |
|
| alignment.h | File | 654 B | 0644 |
|
| asm-offsets.h | File | 74 B | 0644 |
|
| atomic-grb.h | File | 2.97 KB | 0644 |
|
| atomic-irq.h | File | 2.01 KB | 0644 |
|
| atomic-llsc.h | File | 2.49 KB | 0644 |
|
| atomic.h | File | 693 B | 0644 |
|
| barrier.h | File | 1.47 KB | 0644 |
|
| bitops-cas.h | File | 1.73 KB | 0644 |
|
| bitops-grb.h | File | 6.21 KB | 0644 |
|
| bitops-llsc.h | File | 2.79 KB | 0644 |
|
| bitops-op32.h | File | 3.82 KB | 0644 |
|
| bitops.h | File | 1.58 KB | 0644 |
|
| bl_bit.h | File | 66 B | 0644 |
|
| bl_bit_32.h | File | 639 B | 0644 |
|
| bug.h | File | 2.77 KB | 0644 |
|
| cache.h | File | 1.31 KB | 0644 |
|
| cache_insns.h | File | 71 B | 0644 |
|
| cache_insns_32.h | File | 642 B | 0644 |
|
| cacheflush.h | File | 4.22 KB | 0644 |
|
| cachetype.h | File | 170 B | 0644 |
|
| checksum.h | File | 68 B | 0644 |
|
| checksum_32.h | File | 4.92 KB | 0644 |
|
| clock.h | File | 436 B | 0644 |
|
| cmpxchg-cas.h | File | 549 B | 0644 |
|
| cmpxchg-grb.h | File | 2.8 KB | 0644 |
|
| cmpxchg-irq.h | File | 1.04 KB | 0644 |
|
| cmpxchg-llsc.h | File | 1.06 KB | 0644 |
|
| cmpxchg-xchg.h | File | 1.24 KB | 0644 |
|
| cmpxchg.h | File | 2.09 KB | 0644 |
|
| device.h | File | 442 B | 0644 |
|
| dma-register.h | File | 1.67 KB | 0644 |
|
| dma.h | File | 3.09 KB | 0644 |
|
| dmabrg.h | File | 536 B | 0644 |
|
| dwarf.h | File | 9.66 KB | 0644 |
|
| elf.h | File | 5.87 KB | 0644 |
|
| entry-macros.S | File | 1.85 KB | 0644 |
|
| extable.h | File | 135 B | 0644 |
|
| fixmap.h | File | 2.48 KB | 0644 |
|
| flat.h | File | 865 B | 0644 |
|
| fpu.h | File | 1.67 KB | 0644 |
|
| freq.h | File | 212 B | 0644 |
|
| ftrace.h | File | 1.41 KB | 0644 |
|
| futex-cas.h | File | 728 B | 0644 |
|
| futex-irq.h | File | 482 B | 0644 |
|
| futex-llsc.h | File | 870 B | 0644 |
|
| futex.h | File | 1.35 KB | 0644 |
|
| hardirq.h | File | 267 B | 0644 |
|
| hd64461.h | File | 11.79 KB | 0644 |
|
| heartbeat.h | File | 383 B | 0644 |
|
| hugetlb.h | File | 552 B | 0644 |
|
| hw_breakpoint.h | File | 1.99 KB | 0644 |
|
| hw_irq.h | File | 915 B | 0644 |
|
| i2c-sh7760.h | File | 406 B | 0644 |
|
| io.h | File | 8.88 KB | 0644 |
|
| io_generic.h | File | 661 B | 0644 |
|
| io_noioport.h | File | 1.25 KB | 0644 |
|
| io_trapped.h | File | 1.44 KB | 0644 |
|
| irq.h | File | 1.16 KB | 0644 |
|
| irqflags.h | File | 226 B | 0644 |
|
| kdebug.h | File | 433 B | 0644 |
|
| kexec.h | File | 2.62 KB | 0644 |
|
| kgdb.h | File | 851 B | 0644 |
|
| kprobes.h | File | 1.27 KB | 0644 |
|
| linkage.h | File | 154 B | 0644 |
|
| machvec.h | File | 699 B | 0644 |
|
| mmiowb.h | File | 246 B | 0644 |
|
| mmu.h | File | 2.18 KB | 0644 |
|
| mmu_context.h | File | 4.07 KB | 0644 |
|
| mmu_context_32.h | File | 1.11 KB | 0644 |
|
| mmzone.h | File | 970 B | 0644 |
|
| module.h | File | 276 B | 0644 |
|
| page.h | File | 4.6 KB | 0644 |
|
| pci.h | File | 2.78 KB | 0644 |
|
| perf_event.h | File | 797 B | 0644 |
|
| pgalloc.h | File | 1.13 KB | 0644 |
|
| pgtable-2level.h | File | 567 B | 0644 |
|
| pgtable-3level.h | File | 1.5 KB | 0644 |
|
| pgtable.h | File | 3.89 KB | 0644 |
|
| pgtable_32.h | File | 16.53 KB | 0644 |
|
| platform_early.h | File | 1.81 KB | 0644 |
|
| posix_types.h | File | 71 B | 0644 |
|
| processor.h | File | 4.22 KB | 0644 |
|
| processor_32.h | File | 4.41 KB | 0644 |
|
| ptrace.h | File | 3.74 KB | 0644 |
|
| ptrace_32.h | File | 307 B | 0644 |
|
| push-switch.h | File | 755 B | 0644 |
|
| reboot.h | File | 472 B | 0644 |
|
| romimage-macros.h | File | 1.1 KB | 0644 |
|
| rtc.h | File | 226 B | 0644 |
|
| seccomp.h | File | 546 B | 0644 |
|
| sections.h | File | 311 B | 0644 |
|
| setup.h | File | 764 B | 0644 |
|
| sfp-machine.h | File | 2.7 KB | 0644 |
|
| sh7760fb.h | File | 5.61 KB | 0644 |
|
| sh_bios.h | File | 743 B | 0644 |
|
| shmparam.h | File | 489 B | 0644 |
|
| siu.h | File | 385 B | 0644 |
|
| smc37c93x.h | File | 5.56 KB | 0644 |
|
| smp-ops.h | File | 1.02 KB | 0644 |
|
| smp.h | File | 1.8 KB | 0644 |
|
| sparsemem.h | File | 319 B | 0644 |
|
| spi.h | File | 265 B | 0644 |
|
| spinlock-cas.h | File | 1.95 KB | 0644 |
|
| spinlock-llsc.h | File | 4.05 KB | 0644 |
|
| spinlock.h | File | 438 B | 0644 |
|
| spinlock_types.h | File | 469 B | 0644 |
|
| sram.h | File | 670 B | 0644 |
|
| stackprotector.h | File | 532 B | 0644 |
|
| stacktrace.h | File | 528 B | 0644 |
|
| string.h | File | 66 B | 0644 |
|
| string_32.h | File | 2.16 KB | 0644 |
|
| suspend.h | File | 2.52 KB | 0644 |
|
| switch_to.h | File | 190 B | 0644 |
|
| switch_to_32.h | File | 3.55 KB | 0644 |
|
| syscall.h | File | 201 B | 0644 |
|
| syscall_32.h | File | 1.59 KB | 0644 |
|
| syscalls.h | File | 532 B | 0644 |
|
| syscalls_32.h | File | 979 B | 0644 |
|
| thread_info.h | File | 4.95 KB | 0644 |
|
| timex.h | File | 637 B | 0644 |
|
| tlb.h | File | 738 B | 0644 |
|
| tlbflush.h | File | 1.77 KB | 0644 |
|
| topology.h | File | 645 B | 0644 |
|
| traps.h | File | 424 B | 0644 |
|
| traps_32.h | File | 1.42 KB | 0644 |
|
| types.h | File | 332 B | 0644 |
|
| uaccess.h | File | 4.05 KB | 0644 |
|
| uaccess_32.h | File | 4.89 KB | 0644 |
|
| uncached.h | File | 1.34 KB | 0644 |
|
| unistd.h | File | 953 B | 0644 |
|
| unwinder.h | File | 856 B | 0644 |
|
| user.h | File | 2.19 KB | 0644 |
|
| vermagic.h | File | 709 B | 0644 |
|
| vmalloc.h | File | 84 B | 0644 |
|
| vmlinux.lds.h | File | 416 B | 0644 |
|
| watchdog.h | File | 3.89 KB | 0644 |
|
| word-at-a-time.h | File | 1.34 KB | 0644 |
|