dyn_ftrace
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
struct dyn_ftrace *rec, unsigned long addr)
static unsigned long ftrace_nop_replace(struct dyn_ftrace *rec)
static unsigned long __ref adjust_address(struct dyn_ftrace *rec,
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
struct dyn_ftrace;
static bool ftrace_find_callable_addr(struct dyn_ftrace *rec,
static const struct ftrace_ops *arm64_rec_get_ops(struct dyn_ftrace *rec)
static int ftrace_rec_set_ops(const struct dyn_ftrace *rec,
static int ftrace_rec_set_nop_ops(struct dyn_ftrace *rec)
static int ftrace_rec_update_ops(struct dyn_ftrace *rec)
static int ftrace_rec_set_nop_ops(struct dyn_ftrace *rec) { return 0; }
static int ftrace_rec_update_ops(struct dyn_ftrace *rec) { return 0; }
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
struct dyn_ftrace;
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
static bool ftrace_find_callable_addr(struct dyn_ftrace *rec, struct module *mod, unsigned long *addr)
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr, unsigned long addr)
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec, unsigned long addr)
static bool ftrace_find_callable_addr(struct dyn_ftrace *rec, struct module *mod, unsigned long *addr)
struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
struct dyn_ftrace;
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
static unsigned long ftrace_get_ool_stub(struct dyn_ftrace *rec)
static int ftrace_get_call_inst(struct dyn_ftrace *rec, unsigned long addr, ppc_inst_t *call_inst)
static int ftrace_init_ool_stub(struct module *mod, struct dyn_ftrace *rec)
static const struct ftrace_ops *powerpc_rec_get_ops(struct dyn_ftrace *rec)
static int ftrace_rec_set_ops(struct dyn_ftrace *rec, const struct ftrace_ops *ops)
static int ftrace_rec_set_nop_ops(struct dyn_ftrace *rec)
static int ftrace_rec_update_ops(struct dyn_ftrace *rec)
static int ftrace_rec_set_nop_ops(struct dyn_ftrace *rec) { return 0; }
static int ftrace_rec_update_ops(struct dyn_ftrace *rec) { return 0; }
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec, unsigned long addr)
struct dyn_ftrace *rec;
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
static struct module *ftrace_lookup_module(struct dyn_ftrace *rec)
struct dyn_ftrace *rec, unsigned long addr)
static int __ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec, unsigned long addr)
static int __ftrace_make_nop_kernel(struct dyn_ftrace *rec, unsigned long addr)
struct dyn_ftrace *rec, unsigned long addr)
__ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
static int __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
static int __ftrace_make_call_kernel(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
__ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
static int __ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr, unsigned long addr)
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
struct dyn_ftrace;
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
static int ftrace_rec_set_nop_ops(struct dyn_ftrace *rec)
static int ftrace_rec_update_ops(struct dyn_ftrace *rec)
static int ftrace_rec_set_nop_ops(struct dyn_ftrace *rec) { return 0; }
static int ftrace_rec_update_ops(struct dyn_ftrace *rec) { return 0; }
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec, unsigned long addr)
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
static const struct ftrace_ops *riscv64_rec_get_ops(struct dyn_ftrace *rec)
static int ftrace_rec_set_ops(const struct dyn_ftrace *rec, const struct ftrace_ops *ops)
struct dyn_ftrace;
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec);
static struct ftrace_hotpatch_trampoline *ftrace_get_trampoline(struct dyn_ftrace *rec)
static int ftrace_modify_trampoline_call(struct dyn_ftrace *rec,
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
static int ftrace_make_trampoline_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
struct dyn_ftrace *rec;
static void *static_tramp_func(struct ftrace_ops *ops, struct dyn_ftrace *rec)
void *arch_ftrace_trampoline_func(struct ftrace_ops *ops, struct dyn_ftrace *rec)
extern int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr);
extern int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
static inline int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
struct dyn_ftrace;
struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec);
void ftrace_bug(int err, struct dyn_ftrace *rec);
void *arch_ftrace_trampoline_func(struct ftrace_ops *ops, struct dyn_ftrace *rec);
struct dyn_ftrace *ftrace_rec_iter_record(struct ftrace_rec_iter *iter);
int ftrace_update_record(struct dyn_ftrace *rec, bool enable);
int ftrace_test_record(struct dyn_ftrace *rec, bool enable);
unsigned long ftrace_get_addr_new(struct dyn_ftrace *rec);
unsigned long ftrace_get_addr_curr(struct dyn_ftrace *rec);
struct dyn_ftrace *rec, unsigned long addr);
static inline int ftrace_init_nop(struct module *mod, struct dyn_ftrace *rec)
struct dyn_ftrace *records;
#define ENTRY_SIZE sizeof(struct dyn_ftrace)
const struct dyn_ftrace *key = a;
const struct dyn_ftrace *rec = b;
static struct dyn_ftrace *lookup_rec(unsigned long start, unsigned long end)
struct dyn_ftrace *rec = NULL;
struct dyn_ftrace key;
sizeof(struct dyn_ftrace),
struct dyn_ftrace *rec;
static bool test_rec_ops_needs_regs(struct dyn_ftrace *rec)
ftrace_find_tramp_ops_any(struct dyn_ftrace *rec);
ftrace_find_tramp_ops_any_other(struct dyn_ftrace *rec, struct ftrace_ops *op_exclude);
ftrace_find_tramp_ops_next(struct dyn_ftrace *rec, struct ftrace_ops *ops);
static bool skip_record(struct dyn_ftrace *rec)
struct dyn_ftrace *rec;
struct dyn_ftrace *rec, *end = NULL;
void ftrace_bug(int failed, struct dyn_ftrace *rec)
static int ftrace_check_record(struct dyn_ftrace *rec, bool enable, bool update)
int ftrace_update_record(struct dyn_ftrace *rec, bool enable)
int ftrace_test_record(struct dyn_ftrace *rec, bool enable)
ftrace_find_tramp_ops_any(struct dyn_ftrace *rec)
ftrace_find_tramp_ops_any_other(struct dyn_ftrace *rec, struct ftrace_ops *op_exclude)
ftrace_find_tramp_ops_next(struct dyn_ftrace *rec,
ftrace_find_tramp_ops_curr(struct dyn_ftrace *rec)
ftrace_find_tramp_ops_new(struct dyn_ftrace *rec)
ftrace_find_unique_ops(struct dyn_ftrace *rec)
unsigned long ftrace_get_addr_new(struct dyn_ftrace *rec)
unsigned long ftrace_get_addr_curr(struct dyn_ftrace *rec)
__ftrace_replace_code(struct dyn_ftrace *rec, bool enable)
struct dyn_ftrace *rec;
struct dyn_ftrace *ftrace_rec_iter_record(struct ftrace_rec_iter *iter)
ftrace_nop_initialize(struct module *mod, struct dyn_ftrace *rec)
struct dyn_ftrace *rec;
struct dyn_ftrace *p;
struct dyn_ftrace *func;
struct dyn_ftrace *rec = NULL;
arch_ftrace_trampoline_func(struct ftrace_ops *ops, struct dyn_ftrace *rec)
struct dyn_ftrace *rec)
static int test_for_valid_rec(struct dyn_ftrace *rec)
struct dyn_ftrace *rec;
static inline int test_for_valid_rec(struct dyn_ftrace *rec)
static void print_subops(struct seq_file *m, struct ftrace_ops *ops, struct dyn_ftrace *rec)
struct dyn_ftrace *rec;
enter_record(struct ftrace_hash *hash, struct dyn_ftrace *rec, int clear_filter)
struct dyn_ftrace *rec;
ftrace_match_record(struct dyn_ftrace *rec, struct ftrace_glob *func_g,
struct dyn_ftrace *rec;
struct dyn_ftrace *rec;
struct dyn_ftrace *rec;
static int referenced_filters(struct dyn_ftrace *rec)
struct dyn_ftrace *rec;
struct dyn_ftrace *rec;
struct dyn_ftrace *rec;
struct dyn_ftrace *rec)
struct dyn_ftrace *rec) { }
struct dyn_ftrace *rec)
struct dyn_ftrace *rec;
struct dyn_ftrace key;
sizeof(struct dyn_ftrace),