diff options
author | Harry Liebel <Harry.Liebel@arm.com> | 2013-12-17 18:31:42 +0000 |
---|---|---|
committer | Dan Handley <dan.handley@arm.com> | 2013-12-20 15:52:16 +0000 |
commit | c81b1d0f0333eca2bc01e718bd2a1b091647afba (patch) | |
tree | 58946a5caca01b4440fcd4f9acce1dd80c349cf4 /lib/non-semihosting/std.c | |
parent | 57bb6581937e2cf5ada3dcda1f242e05cbe93371 (diff) |
Create local C library implementation (1/2)
- This change is split into two separate patches in order to
simplify the history as interpreted by 'git'. The split is
between the move/rename and addition of new files.
- Remove dependency on toolchain C library headers and functions in
order to ensure behavioural compatibility between toolchains.
- Use FreeBSD as reference for C library implementation.
- Do not let GCC use default library include paths.
- Remove unused definitions in modified headers and implementations.
- Move C library files to 'lib/stdlib' and 'include/stdlib'.
- Break std.c functions out into separate files.
Change-Id: I91cddfb3229775f770ad781589670c57d347a154
Diffstat (limited to 'lib/non-semihosting/std.c')
-rw-r--r-- | lib/non-semihosting/std.c | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/lib/non-semihosting/std.c b/lib/non-semihosting/std.c deleted file mode 100644 index 1c1c8078..00000000 --- a/lib/non-semihosting/std.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2013, ARM Limited and Contributors. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of ARM nor the names of its contributors may be used - * to endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <stdio.h> -#include <console.h> - -#if defined (__GNUC__) - -#include <stdio.h> -#include <stddef.h> /* size_t */ -#include <stdarg.h> /* va_list */ - -// Code from VTB. -#include "mem.c" - -// Make mem functions that will operate on DEV mem. "memset_io"? - - -//Code from VTB -#include "strlen.c" - -int puts(const char *s) -{ - int count = 0; - while(*s) - { - if (console_putc(*s++)) { - count++; - } else { - count = EOF; // -1 in stdio.h - break; - } - } - return count; -} - -// From VTB -#include "ctype.h" -#include "subr_prf.c" - - // Choose max of 128 chars for now. -#define PRINT_BUFFER_SIZE 128 -int printf(const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - char buf[PRINT_BUFFER_SIZE]; - vsnprintf(buf, sizeof(buf) - 1, fmt, args); - buf[PRINT_BUFFER_SIZE - 1] = '\0'; - return puts(buf); -} - - -// I just made this up. Probably make it beter. -void __assert_func (const char *file, int l, const char *func, const char *error) -{ - printf("ASSERT: %s <%d> : %s\n\r", func, l, error); - while(1); -} - -extern void __assert_fail (const char *assertion, const char *file, - unsigned int line, const char *function) -{ - printf("ASSERT: %s <%d> : %s\n\r", function, line, assertion); - while(1); -} - - -// I just made this up. Probably make it beter. -void abort (void) -{ - printf("ABORT\n\r"); - while(1); -} - - -#else -#error "No standard library binding defined." -#endif |