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