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.
98 * seq_buf_bprintf - Write the printf string from binary arguments
100 * @fmt: The format string for the @binary arguments
107 * word array that is defined by the format string constraints.
110 * the conversion into the ASCII string within the buffer.
112 * Returns zero on success, -1 on overflow.
119 WARN_ON(s->size == 0); in seq_buf_bprintf()
121 if (s->len < s->size) { in seq_buf_bprintf()
122 ret = bstr_printf(s->buffer + s->len, len, fmt, binary); in seq_buf_bprintf()
123 if (s->len + ret < s->size) { in seq_buf_bprintf()
124 s->len += ret; in seq_buf_bprintf()
129 return -1; in seq_buf_bprintf()
134 * seq_buf_puts - sequence printing of simple string
136 * @str: simple string to record
138 * Copy a simple string into the sequence buffer.
140 * Returns zero on success, -1 on overflow
146 WARN_ON(s->size == 0); in seq_buf_puts()
152 memcpy(s->buffer + s->len, str, len); in seq_buf_puts()
154 s->len += len - 1; in seq_buf_puts()
158 return -1; in seq_buf_puts()
162 * seq_buf_putc - sequence printing of simple character
168 * Returns zero on success, -1 on overflow
172 WARN_ON(s->size == 0); in seq_buf_putc()
175 s->buffer[s->len++] = c; in seq_buf_putc()
179 return -1; in seq_buf_putc()
183 * seq_buf_putmem - write raw data into the sequenc buffer
192 * Returns zero on success, -1 on overflow
196 WARN_ON(s->size == 0); in seq_buf_putmem()
199 memcpy(s->buffer + s->len, mem, len); in seq_buf_putmem()
200 s->len += len; in seq_buf_putmem()
204 return -1; in seq_buf_putmem()
211 * seq_buf_putmem_hex - write raw memory into the buffer in ASCII hex
220 * Returns zero on success, -1 on overflow
230 WARN_ON(s->size == 0);
233 start_len = min(len, HEX_CHARS - 1);
237 for (i = start_len-1, j = 0; i >= 0; i--) {
245 /* j increments twice per loop */
246 len -= j / 2;
251 return -1;
257 * seq_buf_path - copy a path into the sequence buffer
264 * Returns the number of written bytes on success, -1 on overflow
270 int res = -1;
272 WARN_ON(s->size == 0);
279 res = end - buf;
288 * seq_buf_to_user - copy the squence buffer to user space
294 * by @ubuf. It starts from the last read position (@s->readpos)
296 * the content in the buffer (@s->len), which ever comes first.
301 * On failure it returns -EBUSY if all of the content in the
303 * sequence (@s->len == @s->readpos).
305 * Returns -EFAULT if the copy to userspace fails.
317 if (len <= s->readpos)
318 return -EBUSY;
320 len -= s->readpos;
323 ret = copy_to_user(ubuf, s->buffer + s->readpos, cnt);
325 return -EFAULT;
327 cnt -= ret;
329 s->readpos += cnt;
334 * seq_buf_hex_dump - print formatted hex dump into the sequence buffer
336 * @prefix_str: string to prefix each line with;
340 * @rowsize: number of bytes to print per line; must be 16 or 32
349 * 32 * 3 - maximum bytes per line, each printed into 2 chars + 1 for
351 * 2 - spaces separating hex dump and ascii representation
352 * 32 - ascii representation
353 * 1 - terminating '\0'
355 * Returns zero on success, -1 on overflow
371 remaining -= rowsize;