libs/libc: Breakdown LIBC_BUILD_STRING into specific string operations macro.

Provide a way to only customize specific string operations,
such as for memcpy with the DMA capability by ROM.

Signed-off-by: yangdongdong <yangdongdong@xiaomi.com>
This commit is contained in:
yangdongdong
2023-08-25 22:38:35 +08:00
committed by Xiang Xiao
parent 4ec7af779d
commit 1956385a7d
71 changed files with 676 additions and 78 deletions
+117 -3
View File
@@ -56,9 +56,123 @@
#define LIB_BUFLEN_UNKNOWN INT_MAX
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRING_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRING_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRING
((!defined(CONFIG_LIBC_PREVENT_MEMCHR_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_MEMCHR_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_MEMCHR
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_MEMCMP_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_MEMCMP_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_MEMCMP
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_MEMCPY_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_MEMCPY_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_MEMCPY
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_MEMMOVE_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_MEMMOVE_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_MEMMOVE
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_MEMSET_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_MEMSET_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_MEMSET
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRCAT_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRCAT_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRCAT
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRCASECMP_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRCASECMP_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRCASECMP
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRCHR_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRCHR_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRCHR
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRCHRNUL_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRCHRNUL_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRCHRNUL
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRCMP_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRCMP_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRCMP
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRCPY_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRCPY_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRCPY
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRLCAT_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRLCAT_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRLCAT
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRLEN_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRLEN_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRLEN
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRLCPY_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRLCPY_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRLCPY
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRNCASECMP_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRNCASECMP_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRNCASECMP
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRNCAT_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRNCAT_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRNCAT
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRNLEN_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRNLEN_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRNLEN
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRNCMP_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRNCMP_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRNCMP
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRNCPY_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRNCPY_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRNCPY
#endif
#if defined(CONFIG_BUILD_FLAT) || \
((!defined(CONFIG_LIBC_PREVENT_STRRCHR_USER) && !defined(__KERNEL__)) || \
(!defined(CONFIG_LIBC_PREVENT_STRRCHR_KERNEL) && defined(__KERNEL__)))
# define LIBC_BUILD_STRRCHR
#endif
/****************************************************************************
File diff suppressed because it is too large Load Diff
@@ -68,7 +68,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCHR
@ 2011-02-07 david.gilbert@linaro.org
@ Extracted from local git a5b438d861
@@ -35,7 +35,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCPY
/*
* This memcpy routine is optimised for Cortex-A15 cores and takes advantage
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMMOVE
.thumb
.syntax unified
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMSET
.arm
.syntax unified
@@ -32,7 +32,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCMP
#ifdef __ARMEB__
#define SHFT2LSB lsl
@@ -64,7 +64,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRLEN
#include "acle-compat.h"
@@ -68,7 +68,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCHR
@ 2011-02-07 david.gilbert@linaro.org
@ Extracted from local git a5b438d861
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCPY
/* This memcpy routine is optimised for Cortex-M3/M4 cores with/without
unaligned access.
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMMOVE
.thumb
.syntax unified
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMSET
.thumb
.syntax unified
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCMP
/* Very similar to the generic code, but uses Thumb2 as implemented
in ARMv7-M. */
@@ -20,7 +20,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCPY
/* This strcpy borrowed some ideas from arch_strcmp.S(). */
@@ -64,7 +64,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRLEN
#include "acle-compat.h"
@@ -68,7 +68,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCHR
@ 2011-02-07 david.gilbert@linaro.org
@ Extracted from local git a5b438d861
@@ -35,7 +35,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCPY
/*
* This memcpy routine is optimised for Cortex-A15 cores and takes advantage
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMMOVE
.thumb
.syntax unified
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMSET
.arm
.syntax unified
@@ -32,7 +32,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCMP
#ifdef __ARMEB__
#define SHFT2LSB lsl
@@ -64,7 +64,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRLEN
#include "acle-compat.h"
@@ -68,7 +68,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCHR
@ 2011-02-07 david.gilbert@linaro.org
@ Extracted from local git a5b438d861
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCPY
#ifndef __ARM_FEATURE_MVE
/* This memcpy routine is optimised for Cortex-M3/M4 cores with/without
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMMOVE
.thumb
.syntax unified
@@ -57,7 +57,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMSET
.thumb
.syntax unified
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCMP
#ifdef __ARM_BIG_ENDIAN
#define S2LO lsl
@@ -64,7 +64,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRLEN
.macro def_fn f p2align=0
.text
+1 -1
View File
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCHR
/* Assumptions:
*
+1 -1
View File
@@ -61,7 +61,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCMP
/* Assumptions:
*
+1 -1
View File
@@ -61,7 +61,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCPY
/* Assumptions:
*
+1 -1
View File
@@ -61,7 +61,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMMOVE
/* Assumptions:
*
+1 -1
View File
@@ -61,7 +61,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMSET
/* Assumptions:
*
+1 -1
View File
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCHR
/* Assumptions:
*
+1 -1
View File
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCHRNUL
/* Assumptions:
*
+1 -1
View File
@@ -35,7 +35,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCMP
/* Assumptions:
*
+1 -1
View File
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCPY
/* Assumptions:
*
+1 -1
View File
@@ -35,7 +35,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRLEN
/* Assumptions:
*
+1 -1
View File
@@ -35,7 +35,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRNCMP
/* Assumptions:
*
+1 -1
View File
@@ -35,7 +35,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRNLEN
/* Assumptions:
*
+1 -1
View File
@@ -31,7 +31,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRRCHR
/* Assumptions:
*
+1 -1
View File
@@ -24,7 +24,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCPY
/************************************************************************************
* Public Symbols
+1 -1
View File
@@ -15,7 +15,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMSET
.text
.global memset
+1 -1
View File
@@ -15,7 +15,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCMP
#include "asm.h"
+1 -1
View File
@@ -29,7 +29,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMCPY
/****************************************************************************
* Pre-processor Macros
+1 -1
View File
@@ -29,7 +29,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMMOVE
/****************************************************************************
* Pre-processor Macros
+1 -1
View File
@@ -29,7 +29,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_MEMSET
/****************************************************************************
* Public Functions
+1 -1
View File
@@ -29,7 +29,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCMP
/****************************************************************************
* Pre-processor Macros
+1 -1
View File
@@ -29,7 +29,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRCPY
/****************************************************************************
* Public Functions
+1 -1
View File
@@ -29,7 +29,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRLEN
/****************************************************************************
* Public Functions
+1 -1
View File
@@ -29,7 +29,7 @@
#include "libc.h"
#ifdef LIBC_BUILD_STRING
#ifdef LIBC_BUILD_STRNCPY
/****************************************************************************
* Public Functions

Some files were not shown because too many files have changed in this diff Show More