Files
nixpkgs/pkgs/os-specific/darwin/apple-source-releases/libsbuf/patches/0001-darwin-compatibility.patch

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

138 lines
5.1 KiB
Diff
Raw Normal View History

2025-10-09 14:15:47 +02:00
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 arent 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);