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