Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Apr 2026 21:08:26 +0000
From:      Bjoern A. Zeeb <bz@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Cc:        Jean-=?utf-8?Q?S=C3=A9bast?==?utf-8?Q?ien P=C3=A9?=dron <dumbbell@FreeBSD.org>
Subject:   git: 1c51a0177ddd - stable/15 - linuxkpi: Add `strtomem()` and `strtomem_pad()`
Message-ID:  <69e938ca.275f2.14ff0ea@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=1c51a0177ddd8d45fe0a68c73c31f67713164af0

commit 1c51a0177ddd8d45fe0a68c73c31f67713164af0
Author:     Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
AuthorDate: 2026-03-02 23:04:09 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2026-04-22 20:56:59 +0000

    linuxkpi: Add `strtomem()` and `strtomem_pad()`
    
    The DRM generic code started to use `strtomem_pad()` in Linux 6.11.
    
    Reviewed by:    bz
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D55729
    
    (cherry picked from commit 362136ed4987230269740f54531f6a945f00d135)
---
 sys/compat/linuxkpi/common/include/linux/string.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/sys/compat/linuxkpi/common/include/linux/string.h b/sys/compat/linuxkpi/common/include/linux/string.h
index f7b64560d254..0b858e7af623 100644
--- a/sys/compat/linuxkpi/common/include/linux/string.h
+++ b/sys/compat/linuxkpi/common/include/linux/string.h
@@ -303,6 +303,22 @@ memcpy_and_pad(void *dst, size_t dstlen, const void *src, size_t len, int ch)
 	}
 }
 
+#define strtomem(dst, src)	do {					\
+	size_t dstlen = ARRAY_SIZE(dst);				\
+	size_t srclen = __builtin_object_size(src, 1);			\
+	srclen = MIN(srclen, dstlen);					\
+	srclen = strnlen(src, srclen);					\
+	memcpy(dst, src, srclen);					\
+} while (0)
+
+#define strtomem_pad(dst, src, pad)	do {				\
+	size_t dstlen = ARRAY_SIZE(dst);				\
+	size_t srclen = __builtin_object_size(src, 1);			\
+	srclen = MIN(srclen, dstlen);					\
+	srclen = strnlen(src, srclen);					\
+	memcpy_and_pad(dst, dstlen, src, srclen, pad);			\
+} while (0)
+
 #define	memset_startat(ptr, bytepat, smember)				\
 ({									\
 	uint8_t *_ptr = (uint8_t *)(ptr);				\


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69e938ca.275f2.14ff0ea>