Thomas Heijligen has uploaded this change for review.

View Change

string: move strdup() & strconcat() to lib/string.c

Move functions not available in PRE_RAM into seperate file.
Makes it easier to share code between rom and ramstage.

Change-Id: I0b9833fbf6742d110ee4bfc00cd650f219aebb2c
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
---
M src/include/string.h
M src/lib/Makefile.inc
A src/lib/string.c
3 files changed, 25 insertions(+), 20 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/41/31141/1
diff --git a/src/include/string.h b/src/include/string.h
index 2f6b5f1..4a2f5e9 100644
--- a/src/include/string.h
+++ b/src/include/string.h
@@ -23,6 +23,8 @@
int snprintf(char *buf, size_t size, const char *fmt, ...);
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
#endif
+char *strdup(const char *s);
+char *strconcat(const char *s1, const char *s2);

// simple string functions

@@ -51,26 +53,6 @@
return 0;
}

-#if !defined(__PRE_RAM__)
-static inline char *strdup(const char *s)
-{
- size_t sz = strlen(s) + 1;
- char *d = malloc(sz);
- memcpy(d, s, sz);
- return d;
-}
-
-static inline char *strconcat(const char *s1, const char *s2)
-{
- size_t sz_1 = strlen(s1);
- size_t sz_2 = strlen(s2);
- char *d = malloc(sz_1 + sz_2 + 1);
- memcpy(d, s1, sz_1);
- memcpy(d + sz_1, s2, sz_2 + 1);
- return d;
-}
-#endif
-
/**
* Find a character in a string.
*
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 2fd4e4c..68431f9 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -118,6 +118,7 @@
ramstage-y += fmap.c
ramstage-y += memchr.c
ramstage-y += memcmp.c
+ramstage-y += string.c
ramstage-y += malloc.c
smm-$(CONFIG_SMM_TSEG) += malloc.c
ramstage-y += dimm_info_util.c
diff --git a/src/lib/string.c b/src/lib/string.c
new file mode 100644
index 0000000..178f1fd
--- /dev/null
+++ b/src/lib/string.c
@@ -0,0 +1,22 @@
+#include <string.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+char *strdup(const char *s)
+{
+ size_t sz = strlen(s) + 1;
+ char *d = malloc(sz);
+ memcpy(d, s, sz);
+ return d;
+}
+
+char *strconcat(const char *s1, const char *s2)
+{
+ size_t sz_1 = strlen(s1);
+ size_t sz_2 = strlen(s2);
+ char *d = malloc(sz_1 + sz_2 + 1);
+ memcpy(d, s1, sz_1);
+ memcpy(d + sz_1, s2, sz_2 + 1);
+ return d;
+}
+

To view, visit change 31141. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I0b9833fbf6742d110ee4bfc00cd650f219aebb2c
Gerrit-Change-Number: 31141
Gerrit-PatchSet: 1
Gerrit-Owner: Thomas Heijligen <src@posteo.de>
Gerrit-MessageType: newchange