Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.17-rc1 51 lines 1.1 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2#include <stdio.h> 3#include <unistd.h> 4#include <linux/bpf.h> 5#include <string.h> 6#include <assert.h> 7#include <sys/resource.h> 8#include "libbpf.h" 9#include "bpf_load.h" 10 11int main(int ac, char **argv) 12{ 13 struct rlimit r = {RLIM_INFINITY, RLIM_INFINITY}; 14 long key, next_key, value; 15 char filename[256]; 16 struct ksym *sym; 17 int i; 18 19 snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); 20 setrlimit(RLIMIT_MEMLOCK, &r); 21 22 if (load_kallsyms()) { 23 printf("failed to process /proc/kallsyms\n"); 24 return 2; 25 } 26 27 if (load_bpf_file(filename)) { 28 printf("%s", bpf_log_buf); 29 return 1; 30 } 31 32 for (i = 0; i < 5; i++) { 33 key = 0; 34 printf("kprobing funcs:"); 35 while (bpf_map_get_next_key(map_fd[0], &key, &next_key) == 0) { 36 bpf_map_lookup_elem(map_fd[0], &next_key, &value); 37 assert(next_key == value); 38 sym = ksym_search(value); 39 printf(" %s", sym->name); 40 key = next_key; 41 } 42 if (key) 43 printf("\n"); 44 key = 0; 45 while (bpf_map_get_next_key(map_fd[0], &key, &next_key) == 0) 46 bpf_map_delete_elem(map_fd[0], &next_key); 47 sleep(1); 48 } 49 50 return 0; 51}