cregit-Linux how code gets into the kernel

Release 4.7 tools/lib/symbol/kallsyms.c

Directory: tools/lib/symbol
#include "symbol/kallsyms.h"
#include <stdio.h>
#include <stdlib.h>


u8 kallsyms2elf_type(char type) { type = tolower(type); return (type == 't' || type == 'w') ? STT_FUNC : STT_OBJECT; }

Contributors

PersonTokensPropCommitsCommitProp
arnaldo carvalho de meloarnaldo carvalho de melo30100.00%1100.00%
Total30100.00%1100.00%


int kallsyms__parse(const char *filename, void *arg, int (*process_symbol)(void *arg, const char *name, char type, u64 start)) { char *line = NULL; size_t n; int err = -1; FILE *file = fopen(filename, "r"); if (file == NULL) goto out_failure; err = 0; while (!feof(file)) { u64 start; int line_len, len; char symbol_type; char *symbol_name; line_len = getline(&line, &n, file); if (line_len < 0 || !line) break; line[--line_len] = '\0'; /* \n */ len = hex2u64(line, &start); len++; if (len + 2 >= line_len) continue; symbol_type = line[len]; len += 2; symbol_name = line + len; len = line_len - len; if (len >= KSYM_NAME_LEN) { err = -1; break; } err = process_symbol(arg, symbol_name, symbol_type, start); if (err) break; } free(line); fclose(file); return err; out_failure: return -1; }

Contributors

PersonTokensPropCommitsCommitProp
arnaldo carvalho de meloarnaldo carvalho de melo228100.00%1100.00%
Total228100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
arnaldo carvalho de meloarnaldo carvalho de melo267100.00%2100.00%
Total267100.00%2100.00%
Directory: tools/lib/symbol
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}