Lines Matching refs:len
99 static int bpf_stream_page_check_room(struct bpf_stream_page *stream_page, int len) in bpf_stream_page_check_room() argument
109 return min(len, rem); in bpf_stream_page_check_room()
112 static void bpf_stream_elem_init(struct bpf_stream_elem *elem, int len) in bpf_stream_elem_init() argument
115 elem->total_len = len; in bpf_stream_elem_init()
126 …tic struct bpf_stream_elem *bpf_stream_page_push_elem(struct bpf_stream_page *stream_page, int len) in bpf_stream_page_push_elem() argument
130 stream_page->consumed += round_up(offsetof(struct bpf_stream_elem, str[len]), 8); in bpf_stream_page_push_elem()
134 static struct bpf_stream_elem *bpf_stream_page_reserve_elem(int len) in bpf_stream_page_reserve_elem() argument
146 room = bpf_stream_page_check_room(page, len); in bpf_stream_page_reserve_elem()
147 if (room != len) in bpf_stream_page_reserve_elem()
152 room = bpf_stream_page_check_room(page, len); in bpf_stream_page_reserve_elem()
153 WARN_ON_ONCE(room != len); in bpf_stream_page_reserve_elem()
160 static struct bpf_stream_elem *bpf_stream_elem_alloc(int len) in bpf_stream_elem_alloc() argument
172 if (len < 0 || len > max_len) in bpf_stream_elem_alloc()
177 elem = bpf_stream_page_reserve_elem(len); in bpf_stream_elem_alloc()
182 static int __bpf_stream_push_str(struct llist_head *log, const char *str, int len) in __bpf_stream_push_str() argument
190 elem = bpf_stream_elem_alloc(len); in __bpf_stream_push_str()
194 memcpy(elem->str, str, len); in __bpf_stream_push_str()
200 static int bpf_stream_consume_capacity(struct bpf_stream *stream, int len) in bpf_stream_consume_capacity() argument
204 if (atomic_add_return(len, &stream->capacity) >= BPF_STREAM_MAX_CAPACITY) { in bpf_stream_consume_capacity()
205 atomic_sub(len, &stream->capacity); in bpf_stream_consume_capacity()
213 int len = elem->total_len; in bpf_stream_release_capacity() local
215 atomic_sub(len, &stream->capacity); in bpf_stream_release_capacity()
218 static int bpf_stream_push_str(struct bpf_stream *stream, const char *str, int len) in bpf_stream_push_str() argument
220 int ret = bpf_stream_consume_capacity(stream, len); in bpf_stream_push_str()
222 return ret ?: __bpf_stream_push_str(&stream->log, str, len); in bpf_stream_push_str()
287 static bool bpf_stream_consume_elem(struct bpf_stream_elem *elem, int *len) in bpf_stream_consume_elem() argument
290 int used = min(rem, *len); in bpf_stream_consume_elem()
293 *len -= used; in bpf_stream_consume_elem()
298 static int bpf_stream_read(struct bpf_stream *stream, void __user *buf, int len) in bpf_stream_read() argument
300 int rem_len = len, cons_len, ret = 0; in bpf_stream_read()
307 int pos = len - rem_len; in bpf_stream_read()
339 return ret ? ret : len - rem_len; in bpf_stream_read()
342 …pf_prog_stream_read(struct bpf_prog *prog, enum bpf_stream_id stream_id, void __user *buf, int len) in bpf_prog_stream_read() argument
349 return bpf_stream_read(stream, buf, len); in bpf_prog_stream_read()
423 ss->len = 0; in bpf_stream_stage_init()
446 ss->len += ret; in bpf_stream_stage_printk()
464 ret = bpf_stream_consume_capacity(stream, ss->len); in bpf_stream_stage_commit()