cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

kprobes.h (1343B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * arch/parisc/include/asm/kprobes.h
      4 *
      5 * PA-RISC kprobes implementation
      6 *
      7 * Copyright (c) 2019 Sven Schnelle <svens@stackframe.org>
      8 */
      9
     10#ifndef _PARISC_KPROBES_H
     11#define _PARISC_KPROBES_H
     12
     13#ifdef CONFIG_KPROBES
     14
     15#include <asm-generic/kprobes.h>
     16#include <linux/types.h>
     17#include <linux/ptrace.h>
     18#include <linux/notifier.h>
     19
     20#define PARISC_KPROBES_BREAK_INSN	0x3ff801f
     21#define PARISC_KPROBES_BREAK_INSN2	0x3ff801e
     22#define  __ARCH_WANT_KPROBES_INSN_SLOT
     23#define MAX_INSN_SIZE 2
     24
     25typedef u32 kprobe_opcode_t;
     26struct kprobe;
     27
     28void arch_remove_kprobe(struct kprobe *p);
     29
     30#define flush_insn_slot(p) \
     31	flush_icache_range((unsigned long)&(p)->ainsn.insn[0], \
     32			   (unsigned long)&(p)->ainsn.insn[0] + \
     33			   MAX_INSN_SIZE*sizeof(kprobe_opcode_t))
     34
     35#define kretprobe_blacklist_size    0
     36
     37struct arch_specific_insn {
     38	kprobe_opcode_t *insn;
     39};
     40
     41struct prev_kprobe {
     42	struct kprobe *kp;
     43	unsigned long status;
     44};
     45
     46struct kprobe_ctlblk {
     47	unsigned int kprobe_status;
     48	struct prev_kprobe prev_kprobe;
     49	unsigned long iaoq[2];
     50};
     51
     52int __kprobes parisc_kprobe_break_handler(struct pt_regs *regs);
     53int __kprobes parisc_kprobe_ss_handler(struct pt_regs *regs);
     54static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr)
     55{
     56	return 0;
     57}
     58
     59#endif /* CONFIG_KPROBES */
     60#endif /* _PARISC_KPROBES_H */