Lines Matching +full:per +full:- +full:string
1 // SPDX-License-Identifier: GPL-2.0
21 * seq_buf_can_fit - can the new data fit in the current buffer?
30 return s->len + len <= s->size; in seq_buf_can_fit()
34 * seq_buf_print_seq - move the contents of seq_buf into a seq_file
44 return seq_write(m, s->buffer, len); in seq_buf_print_seq()
48 * seq_buf_vprintf - sequence printing of information.
50 * @fmt: printf format string
55 * Returns zero on success, -1 on overflow.
61 WARN_ON(s->size == 0); in seq_buf_vprintf()
63 if (s->len < s->size) { in seq_buf_vprintf()
64 len = vsnprintf(s->buffer + s->len, s->size - s->len, fmt, args); in seq_buf_vprintf()
65 if (s->len + len < s->size) { in seq_buf_vprintf()
66 s->len += len; in seq_buf_vprintf()
71 return -1; in seq_buf_vprintf()
75 * seq_buf_printf - sequence printing of information
77 * @fmt: printf format string
81 * Returns zero on success, -1 on overflow.
97 * seq_buf_do_printk - printk seq_buf line by line
101 * printk()-s a multi-line sequential buffer line by line. The function
103 * as a string.
109 if (s->size == 0 || s->len == 0) in seq_buf_do_printk()
114 int len = lf - start + 1; in seq_buf_do_printk()
121 if (start < s->buffer + s->len) in seq_buf_do_printk()
128 * seq_buf_bprintf - Write the printf string from binary arguments
130 * @fmt: The format string for the @binary arguments
137 * word array that is defined by the format string constraints.
140 * the conversion into the ASCII string within the buffer.
142 * Returns zero on success, -1 on overflow.
149 WARN_ON(s->size == 0); in seq_buf_bprintf()
151 if (s->len < s->size) { in seq_buf_bprintf()
152 ret = bstr_printf(s->buffer + s->len, len, fmt, binary); in seq_buf_bprintf()
153 if (s->len + ret < s->size) { in seq_buf_bprintf()
154 s->len += ret; in seq_buf_bprintf()
159 return -1; in seq_buf_bprintf()
164 * seq_buf_puts - sequence printing of simple string
166 * @str: simple string to record
168 * Copy a simple string into the sequence buffer.
170 * Returns zero on success, -1 on overflow
176 WARN_ON(s->size == 0); in seq_buf_puts()
182 memcpy(s->buffer + s->len, str, len); in seq_buf_puts()
184 s->len += len - 1; in seq_buf_puts()
188 return -1; in seq_buf_puts()
192 * seq_buf_putc - sequence printing of simple character
198 * Returns zero on success, -1 on overflow
202 WARN_ON(s->size == 0); in seq_buf_putc()
205 s->buffer[s->len++] = c; in seq_buf_putc()
209 return -1; in seq_buf_putc()
213 * seq_buf_putmem - write raw data into the sequenc buffer
222 * Returns zero on success, -1 on overflow
226 WARN_ON(s->size == 0); in seq_buf_putmem()
229 memcpy(s->buffer + s->len, mem, len); in seq_buf_putmem()
230 s->len += len; in seq_buf_putmem()
234 return -1; in seq_buf_putmem()
241 * seq_buf_putmem_hex - write raw memory into the buffer in ASCII hex
250 * Returns zero on success, -1 on overflow
260 WARN_ON(s->size == 0);
269 for (i = start_len-1, j = 0; i >= 0; i--) {
277 /* j increments twice per loop */
282 return -1;
284 len -= start_len;
291 * seq_buf_path - copy a path into the sequence buffer
298 * Returns the number of written bytes on success, -1 on overflow
304 int res = -1;
306 WARN_ON(s->size == 0);
313 res = end - buf;
322 * seq_buf_to_user - copy the sequence buffer to user space
330 * or until it reaches the end of the content in the buffer (@s->len),
336 * On failure it returns -EBUSY if all of the content in the
338 * sequence (@s->len == @start).
340 * Returns -EFAULT if the copy to userspace fails.
353 return -EBUSY;
355 len -= start;
358 ret = copy_to_user(ubuf, s->buffer + start, cnt);
360 return -EFAULT;
362 return cnt - ret;
366 * seq_buf_hex_dump - print formatted hex dump into the sequence buffer
368 * @prefix_str: string to prefix each line with;
372 * @rowsize: number of bytes to print per line; must be 16 or 32
381 * 32 * 3 - maximum bytes per line, each printed into 2 chars + 1 for
383 * 2 - spaces separating hex dump and ascii representation
384 * 32 - ascii representation
385 * 1 - terminating '\0'
387 * Returns zero on success, -1 on overflow
403 remaining -= rowsize;