xref: /linux/tools/lib/symbol/kallsyms.h (revision c506c96b61fa96c9a52ad4d25e895e45c1692650)
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