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

uprobes.h (1141B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 */
      6#ifndef __ASM_UPROBES_H
      7#define __ASM_UPROBES_H
      8
      9#include <linux/notifier.h>
     10#include <linux/types.h>
     11
     12#include <asm/break.h>
     13#include <asm/inst.h>
     14
     15/*
     16 * We want this to be defined as union mips_instruction but that makes the
     17 * generic code blow up.
     18 */
     19typedef u32 uprobe_opcode_t;
     20
     21/*
     22 * Classic MIPS (note this implementation doesn't consider microMIPS yet)
     23 * instructions are always 4 bytes but in order to deal with branches and
     24 * their delay slots, we treat instructions as having 8 bytes maximum.
     25 */
     26#define MAX_UINSN_BYTES			8
     27#define UPROBE_XOL_SLOT_BYTES		128	/* Max. cache line size */
     28
     29#define UPROBE_BRK_UPROBE		0x000d000d	/* break 13 */
     30#define UPROBE_BRK_UPROBE_XOL		0x000e000d	/* break 14 */
     31
     32#define UPROBE_SWBP_INSN		UPROBE_BRK_UPROBE
     33#define UPROBE_SWBP_INSN_SIZE		4
     34
     35struct arch_uprobe {
     36	unsigned long	resume_epc;
     37	u32	insn[2];
     38	u32	ixol[2];
     39};
     40
     41struct arch_uprobe_task {
     42	unsigned long saved_trap_nr;
     43};
     44
     45#endif /* __ASM_UPROBES_H */