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
This commit is contained in:
Jean-Sébastien Pédron
2026-03-03 00:04:09 +01:00
parent b2751d956e
commit 362136ed49
@@ -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) \ #define memset_startat(ptr, bytepat, smember) \
({ \ ({ \
uint8_t *_ptr = (uint8_t *)(ptr); \ uint8_t *_ptr = (uint8_t *)(ptr); \