1// SPDX-License-Identifier: GPL-2.0 2#include <vmlinux.h> 3#include <bpf/bpf_helpers.h> 4#include "bpf_experimental.h" 5 6SEC("?fentry") 7int pfentry(void *ctx) 8{ 9 return 0; 10} 11 12SEC("?fentry") 13int throwing_fentry(void *ctx) 14{ 15 bpf_throw(0); 16 return 0; 17} 18 19__noinline int exception_cb(u64 cookie) 20{ 21 return cookie + 64; 22} 23 24SEC("?freplace") 25int extension(struct __sk_buff *ctx) 26{ 27 return 0; 28} 29 30SEC("?freplace") 31__exception_cb(exception_cb) 32int throwing_exception_cb_extension(u64 cookie) 33{ 34 bpf_throw(32); 35 return 0; 36} 37 38SEC("?freplace") 39__exception_cb(exception_cb) 40int throwing_extension(struct __sk_buff *ctx) 41{ 42 bpf_throw(64); 43 return 0; 44} 45 46SEC("?fexit") 47int pfexit(void *ctx) 48{ 49 return 0; 50} 51 52SEC("?fexit") 53int throwing_fexit(void *ctx) 54{ 55 bpf_throw(0); 56 return 0; 57} 58 59SEC("?fmod_ret") 60int pfmod_ret(void *ctx) 61{ 62 return 0; 63} 64 65SEC("?fmod_ret") 66int throwing_fmod_ret(void *ctx) 67{ 68 bpf_throw(0); 69 return 0; 70} 71 72char _license[] SEC("license") = "GPL"; 73