ppc_inst_t
bool wp_check_constraints(struct pt_regs *regs, ppc_inst_t instr,
void wp_get_instr_detail(struct pt_regs *regs, ppc_inst_t *instr,
static inline int ppc_inst_len(ppc_inst_t x)
ppc_inst_t tmp;
static inline unsigned long ppc_inst_as_ulong(ppc_inst_t x)
static inline void ppc_inst_write(u32 *ptr, ppc_inst_t x)
ppc_inst_t __gui_inst; \
static inline int __copy_inst_from_kernel_nofault(ppc_inst_t *inst, u32 *src)
static inline int copy_inst_from_kernel_nofault(ppc_inst_t *inst, u32 *src)
static inline u32 ppc_inst_val(ppc_inst_t x)
#define ppc_inst(x) ((ppc_inst_t){ .val = (x) })
static inline u32 ppc_inst_val(ppc_inst_t x)
static inline int ppc_inst_primary_opcode(ppc_inst_t x)
#define ppc_inst_prefix(x, y) ((ppc_inst_t){ .val = (x), .suffix = (y) })
static inline u32 ppc_inst_suffix(ppc_inst_t x)
static inline u32 ppc_inst_suffix(ppc_inst_t x)
static inline ppc_inst_t ppc_inst_read(const u32 *ptr)
static inline bool ppc_inst_prefixed(ppc_inst_t x)
static inline ppc_inst_t ppc_inst_swab(ppc_inst_t x)
static inline bool ppc_inst_equal(ppc_inst_t x, ppc_inst_t y)
enum instruction_fetch_type type, ppc_inst_t *inst)
ppc_inst_t instr);
int emulate_step(struct pt_regs *regs, ppc_inst_t instr);
static inline int patch_instruction_site(s32 *site, ppc_inst_t instr)
static inline unsigned int branch_opcode(ppc_inst_t instr)
static inline int instr_is_branch_iform(ppc_inst_t instr)
static inline int instr_is_branch_bform(ppc_inst_t instr)
int instr_is_relative_branch(ppc_inst_t instr);
int instr_is_relative_link_branch(ppc_inst_t instr);
int translate_branch(ppc_inst_t *instr, const u32 *dest, const u32 *src);
bool is_conditional_branch(ppc_inst_t instr);
static inline int create_branch(ppc_inst_t *instr, const u32 *addr,
int create_cond_branch(ppc_inst_t *instr, const u32 *addr,
int patch_instruction(u32 *addr, ppc_inst_t instr);
int raw_patch_instruction(u32 *addr, ppc_inst_t instr);
ppc_inst_t ppc_instr)
ppc_inst_t instr;
ppc_inst_t inst = ppc_inst(be32_to_cpu(insts[i]));
int *hit, ppc_inst_t instr)
ppc_inst_t instr = ppc_inst(0);
void wp_get_instr_detail(struct pt_regs *regs, ppc_inst_t *instr,
bool wp_check_constraints(struct pt_regs *regs, ppc_inst_t instr,
ppc_inst_t insn = ppc_inst_read(p->addr);
ppc_inst_t insn = ppc_inst_read(p->ainsn.insn);
ppc_inst_t instr;
ppc_inst_t jmp[4];
ppc_inst_t branch_op_callback, branch_emulate_step, temp;
ppc_inst_t instr;
ppc_inst_t instr = ppc_inst(0);
ppc_inst_t insn;
static inline int ftrace_modify_code(unsigned long ip, ppc_inst_t old, ppc_inst_t new)
static int is_bl_op(ppc_inst_t op)
static int ftrace_get_call_inst(struct dyn_ftrace *rec, unsigned long addr, ppc_inst_t *call_inst)
ppc_inst_t inst;
ppc_inst_t old, new;
ppc_inst_t old, new, call_inst, new_call_inst;
ppc_inst_t nop_inst = ppc_inst(PPC_RAW_NOP());
ppc_inst_t old, new;
ppc_inst_t old, new;
static ppc_inst_t ftrace_create_branch_inst(unsigned long ip, unsigned long addr, int link)
ppc_inst_t op;
static inline int ftrace_read_inst(unsigned long ip, ppc_inst_t *op)
static inline int ftrace_validate_inst(unsigned long ip, ppc_inst_t inst)
ppc_inst_t op;
static int is_b_op(ppc_inst_t op)
static unsigned long find_bl_target(unsigned long ip, ppc_inst_t op)
ppc_inst_t op, pop;
ppc_inst_t op;
ppc_inst_t op;
ppc_inst_t old, new;
static bool expected_nop_sequence(void *ip, ppc_inst_t op0, ppc_inst_t op1)
ppc_inst_t op[2];
static ppc_inst_t
ppc_inst_t op;
ppc_inst_t op;
ppc_inst_t old, new;
ppc_inst_t op;
ftrace_modify_code(unsigned long ip, ppc_inst_t old, ppc_inst_t new)
ppc_inst_t replaced;
ppc_inst_t old, new;
ppc_inst_t old, new;
ppc_inst_t old, new;
static int is_bl_op(ppc_inst_t op)
ppc_inst_t insn;
ppc_inst_t instr;
static int instruction_is_store(ppc_inst_t instr)
ppc_inst_t last_inst;
ppc_inst_t last_inst;
ppc_inst_t pinst;
ppc_inst_t pinst;
ppc_inst_t last_inst;
ppc_inst_t last_sc;
ppc_inst_t last_inst;
ppc_inst_t last_inst;
ppc_inst_t pinst;
ppc_inst_t pinst;
ppc_inst_t inst;
ppc_inst_t last_inst;
int patch_instruction(u32 *addr, ppc_inst_t instr)
int patch_instruction(u32 *addr, ppc_inst_t instr)
int raw_patch_instruction(u32 *addr, ppc_inst_t instr)
ppc_inst_t instr = ppc_inst_read(code);
ppc_inst_t instr;
bool is_conditional_branch(ppc_inst_t instr)
int create_cond_branch(ppc_inst_t *instr, const u32 *addr,
int instr_is_relative_branch(ppc_inst_t instr)
int instr_is_relative_link_branch(ppc_inst_t instr)
int translate_branch(ppc_inst_t *instr, const u32 *dest, const u32 *src)
ppc_inst_t instr;
ppc_inst_t inst;
ppc_inst_t instr)
int emulate_step(struct pt_regs *regs, ppc_inst_t instr)
ppc_inst_t instr;
ppc_inst_t instr;
ppc_inst_t instr;
ppc_inst_t instr;
ppc_inst_t inst = ppc_inst_prefix(OP_PREFIX << 26, 0);
ppc_inst_t inst64 = ppc_inst_prefix(OP_PREFIX << 26 | 3UL << 24, PPC_RAW_TRAP());
ppc_inst_t instr,
ppc_inst_t instr)
ppc_inst_t instr;
ppc_inst_t instr;
ppc_inst_t instr;
static int bpf_modify_inst(void *ip, ppc_inst_t old_inst, ppc_inst_t new_inst)
ppc_inst_t org_inst;
ppc_inst_t old_inst, new_inst;
ppc_inst_t branch_insn;
ppc_inst_t branch_insn;
ppc_inst_t insn = ppc_inst(PPC_RAW_MFSPR(10, SPRN_SPRG_SCRATCH2));
ppc_inst_t instr;
static int mread_instr(unsigned long, ppc_inst_t *);
ppc_inst_t instr;
mread_instr(unsigned long adrs, ppc_inst_t *instr)
ppc_inst_t inst, last_inst = ppc_inst(0);
ppc_inst_t instr, instr2;
ppc_inst_t instr;
#define BPT_SIZE (sizeof(ppc_inst_t) * 2)
#define BPT_WORDS (BPT_SIZE / sizeof(ppc_inst_t))