diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2012-08-07 15:42:05 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-08-15 12:27:55 -0500 |
commit | eedc0bb29e002418c53a13a96030a980a4f6b26b (patch) | |
tree | d09470895bb63ff41dc531049d095408d7bc93bc /src/lib | |
parent | a346e4fa854de69dcd6a0ebfddf4c5530a175504 (diff) | |
download | talos-hostboot-eedc0bb29e002418c53a13a96030a980a4f6b26b.tar.gz talos-hostboot-eedc0bb29e002418c53a13a96030a980a4f6b26b.zip |
Additional needed utilities for PRD port.
Implement assorted utilities and STL templates for the
port of existing PRD code from FSP:
* strcat / strncat
* std::generate_n
* std::transform
* std::back_inserter
RTC: 44531
Change-Id: I9992f78222cbc2f74da15eea74c9b2cad602ad59
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1501
Tested-by: Jenkins Server
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: Christopher T. Phan <cphan@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/string.C | 83 |
1 files changed, 61 insertions, 22 deletions
diff --git a/src/lib/string.C b/src/lib/string.C index 0e1095c63..18cfec530 100644 --- a/src/lib/string.C +++ b/src/lib/string.C @@ -1,25 +1,26 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/lib/string.C $ -// -// IBM CONFIDENTIAL -// -// COPYRIGHT International Business Machines Corp. 2011 -// -// p1 -// -// Object Code Only (OCO) source materials -// Licensed Internal Code Source Materials -// IBM HostBoot Licensed Internal Code -// -// The source code for this program is not published or other- -// wise divested of its trade secrets, irrespective of what has -// been deposited with the U.S. Copyright Office. -// -// Origin: 30 -// -// IBM_PROLOG_END +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/lib/string.C $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2011-2012 + * + * p1 + * + * Object Code Only (OCO) source materials + * Licensed Internal Code Source Materials + * IBM HostBoot Licensed Internal Code + * + * The source code for this program is not published or other- + * wise divested of its trade secrets, irrespective of what has + * been deposited with the U.S. Copyright Office. + * + * Origin: 30 + * + * IBM_PROLOG_END_TAG + */ #include <string.h> extern "C" void *memset(void *vdest, int ch, size_t len) @@ -201,6 +202,44 @@ extern "C" size_t strlen(const char* a) return length; } +extern "C" char* strcat(char* d, const char* s) +{ + char* _d = d; + while(*_d) + { + _d++; + } + + while(*s) + { + *_d = *s; + _d++; s++; + } + *_d = '\0'; + + return d; +} + +extern "C" char* strncat(char* d, const char* s, size_t n) +{ + char* _d = d; + while(*_d) + { + _d++; + } + + while((*s) && (0 != n)) + { + *_d = *s; + _d++; s++; + n--; + } + *_d = '\0'; + + return d; +} + + extern "C" char* strchr(const char* s, int c) { while((*s != '\0') && (*s != c)) |