diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2013-07-16 15:29:15 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-09-17 16:45:31 -0500 |
commit | 5652d7c0c6a8db05699f2b4334e4615e1ba22127 (patch) | |
tree | a04321010213943bc44a908a0de0e88149a7e7de /src/lib/stdio.C | |
parent | 7c3226b7ef2b3e09bd40823732f05fbf0fe6778f (diff) | |
download | talos-hostboot-5652d7c0c6a8db05699f2b4334e4615e1ba22127.tar.gz talos-hostboot-5652d7c0c6a8db05699f2b4334e4615e1ba22127.zip |
Initial Hostboot Runtime image support.
RTC: 76675
Change-Id: Ibd21cf5b555e6dcee182a2f1a292b47d4f384ba0
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6127
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/lib/stdio.C')
-rw-r--r-- | src/lib/stdio.C | 88 |
1 files changed, 50 insertions, 38 deletions
diff --git a/src/lib/stdio.C b/src/lib/stdio.C index 0dc617276..0bdb63873 100644 --- a/src/lib/stdio.C +++ b/src/lib/stdio.C @@ -1,25 +1,25 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/lib/stdio.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/stdio.C $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ +/* */ +/* 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 otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ #include <stdint.h> #include <stdio.h> #include <util/sprintf.H> @@ -28,24 +28,24 @@ class SprintfBuffer { public: - int putc(int c) - { - if ('\b' == c) - { - iv_pos--; - } - else - { - iv_buffer[iv_pos++] = c; - } - return c; - } + int putc(int c) + { + if ('\b' == c) + { + iv_pos--; + } + else + { + iv_buffer[iv_pos++] = c; + } + return c; + } - explicit SprintfBuffer(char* buf) : iv_pos(0), iv_buffer(buf) {}; + explicit SprintfBuffer(char* buf) : iv_pos(0), iv_buffer(buf) {}; private: - size_t iv_pos; - char * iv_buffer; + size_t iv_pos; + char * iv_buffer; }; int sprintf(char *str, const char * format, ...) @@ -58,9 +58,21 @@ int sprintf(char *str, const char * format, ...) SprintfBuffer console(str); size_t count = vasprintf(mem_ptr_fun(console, &SprintfBuffer::putc), - format, args); + format, args); va_end(args); console.putc('\0'); return count; } + +int vsprintf(char *str, const char * format, va_list args) +{ + using Util::mem_ptr_fun; + + SprintfBuffer console(str); + size_t count = vasprintf(mem_ptr_fun(console, &SprintfBuffer::putc), + format, args); + + console.putc('\0'); + return count; +} |