mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-31 22:34:33 +01:00
Add objtool --stats to count the jump_label sites it encounters. Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Link: https://lore.kernel.org/r/[email protected]
37 lines
840 B
C
37 lines
840 B
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2020 Matt Helsley <[email protected]>
|
|
*/
|
|
|
|
#ifndef _OBJTOOL_H
|
|
#define _OBJTOOL_H
|
|
|
|
#include <stdbool.h>
|
|
#include <linux/list.h>
|
|
#include <linux/hashtable.h>
|
|
|
|
#include <objtool/elf.h>
|
|
|
|
#define __weak __attribute__((weak))
|
|
|
|
struct objtool_file {
|
|
struct elf *elf;
|
|
struct list_head insn_list;
|
|
DECLARE_HASHTABLE(insn_hash, 20);
|
|
struct list_head retpoline_call_list;
|
|
struct list_head static_call_list;
|
|
struct list_head mcount_loc_list;
|
|
bool ignore_unreachables, c_file, hints, rodata;
|
|
|
|
unsigned long jl_short, jl_long;
|
|
unsigned long jl_nop_short, jl_nop_long;
|
|
};
|
|
|
|
struct objtool_file *objtool_open_read(const char *_objname);
|
|
|
|
int check(struct objtool_file *file);
|
|
int orc_dump(const char *objname);
|
|
int orc_create(struct objtool_file *file);
|
|
|
|
#endif /* _OBJTOOL_H */
|