From 073a96bb2c045ab1fd47b85f055c14e44d434c63 Mon Sep 17 00:00:00 2001
From: patacongo Last Updated: August 28, 2012 Last Updated: October 20, 2012 Last Updated: August 28, 2012 Last Updated: October 20, 2012
diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
index a16032db57..e43ca8a2fa 100644
--- a/Documentation/NuttxPortingGuide.html
+++ b/Documentation/NuttxPortingGuide.html
@@ -12,7 +12,7 @@
NuttShell (NSH)
-
NuttX RTOS Porting Guide
- CONFIG_ARCH_MEMCPY
is not selected, then you make also select Daniel
Vik's optimized implementation of memcpy()
:
CONFIG_MEMCPY_VIK
:
- Select this option to use the optimized memcpy()
function by Daniel Vik.
- See licensing information in the top-level COPYING
file.
- Default: n
.
- CONFIG_MEMCPY_VIK
:
+ Select this option to use the optimized memcpy()
function by Daniel Vik.
+ See licensing information in the top-level COPYING
file.
+ Default: n
.
+
And if CONFIG_MEMCPY_VIK
, the following tuning options are available:
@@ -4474,6 +4474,15 @@ build
Compiles memcpy for 64 bit architectures
+
CONFIG_ARCH_MEMSET
is not selected, then the following option is also available:
+
+CONFIG_MEMSET_OPTSPEED
:
+ Select this option to use a version of memset()
optimized for speed.
+ Default: memset()
is optimized for size.
+
The architecture may provide custom versions of certain standard header files:
diff --git a/configs/README.txt b/configs/README.txt
index cc65540d7f..0bb531d67a 100644
--- a/configs/README.txt
+++ b/configs/README.txt
@@ -638,6 +638,12 @@ defconfig -- This is a configuration file similar to the Linux
CONFIG_MEMCPY_64BIT - Compiles memcpy for 64 bit architectures
+ If CONFIG_ARCH_MEMSET is not selected, then the following option is
+ also available:
+
+ CONFIG_MEMSET_OPTSPEED - Select this option to use a version of memcpy()
+ optimized for speed. Default: memcpy() is optimized for size.
+
The architecture may provide custom versions of certain standard header
files:
diff --git a/lib/Kconfig b/lib/Kconfig
index b3f743db28..0f25c89238 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -153,19 +153,20 @@ config ARCH_OPTIMIZED_FUNCTIONS
if ARCH_OPTIMIZED_FUNCTIONS
config ARCH_MEMCPY
- bool "memcpy"
+ bool "memcpy()"
default n
---help---
Select this option if the architecture provides an optimized version
of memcpy().
config MEMCPY_VIK
- bool "Vik memcpy"
+ bool "Vik memcpy()"
default n
depends on !ARCH_MEMCPY
---help---
- Select this option to use the optimized memcpy() function by Daniel Vik.
- See licensing information in the top-level COPYING file.
+ Select this option to use the optimized memcpy() function by Daniel Vik.
+ Select this option to option for speed at the expense of increased size.
+ See licensing information in the top-level COPYING file.
if MEMCPY_VIK
config MEMCPY_PRE_INC_PTRS
@@ -182,50 +183,58 @@ config MEMCPY_INDEXED_COPY
MEMCPY_PRE_INC_PTRS option.
config MEMCPY_64BIT
- bool "64-bit memcpy"
+ bool "64-bit memcpy()"
default n
---help---
- Compiles memcpy for 64 bit architectures
+ Compiles memcpy() for 64 bit architectures
endif
config ARCH_MEMCMP
- bool "memcmp"
+ bool "memcmp()"
default n
---help---
Select this option if the architecture provides an optimized version
of memcmp().
config ARCH_MEMMOVE
- bool "memmove"
+ bool "memmove()"
default n
---help---
Select this option if the architecture provides an optimized version
of memmove().
config ARCH_MEMSET
- bool "memset"
+ bool "memset()"
default n
---help---
Select this option if the architecture provides an optimized version
of memset().
+config MEMSET_OPTSPEED
+ bool "Optimize memset() for speed"
+ default n
+ depends on !ARCH_MEMSET
+ ---help---
+ Select this option to use a version of memcpy() optimized for speed.
+ Default: memcpy() is optimized for size.
+
config ARCH_STRCMP
- bool "strcmp"
+ bool "strcmp()"
default n
---help---
Select this option if the architecture provides an optimized version
of strcmp().
config ARCH_STRCPY
- bool "strcpy"
+ bool "strcpy()"
default n
---help---
Select this option if the architecture provides an optimized version
of strcpy().
config ARCH_STRNCPY
- bool "strncpy"
+ bool "strncpy()"
default n
---help---
Select this option if the architecture provides an optimized version
@@ -239,14 +248,14 @@ config ARCH_STRLEN
of strlen().
config ARCH_STRNLEN
- bool "strlen"
+ bool "strlen()"
default n
---help---
Select this option if the architecture provides an optimized version
of strnlen().
config ARCH_BZERO
- bool "bzero"
+ bool "bzero()"
default n
---help---
Select this option if the architecture provides an optimized version
diff --git a/lib/string/lib_memset.c b/lib/string/lib_memset.c
index 916351b974..c910d2ce04 100644
--- a/lib/string/lib_memset.c
+++ b/lib/string/lib_memset.c
@@ -42,8 +42,12 @@
************************************************************/
#include