1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __TOOLS_KALLSYMS_H_ 3 #define __TOOLS_KALLSYMS_H_ 1 4 5 #include <elf.h> 6 #include <linux/ctype.h> 7 #include <linux/types.h> 8 9 #ifndef KSYM_NAME_LEN 10 #define KSYM_NAME_LEN 256 11 #endif 12 13 static inline u8 kallsyms2elf_binding(char type) 14 { 15 if (type == 'W') 16 return STB_WEAK; 17 18 return isupper(type) ? STB_GLOBAL : STB_LOCAL; 19 } 20 21 u8 kallsyms2elf_type(char type); 22 23 bool kallsyms__is_function(char symbol_type); 24 25 int kallsyms__parse(const char *filename, void *arg, 26 int (*process_symbol)(void *arg, const char *name, 27 char type, u64 start)); 28 29 #endif /* __TOOLS_KALLSYMS_H_ */ 30