.. | .. |
---|
8 | 8 | #include <linux/netdevice.h> |
---|
9 | 9 | #include <linux/version.h> |
---|
10 | 10 | #include <uapi/linux/bpf.h> |
---|
11 | | -#include "bpf_helpers.h" |
---|
| 11 | +#include <bpf/bpf_helpers.h> |
---|
| 12 | +#include <bpf/bpf_tracing.h> |
---|
| 13 | +#include "trace_common.h" |
---|
12 | 14 | |
---|
13 | | -struct bpf_map_def SEC("maps") my_map = { |
---|
14 | | - .type = BPF_MAP_TYPE_HASH, |
---|
15 | | - .key_size = sizeof(long), |
---|
16 | | - .value_size = sizeof(long), |
---|
17 | | - .max_entries = 1024, |
---|
18 | | -}; |
---|
| 15 | +struct { |
---|
| 16 | + __uint(type, BPF_MAP_TYPE_HASH); |
---|
| 17 | + __type(key, long); |
---|
| 18 | + __type(value, long); |
---|
| 19 | + __uint(max_entries, 1024); |
---|
| 20 | +} my_map SEC(".maps"); |
---|
19 | 21 | |
---|
20 | 22 | /* kprobe is NOT a stable ABI. If kernel internals change this bpf+kprobe |
---|
21 | 23 | * example will no longer be meaningful |
---|
.. | .. |
---|
69 | 71 | u64 index; |
---|
70 | 72 | }; |
---|
71 | 73 | |
---|
72 | | -struct bpf_map_def SEC("maps") my_hist_map = { |
---|
73 | | - .type = BPF_MAP_TYPE_PERCPU_HASH, |
---|
74 | | - .key_size = sizeof(struct hist_key), |
---|
75 | | - .value_size = sizeof(long), |
---|
76 | | - .max_entries = 1024, |
---|
77 | | -}; |
---|
| 74 | +struct { |
---|
| 75 | + __uint(type, BPF_MAP_TYPE_PERCPU_HASH); |
---|
| 76 | + __uint(key_size, sizeof(struct hist_key)); |
---|
| 77 | + __uint(value_size, sizeof(long)); |
---|
| 78 | + __uint(max_entries, 1024); |
---|
| 79 | +} my_hist_map SEC(".maps"); |
---|
78 | 80 | |
---|
79 | | -SEC("kprobe/sys_write") |
---|
| 81 | +SEC("kprobe/" SYSCALL(sys_write)) |
---|
80 | 82 | int bpf_prog3(struct pt_regs *ctx) |
---|
81 | 83 | { |
---|
82 | 84 | long write_size = PT_REGS_PARM3(ctx); |
---|