nuttx/libs/libc/string
Xiang Xiao d1dc791d11 libs/libc/string: Add 4-byte alignment middle path for BSD functions.
libc_data_t is 8 bytes wide, so a buffer which is 4-byte but not
8-byte aligned falls back to the byte at a time loop.  Add a 32-bit
middle path so such buffers still handle four bytes per iteration.

* Add DETECTNULL32/DETECTCHAR32, UNALIGNED4/UNALIGNED4_X,
  LITTLEBLOCKSIZE4/BIGBLOCKSIZE4 and TOO_SMALL4 to libs/libc/libc.h.
* Take the new path in memccpy, memcmp, memcpy, memset, stpcpy,
  stpncpy, strcmp, strcpy, strncmp and strncpy when both pointers are
  4-byte aligned but the 8-byte path can't be used.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-08-17 10:47:33 +02:00
..
CMakeLists.txt libc/string: Add BSD-optimized memset implementation. 2026-02-04 03:02:04 +08:00
Kconfig
lib_bsdmemccpy.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdmemchr.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdmemcmp.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdmemcpy.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdmemrchr.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdmemset.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdstpcpy.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdstpncpy.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrcat.c libs/libc/string: Use long long to speed up the BSD string functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrchr.c libs/libc/string: Use long long to speed up the BSD string functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrchrnul.c libc_bsd:add missing SPDX-License 2026-02-04 03:02:04 +08:00
lib_bsdstrcmp.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrcpy.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrlen.c libs/libc/string: Use long long to speed up the BSD string functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrncmp.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrncpy.c libs/libc/string: Add 4-byte alignment middle path for BSD functions. 2026-08-17 10:47:33 +02:00
lib_bsdstrrchr.c libc_bsd:add missing SPDX-License 2026-02-04 03:02:04 +08:00
lib_explicit_bzero.c
lib_ffs.c
lib_ffsl.c
lib_ffsll.c !compiler: drop CONFIG_HAVE_LONG_LONG and require long long support 2026-05-19 16:21:28 +08:00
lib_fls.c
lib_flsl.c
lib_flsll.c !compiler: drop CONFIG_HAVE_LONG_LONG and require long long support 2026-05-19 16:21:28 +08:00
lib_index.c
lib_isbasedigit.c
lib_memccpy.c
lib_memchr.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_memcmp.c
lib_memcpy.c
lib_memmem.c
lib_memmove.c
lib_mempcpy.c
lib_memrchr.c
lib_memset.c libs/libc/string: Fix sign extension in memset word fill pattern. 2026-08-17 10:47:33 +02:00
lib_popcount.c
lib_popcountl.c
lib_popcountll.c
lib_rawmemchr.c
lib_rindex.c
lib_skipspace.c
lib_stpcpy.c
lib_stpncpy.c
lib_strcasecmp.c
lib_strcasestr.c
lib_strcat.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strchr.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strchrnul.c
lib_strcmp.c
lib_strcoll.c
lib_strcpy.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strcspn.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strdup.c
lib_strerror.c
lib_strerrorr.c
lib_strlcat.c
lib_strlcpy.c
lib_strlen.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strncasecmp.c
lib_strncat.c
lib_strncmp.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strncpy.c
lib_strndup.c
lib_strnlen.c
lib_strpbrk.c
lib_strrchr.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strsep.c
lib_strsignal.c
lib_strspn.c
lib_strstr.c string:use builtin function to optimize libc function 2025-12-20 10:38:53 +08:00
lib_strtok.c
lib_strtokr.c
lib_strverscmp.c
lib_strxfrm.c
lib_timingsafe_bcmp.c
lib_vikmemcpy.c !compiler: drop CONFIG_HAVE_LONG_LONG and require long long support 2026-05-19 16:21:28 +08:00
Make.defs libc/string: Add BSD-optimized memset implementation. 2026-02-04 03:02:04 +08:00