loop_ctx
static int do_lookup(unsigned int elem, struct loop_ctx *lctx)
struct loop_ctx *lctx = (struct loop_ctx *)ctx;
struct loop_ctx lctx;
static int bpf_test_socket_sockopt(__u32 i, struct loop_ctx *lc)
static int bpf_test_ip_sockopt(__u32 i, struct loop_ctx *lc)
static int bpf_test_ipv6_sockopt(__u32 i, struct loop_ctx *lc)
static int bpf_test_tcp_sockopt(__u32 i, struct loop_ctx *lc)
struct loop_ctx lc = { .ctx = ctx, .sk = sk, };
struct num_context loop_ctx = { .i = 0 };
bpf_loop(100, loop_detection_cb, &loop_ctx, 0);
struct num_context loop_ctx = { .i = 0 };
bpf_for_each_map_elem(&map, for_each_map_elem_cb, &loop_ctx, 0);
return choice_arr[loop_ctx.i];
struct num_context loop_ctx = { .i = 0 };
bpf_user_ringbuf_drain(&ringbuf, ringbuf_drain_cb, &loop_ctx, 0);
return choice_arr[loop_ctx.i];
struct num_context loop_ctx = { .i = 0 };
bpf_find_vma(task, 0, find_vma_cb, &loop_ctx, 0);
return choice_arr[loop_ctx.i];
struct buf_context loop_ctx = { .buf = buf };
bpf_loop(100, unsafe_on_2nd_iter_cb, &loop_ctx, 0);
struct num_context loop_ctx = { .i = 32 };
bpf_loop(100, unsafe_on_zero_iter_cb, &loop_ctx, 0);
return choice_arr[loop_ctx.i];
struct num_context loop_ctx = { .i = 0, .j = 1 };
bpf_loop(100, widening_cb, &loop_ctx, 0);
return choice_arr[loop_ctx.j];
struct tcpopt_context loop_ctx = {
bpf_loop(6, tscookie_tcpopt_parse_batch, &loop_ctx, 0);
if (!loop_ctx.option_timestamp)
cookie |= loop_ctx.wscale & TS_OPT_WSCALE_MASK;
if (loop_ctx.option_sack)