|
@@ -11,6 +11,7 @@
|
|
*/
|
|
*/
|
|
#include <linux/bpf.h>
|
|
#include <linux/bpf.h>
|
|
#include <linux/rcupdate.h>
|
|
#include <linux/rcupdate.h>
|
|
|
|
+#include <linux/random.h>
|
|
|
|
|
|
/* If kernel subsystem is allowing eBPF programs to call this function,
|
|
/* If kernel subsystem is allowing eBPF programs to call this function,
|
|
* inside its own verifier_ops->get_func_proto() callback it should return
|
|
* inside its own verifier_ops->get_func_proto() callback it should return
|
|
@@ -87,3 +88,14 @@ const struct bpf_func_proto bpf_map_delete_elem_proto = {
|
|
.arg1_type = ARG_CONST_MAP_PTR,
|
|
.arg1_type = ARG_CONST_MAP_PTR,
|
|
.arg2_type = ARG_PTR_TO_MAP_KEY,
|
|
.arg2_type = ARG_PTR_TO_MAP_KEY,
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+static u64 bpf_get_prandom_u32(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5)
|
|
|
|
+{
|
|
|
|
+ return prandom_u32();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const struct bpf_func_proto bpf_get_prandom_u32_proto = {
|
|
|
|
+ .func = bpf_get_prandom_u32,
|
|
|
|
+ .gpl_only = false,
|
|
|
|
+ .ret_type = RET_INTEGER,
|
|
|
|
+};
|