Lines Matching refs:fbuf
20 static struct ftrace_buf *fbuf;
51 fbuf = (struct ftrace_buf *)(vaddr_t)finfo->buf_start.ptr64;
52 fbuf->head_off = sizeof(struct ftrace_buf);
53 p = (char *)fbuf + fbuf->head_off;
60 fbuf->ret_func_ptr = finfo->ret_ptr.ptr64;
61 fbuf->ret_idx = 0;
62 fbuf->lr_idx = 0;
63 fbuf->suspend_time = 0;
64 fbuf->buf_off = fbuf->head_off + count;
71 fbuf->buf_off++;
76 fbuf->buf_off += sizeof(magic);
78 fbuf->curr_idx = 0;
79 fbuf->max_size = fbuf_size - sizeof(struct ftrace_buf) - count;
80 fbuf->syscall_trace_enabled = false;
81 fbuf->syscall_trace_suspended = false;
83 *fbuf_ptr = fbuf;
91 if (fbuf) {
93 char *hstart = (char *)fbuf + fbuf->head_off;
94 char *cstart = (char *)fbuf + fbuf->buf_off;
95 char *ccurr = cstart + fbuf->curr_idx * sizeof(uint64_t);
102 if (fbuf->overflow)
103 csize = fbuf->max_size;
105 csize = fbuf->curr_idx * sizeof(uint64_t);
106 dump_size = fbuf->buf_off - fbuf->head_off + csize;
110 if (!fbuf->dump_id)
111 copy_func(pctx, hstart, fbuf->buf_off - fbuf->head_off);
112 if (fbuf->overflow) {
123 if (fbuf)
124 return fbuf->dump_id;
131 if (fbuf) {
132 fbuf->curr_idx = 0;
133 fbuf->overflow = false;
139 if (fbuf) {
140 if (*lr == fbuf->ret_func_ptr &&
141 fbuf->lr_idx < fbuf->ret_idx) {
142 fbuf->lr_idx++;
143 *lr = fbuf->ret_stack[fbuf->ret_idx - fbuf->lr_idx];