Lines Matching +full:- +full:- +full:count

1 // SPDX-License-Identifier: BSD-2-Clause
28 int count = 0; in ftrace_init() local
40 assert(elf && elf->is_main); in ftrace_init()
42 if (SUB_OVERFLOW(finfo->buf_end.ptr64, finfo->buf_start.ptr64, in ftrace_init()
51 fbuf = (struct ftrace_buf *)(vaddr_t)finfo->buf_start.ptr64; in ftrace_init()
52 fbuf->head_off = sizeof(struct ftrace_buf); in ftrace_init()
53 p = (char *)fbuf + fbuf->head_off; in ftrace_init()
54 count = snprintk(p, MAX_HEADER_STRLEN, in ftrace_init()
56 (void *)&elf->uuid, elf->load_addr); in ftrace_init()
57 assert(count < MAX_HEADER_STRLEN); in ftrace_init()
58 p += count; in ftrace_init()
60 fbuf->ret_func_ptr = finfo->ret_ptr.ptr64; in ftrace_init()
61 fbuf->ret_idx = 0; in ftrace_init()
62 fbuf->lr_idx = 0; in ftrace_init()
63 fbuf->suspend_time = 0; in ftrace_init()
64 fbuf->buf_off = fbuf->head_off + count; in ftrace_init()
66 pad = 8 - (vaddr_t)p % 8; in ftrace_init()
69 while (pad--) { in ftrace_init()
71 fbuf->buf_off++; in ftrace_init()
72 count++; in ftrace_init()
76 fbuf->buf_off += sizeof(magic); in ftrace_init()
77 count += sizeof(magic); in ftrace_init()
78 fbuf->curr_idx = 0; in ftrace_init()
79 fbuf->max_size = fbuf_size - sizeof(struct ftrace_buf) - count; in ftrace_init()
80 fbuf->syscall_trace_enabled = false; in ftrace_init()
81 fbuf->syscall_trace_suspended = false; in ftrace_init()
93 char *hstart = (char *)fbuf + fbuf->head_off; in ftrace_copy_buf()
94 char *cstart = (char *)fbuf + fbuf->buf_off; in ftrace_copy_buf()
95 char *ccurr = cstart + fbuf->curr_idx * sizeof(uint64_t); in ftrace_copy_buf()
100 assert(elf && elf->is_main); in ftrace_copy_buf()
102 if (fbuf->overflow) in ftrace_copy_buf()
103 csize = fbuf->max_size; in ftrace_copy_buf()
105 csize = fbuf->curr_idx * sizeof(uint64_t); in ftrace_copy_buf()
106 dump_size = fbuf->buf_off - fbuf->head_off + csize; in ftrace_copy_buf()
110 copy_func(pctx, hstart, fbuf->buf_off - fbuf->head_off); in ftrace_copy_buf()
111 if (fbuf->overflow) { in ftrace_copy_buf()
113 copy_func(pctx, ccurr, end - ccurr); in ftrace_copy_buf()
116 copy_func(pctx, cstart, ccurr - cstart); in ftrace_copy_buf()
123 if (*lr == fbuf->ret_func_ptr && in ftrace_map_lr()
124 fbuf->lr_idx < fbuf->ret_idx) { in ftrace_map_lr()
125 fbuf->lr_idx++; in ftrace_map_lr()
126 *lr = fbuf->ret_stack[fbuf->ret_idx - fbuf->lr_idx]; in ftrace_map_lr()