#define BPF_PROG(name, args...) \
int name(unsigned long long *ctx); \
__attribute__((always_inline)) \
-static void ____##name(unsigned long long *ctx, ##args); \
+static int ____##name(unsigned long long *ctx, ##args); \
int name(unsigned long long *ctx) \
{ \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic pop") \
return 0; \
} \
-static void ____##name(unsigned long long *ctx, ##args)
+static int ____##name(unsigned long long *ctx, ##args)
#define KFUNC_PROBE(event, args...) \
BPF_PROG(kfunc__ ## event, args)
program_kfunc = """
KFUNC_PROBE(mutex_unlock, void *lock)
{
- do_mutex_unlock_enter();
+ return do_mutex_unlock_enter();
}
KRETFUNC_PROBE(mutex_lock, void *lock, int ret)
{
- do_mutex_lock_return();
+ return do_mutex_lock_return();
}
KFUNC_PROBE(mutex_lock, void *lock)
{
- do_mutex_lock_enter(ctx, 3);
+ return do_mutex_lock_enter(ctx, 3);
}
"""