138 lines
5.1 KiB
Diff
138 lines
5.1 KiB
Diff
|
|
diff '--color=auto' -ur a/subr_prf.c b/subr_prf.c
|
|||
|
|
--- a/subr_prf.c 2024-09-04 20:07:10.149623000 -0400
|
|||
|
|
+++ b/subr_prf.c 2024-09-04 20:14:10.265336775 -0400
|
|||
|
|
@@ -64,8 +64,8 @@
|
|||
|
|
#else /* !_KERNEL */
|
|||
|
|
#include <errno.h>
|
|||
|
|
#endif
|
|||
|
|
-#include <sys/ctype.h>
|
|||
|
|
-#include <sys/sbuf.h>
|
|||
|
|
+#include <ctype.h>
|
|||
|
|
+#include <usbuf.h>
|
|||
|
|
|
|||
|
|
#ifdef DDB
|
|||
|
|
#include <ddb/ddb.h>
|
|||
|
|
diff '--color=auto' -ur a/subr_sbuf.c b/subr_sbuf.c
|
|||
|
|
--- a/subr_sbuf.c 2024-09-04 20:07:10.149810000 -0400
|
|||
|
|
+++ b/subr_sbuf.c 2024-09-04 20:22:20.289037135 -0400
|
|||
|
|
@@ -50,7 +50,7 @@
|
|||
|
|
#include <string.h>
|
|||
|
|
#endif /* _KERNEL */
|
|||
|
|
|
|||
|
|
-#include <sys/sbuf.h>
|
|||
|
|
+#include <usbuf.h>
|
|||
|
|
|
|||
|
|
#ifdef _KERNEL
|
|||
|
|
static MALLOC_DEFINE(M_SBUF, "sbuf", "string buffers");
|
|||
|
|
@@ -96,6 +96,18 @@
|
|||
|
|
#define SBUF_MAXEXTENDINCR 4096
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
+/* Per https://cgit.freebsd.org/src/commit/?id=8fa6abb6f4f64f4f23e2920e2aea7996566851a4 */
|
|||
|
|
+#define roundup2 __builtin_align_up
|
|||
|
|
+/* From https://cgit.freebsd.org/src/tree/sys/sys/cdefs.h?id=8fa6abb6f4f64f4f23e2920e2aea7996566851a4 */
|
|||
|
|
+#define __predict_false(exp) __builtin_expect((exp),0)
|
|||
|
|
+
|
|||
|
|
+/* These symbols are exported even though the functions aren’t defined in the public header.
|
|||
|
|
+ Redefine them for consistency. */
|
|||
|
|
+#define sbuf_count_drain usbuf_count_drain
|
|||
|
|
+#define sbuf_drain usbuf_drain
|
|||
|
|
+#define sbuf_nl_terminate usbuf_nl_terminate
|
|||
|
|
+#define sbuf_put_bytes usbuf_put_bytes
|
|||
|
|
+
|
|||
|
|
/*
|
|||
|
|
* Debugging support
|
|||
|
|
*/
|
|||
|
|
diff '--color=auto' -ur a/usbuf.h b/usbuf.h
|
|||
|
|
--- a/usbuf.h 2024-09-04 20:07:10.150177000 -0400
|
|||
|
|
+++ b/usbuf.h 2024-09-04 20:13:26.469610458 -0400
|
|||
|
|
@@ -33,6 +33,50 @@
|
|||
|
|
|
|||
|
|
#include <sys/_types.h>
|
|||
|
|
|
|||
|
|
+#include <stdarg.h>
|
|||
|
|
+
|
|||
|
|
+#define sbuf_new usbuf_new
|
|||
|
|
+#define sbuf_clear usbuf_clear
|
|||
|
|
+#define sbuf_setpos usbuf_setpos
|
|||
|
|
+#define sbuf_bcat usbuf_bcat
|
|||
|
|
+#define sbuf_bcpy usbuf_bcpy
|
|||
|
|
+#define sbuf_cat usbuf_cat
|
|||
|
|
+#define sbuf_cpy usbuf_cpy
|
|||
|
|
+#define sbuf_printf usbuf_printf
|
|||
|
|
+#define sbuf_vprintf usbuf_vprintf
|
|||
|
|
+#define sbuf_putc usbuf_putc
|
|||
|
|
+#define sbuf_set_drain usbuf_set_drain
|
|||
|
|
+#define sbuf_trim usbuf_trim
|
|||
|
|
+#define sbuf_error usbuf_error
|
|||
|
|
+#define sbuf_finish usbuf_finish
|
|||
|
|
+#define sbuf_data usbuf_data
|
|||
|
|
+#define sbuf_len usbuf_len
|
|||
|
|
+#define sbuf_done usbuf_done
|
|||
|
|
+#define sbuf_delete usbuf_delete
|
|||
|
|
+#define sbuf_clear_flags usbuf_clear_flags
|
|||
|
|
+#define sbuf_get_flags usbuf_get_flags
|
|||
|
|
+#define sbuf_set_flags usbuf_set_flags
|
|||
|
|
+#define sbuf_start_section usbuf_start_section
|
|||
|
|
+#define sbuf_end_section usbuf_end_section
|
|||
|
|
+#define sbuf_hexdump usbuf_hexdump
|
|||
|
|
+#define sbuf_putbuf usbuf_putbuf
|
|||
|
|
+#define sbuf_printf_drain usbuf_printf_drain
|
|||
|
|
+
|
|||
|
|
+#define SBUF_FIXEDLEN USBUF_FIXEDLEN
|
|||
|
|
+#define SBUF_AUTOEXTEND USBUF_AUTOEXTEND
|
|||
|
|
+#define SBUF_INCLUDENUL USBUF_INCLUDENUL
|
|||
|
|
+#define SBUF_DRAINTOEOR USBUF_DRAINTOEOR
|
|||
|
|
+#define SBUF_NOWAIT USBUF_NOWAIT
|
|||
|
|
+#define SBUF_USRFLAGMSK USBUF_USRFLAGMSK
|
|||
|
|
+#define SBUF_DYNAMIC USBUF_DYNAMIC
|
|||
|
|
+#define SBUF_FINISHED USBUF_FINISHED
|
|||
|
|
+#define SBUF_DYNSTRUCT USBUF_DYNSTRUCT
|
|||
|
|
+#define SBUF_INSECTION USBUF_INSECTION
|
|||
|
|
+#define SBUF_DRAINATEOL USBUF_DRAINATEOL
|
|||
|
|
+
|
|||
|
|
+#define sbuf usbuf
|
|||
|
|
+#define sbuf_drain_func usbuf_drain_func
|
|||
|
|
+
|
|||
|
|
struct sbuf;
|
|||
|
|
typedef int (sbuf_drain_func)(void *, const char *, int);
|
|||
|
|
|
|||
|
|
@@ -46,17 +90,17 @@
|
|||
|
|
int s_error; /* current error code */
|
|||
|
|
ssize_t s_size; /* size of storage buffer */
|
|||
|
|
ssize_t s_len; /* current length of string */
|
|||
|
|
-#define SBUF_FIXEDLEN 0x00000000 /* fixed length buffer (default) */
|
|||
|
|
-#define SBUF_AUTOEXTEND 0x00000001 /* automatically extend buffer */
|
|||
|
|
-#define SBUF_INCLUDENUL 0x00000002 /* nulterm byte is counted in len */
|
|||
|
|
-#define SBUF_DRAINTOEOR 0x00000004 /* use section 0 as drain EOR marker */
|
|||
|
|
-#define SBUF_NOWAIT 0x00000008 /* Extend with non-blocking malloc */
|
|||
|
|
-#define SBUF_USRFLAGMSK 0x0000ffff /* mask of flags the user may specify */
|
|||
|
|
-#define SBUF_DYNAMIC 0x00010000 /* s_buf must be freed */
|
|||
|
|
-#define SBUF_FINISHED 0x00020000 /* set by sbuf_finish() */
|
|||
|
|
-#define SBUF_DYNSTRUCT 0x00080000 /* sbuf must be freed */
|
|||
|
|
-#define SBUF_INSECTION 0x00100000 /* set by sbuf_start_section() */
|
|||
|
|
-#define SBUF_DRAINATEOL 0x00200000 /* drained contents ended in \n */
|
|||
|
|
+#define USBUF_FIXEDLEN 0x00000000 /* fixed length buffer (default) */
|
|||
|
|
+#define USBUF_AUTOEXTEND 0x00000001 /* automatically extend buffer */
|
|||
|
|
+#define USBUF_INCLUDENUL 0x00000002 /* nulterm byte is counted in len */
|
|||
|
|
+#define USBUF_DRAINTOEOR 0x00000004 /* use section 0 as drain EOR marker */
|
|||
|
|
+#define USBUF_NOWAIT 0x00000008 /* Extend with non-blocking malloc */
|
|||
|
|
+#define USBUF_USRFLAGMSK 0x0000ffff /* mask of flags the user may specify */
|
|||
|
|
+#define USBUF_DYNAMIC 0x00010000 /* s_buf must be freed */
|
|||
|
|
+#define USBUF_FINISHED 0x00020000 /* set by sbuf_finish() */
|
|||
|
|
+#define USBUF_DYNSTRUCT 0x00080000 /* sbuf must be freed */
|
|||
|
|
+#define USBUF_INSECTION 0x00100000 /* set by sbuf_start_section() */
|
|||
|
|
+#define USBUF_DRAINATEOL 0x00200000 /* drained contents ended in \n */
|
|||
|
|
int s_flags; /* flags */
|
|||
|
|
ssize_t s_sect_len; /* current length of section */
|
|||
|
|
ssize_t s_rec_off; /* current record start offset */
|
|||
|
|
@@ -88,7 +132,7 @@
|
|||
|
|
int sbuf_cpy(struct sbuf *, const char *);
|
|||
|
|
int sbuf_printf(struct sbuf *, const char *, ...)
|
|||
|
|
__printflike(2, 3);
|
|||
|
|
-int sbuf_vprintf(struct sbuf *, const char *, __va_list)
|
|||
|
|
+int sbuf_vprintf(struct sbuf *, const char *, va_list)
|
|||
|
|
__printflike(2, 0);
|
|||
|
|
int sbuf_nl_terminate(struct sbuf *);
|
|||
|
|
int sbuf_putc(struct sbuf *, int);
|