summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/lib/libc/stdio
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/SLOF/lib/libc/stdio')
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/Makefile.inc23
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/fileno.c19
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/fprintf.c26
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/fscanf.c26
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/printf.c27
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/putc.c25
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/putchar.c21
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/puts.c28
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/scanf.c26
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/setvbuf.c28
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/sprintf.c30
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/stdchnls.c23
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/vfprintf.c27
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/vfscanf.c266
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/vsnprintf.c298
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/vsprintf.c19
-rw-r--r--qemu/roms/SLOF/lib/libc/stdio/vsscanf.c131
17 files changed, 0 insertions, 1043 deletions
diff --git a/qemu/roms/SLOF/lib/libc/stdio/Makefile.inc b/qemu/roms/SLOF/lib/libc/stdio/Makefile.inc
deleted file mode 100644
index ac5302d01..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/Makefile.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-# *****************************************************************************
-# * Copyright (c) 2004, 2008 IBM Corporation
-# * All rights reserved.
-# * This program and the accompanying materials
-# * are made available under the terms of the BSD License
-# * which accompanies this distribution, and is available at
-# * http://www.opensource.org/licenses/bsd-license.php
-# *
-# * Contributors:
-# * IBM Corporation - initial implementation
-# ****************************************************************************/
-
-
-STDIO_SRC_C = fscanf.c sprintf.c vfprintf.c vsnprintf.c vsprintf.c fprintf.c \
- printf.c setvbuf.c putc.c puts.c putchar.c scanf.c stdchnls.c \
- vfscanf.c vsscanf.c fileno.c
-
-STDIO_SRC_ASM =
-STDIO_SRCS = $(STDIO_SRC_C:%=$(STDIOCMNDIR)/%) $(STDIO_SRC_ASM:%=$(STDIOCMNDIR)/%)
-STDIO_OBJS = $(STDIO_SRC_C:%.c=%.o) $(STDIO_SRC_ASM:%.S=%.o)
-
-%.o : $(STDIOCMNDIR)/%.c
- $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
diff --git a/qemu/roms/SLOF/lib/libc/stdio/fileno.c b/qemu/roms/SLOF/lib/libc/stdio/fileno.c
deleted file mode 100644
index 6e239511d..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/fileno.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <stdio.h>
-
-int
-fileno(FILE *stream)
-{
- return stream->fd;
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/fprintf.c b/qemu/roms/SLOF/lib/libc/stdio/fprintf.c
deleted file mode 100644
index 866df3934..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/fprintf.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include "stdio.h"
-
-
-int fprintf(FILE *stream, const char* fmt, ...)
-{
- int count;
- va_list ap;
-
- va_start(ap, fmt);
- count = vfprintf(stream, fmt, ap);
- va_end(ap);
-
- return count;
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/fscanf.c b/qemu/roms/SLOF/lib/libc/stdio/fscanf.c
deleted file mode 100644
index 321b1630a..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/fscanf.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <stdio.h>
-
-int
-fscanf(FILE *stream, const char *fmt, ...)
-{
- int count;
- va_list ap;
-
- va_start(ap, fmt);
- count = vfscanf(stream, fmt, ap);
- va_end(ap);
-
- return count;
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/printf.c b/qemu/roms/SLOF/lib/libc/stdio/printf.c
deleted file mode 100644
index 01f4592dd..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/printf.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include "stdio.h"
-
-
-int printf(const char* fmt, ...)
-{
- int count;
- va_list ap;
-
- va_start(ap, fmt);
- count = vfprintf(stdout, fmt, ap);
- va_end(ap);
-
- return count;
-}
-
diff --git a/qemu/roms/SLOF/lib/libc/stdio/putc.c b/qemu/roms/SLOF/lib/libc/stdio/putc.c
deleted file mode 100644
index 230e9d196..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/putc.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include "stdio.h"
-#include "unistd.h"
-
-int
-putc(int ch, FILE *stream)
-{
- unsigned char outchar = ch;
-
- if (write(stream->fd, &outchar, 1) == 1)
- return outchar;
- else
- return EOF;
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/putchar.c b/qemu/roms/SLOF/lib/libc/stdio/putchar.c
deleted file mode 100644
index 5c750d90a..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/putchar.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-
-#include "stdio.h"
-
-
-int
-putchar(int ch)
-{
- return putc(ch, stdout);
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/puts.c b/qemu/roms/SLOF/lib/libc/stdio/puts.c
deleted file mode 100644
index 3f48dbfda..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/puts.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-
-#include "stdio.h"
-#include "string.h"
-#include "unistd.h"
-
-
-int
-puts(char *str)
-{
- int ret;
-
- ret = write(stdout->fd, str, strlen(str));
- write(stdout->fd, "\r\n", 2);
-
- return ret;
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/scanf.c b/qemu/roms/SLOF/lib/libc/stdio/scanf.c
deleted file mode 100644
index 96b639980..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/scanf.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <stdio.h>
-
-int
-scanf(const char *fmt, ...)
-{
- int count;
- va_list ap;
-
- va_start(ap, fmt);
- count = vfscanf(stdin, fmt, ap);
- va_end(ap);
-
- return count;
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/setvbuf.c b/qemu/roms/SLOF/lib/libc/stdio/setvbuf.c
deleted file mode 100644
index 9b62dd8ff..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/setvbuf.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <stdio.h>
-
-int setvbuf(FILE *stream, char *buf, int mode , size_t size)
-{
- if (mode != _IONBF && mode != _IOLBF && mode != _IOFBF)
- return -1;
- stream->buf = buf;
- stream->mode = mode;
- stream->bufsiz = size;
- return 0;
-}
-
-void setbuf(FILE *stream, char *buf)
-{
- setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/sprintf.c b/qemu/roms/SLOF/lib/libc/stdio/sprintf.c
deleted file mode 100644
index 9c4540e2e..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/sprintf.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <stdio.h>
-
-
-int sprintf(char *buff, const char *format, ...)
-{
- va_list ar;
- int count;
-
- if ((buff==NULL) || (format==NULL))
- return(-1);
-
- va_start(ar, format);
- count = vsprintf(buff, format, ar);
- va_end(ar);
-
- return(count);
-}
-
diff --git a/qemu/roms/SLOF/lib/libc/stdio/stdchnls.c b/qemu/roms/SLOF/lib/libc/stdio/stdchnls.c
deleted file mode 100644
index 41ed958bf..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/stdchnls.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-
-#include "stdio.h"
-
-static char stdin_buffer[BUFSIZ], stdout_buffer[BUFSIZ];
-
-FILE stdin_data = { .fd = 0, .mode = _IOLBF, .pos = 0,
- .buf = stdin_buffer, .bufsiz = BUFSIZ };
-FILE stdout_data = { .fd = 1, .mode = _IOLBF, .pos = 0,
- .buf = stdout_buffer, .bufsiz = BUFSIZ };
-FILE stderr_data = { .fd = 2, .mode = _IONBF, .pos = 0,
- .buf = NULL, .bufsiz = 0 };
diff --git a/qemu/roms/SLOF/lib/libc/stdio/vfprintf.c b/qemu/roms/SLOF/lib/libc/stdio/vfprintf.c
deleted file mode 100644
index 765feeace..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/vfprintf.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include "stdio.h"
-#include "unistd.h"
-
-
-int vfprintf(FILE *stream, const char *fmt, va_list ap)
-{
- int count;
- char buffer[320];
-
- count = vsnprintf(buffer, sizeof(buffer), fmt, ap);
- write(stream->fd, buffer, count);
-
- return count;
-}
-
diff --git a/qemu/roms/SLOF/lib/libc/stdio/vfscanf.c b/qemu/roms/SLOF/lib/libc/stdio/vfscanf.c
deleted file mode 100644
index 4ddd210a9..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/vfscanf.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include "string.h"
-#include "ctype.h"
-#include "stdlib.h"
-#include "stdio.h"
-#include "unistd.h"
-
-
-static int
-_getc(FILE * stream)
-{
- int count;
- char c;
-
- if (stream->mode == _IONBF || stream->buf == NULL) {
- if (read(stream->fd, &c, 1) == 1)
- return (int) c;
- else
- return EOF;
- }
-
- if (stream->pos == 0 || stream->pos >= BUFSIZ ||
- stream->buf[stream->pos] == '\0') {
- count = read(stream->fd, stream->buf, BUFSIZ);
- if (count < 0)
- count = 0;
- if (count < BUFSIZ)
- stream->buf[count] = '\0';
- stream->pos = 0;
- }
-
- return stream->buf[stream->pos++];
-}
-
-static void
-_ungetc(int ch, FILE * stream)
-{
- if (stream->mode != _IONBF && stream->pos > 0)
- stream->pos--;
-}
-
-static int
-_is_voidage(int ch)
-{
- if (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' || ch == '\0')
- return 1;
- else
- return 0;
-}
-
-
-static int
-_scanf(FILE * stream, const char *fmt, va_list * ap)
-{
- int i = 0;
- int length = 0;
-
- fmt++;
-
- while (*fmt != '\0') {
-
- char tbuf[256];
- char ch;
-
- switch (*fmt) {
- case 'd':
- case 'i':
- ch = _getc(stream);
- if (length == 0) {
- while (!_is_voidage(ch) && isdigit(ch)) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- } else {
- while (!_is_voidage(ch) && i < length
- && isdigit(ch)) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- }
- /* We tried to understand what this is good for...
- * but we did not. We know for sure that it does not
- * work on SLOF if this is active. */
- /* _ungetc(ch, stream); */
- tbuf[i] = '\0';
-
- /* ch = _getc(stream); */
- if (!_is_voidage(ch))
- _ungetc(ch, stream);
-
- if (strlen(tbuf) == 0)
- return 0;
-
- *(va_arg(*ap, int *)) = strtol(tbuf, NULL, 10);
- break;
- case 'X':
- case 'x':
- ch = _getc(stream);
- if (length == 0) {
- while (!_is_voidage(ch) && isxdigit(ch)) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- } else {
- while (!_is_voidage(ch) && i < length
- && isxdigit(ch)) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- }
- /* _ungetc(ch, stream); */
- tbuf[i] = '\0';
-
- /* ch = _getc(stream); */
- if (!_is_voidage(ch))
- _ungetc(ch, stream);
-
- if (strlen(tbuf) == 0)
- return 0;
-
- *(va_arg(*ap, int *)) = strtol(tbuf, NULL, 16);
- break;
- case 'O':
- case 'o':
- ch = _getc(stream);
- if (length == 0) {
- while (!_is_voidage(ch)
- && !(ch < '0' || ch > '7')) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- } else {
- while (!_is_voidage(ch) && i < length
- && !(ch < '0' || ch > '7')) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- }
- /* _ungetc(ch, stream); */
- tbuf[i] = '\0';
-
- /* ch = _getc(stream); */
- if (!_is_voidage(ch))
- _ungetc(ch, stream);
-
- if (strlen(tbuf) == 0)
- return 0;
-
- *(va_arg(*ap, int *)) = strtol(tbuf, NULL, 8);
- break;
- case 'c':
- ch = _getc(stream);
- while (_is_voidage(ch))
- ch = _getc(stream);
-
- *(va_arg(*ap, char *)) = ch;
-
- ch = _getc(stream);
- if (!_is_voidage(ch))
- _ungetc(ch, stream);
-
- break;
- case 's':
- ch = _getc(stream);
- if (length == 0) {
- while (!_is_voidage(ch)) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- } else {
- while (!_is_voidage(ch) && i < length) {
- tbuf[i] = ch;
- ch = _getc(stream);
- i++;
- }
- }
- /* _ungetc(ch, stream); */
- tbuf[i] = '\0';
-
- /* ch = _getc(stream); */
- if (!_is_voidage(ch))
- _ungetc(ch, stream);
-
- strcpy(va_arg(*ap, char *), tbuf);
- break;
- default:
- if (*fmt >= '0' && *fmt <= '9')
- length += *fmt - '0';
- break;
- }
- fmt++;
- }
-
- return 1;
-}
-
-
-
-int
-vfscanf(FILE * stream, const char *fmt, va_list ap)
-{
- int args = 0;
-
- while (*fmt != '\0') {
-
- if (*fmt == '%') {
-
- char formstr[20];
- int i = 0;
-
- do {
- formstr[i] = *fmt;
- fmt++;
- i++;
- } while (!
- (*fmt == 'd' || *fmt == 'i' || *fmt == 'x'
- || *fmt == 'X' || *fmt == 'p' || *fmt == 'c'
- || *fmt == 's' || *fmt == '%' || *fmt == 'O'
- || *fmt == 'o'));
- formstr[i++] = *fmt;
- formstr[i] = '\0';
- if (*fmt != '%') {
- if (_scanf(stream, formstr, &ap) <= 0)
- return args;
- else
- args++;
- }
-
- }
-
- fmt++;
-
- }
-
- return args;
-}
-
-int
-getc(FILE * stream)
-{
- return _getc(stream);
-}
-
-int
-getchar(void)
-{
- return _getc(stdin);
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/vsnprintf.c b/qemu/roms/SLOF/lib/libc/stdio/vsnprintf.c
deleted file mode 100644
index 21dd04dfe..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/vsnprintf.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include <stdbool.h>
-#include "stdio.h"
-#include "stdlib.h"
-#include "string.h"
-#include "ctype.h"
-
-static const unsigned long long convert[] = {
- 0x0, 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF,
- 0xFFFFFFFFFFULL, 0xFFFFFFFFFFFFULL, 0xFFFFFFFFFFFFFFULL, 0xFFFFFFFFFFFFFFFFULL
-};
-
-static int
-print_str_fill(char **buffer, size_t bufsize, char *sizec,
- const char *str, char c)
-{
- int i, sizei, len;
- char *bstart = *buffer;
-
- sizei = strtoul(sizec, NULL, 10);
- len = strlen(str);
- if (sizei > len) {
- for (i = 0;
- (i < (sizei - len)) && ((*buffer - bstart) < bufsize);
- i++) {
- **buffer = c;
- *buffer += 1;
- }
- }
- return 1;
-}
-
-static int
-print_str(char **buffer, size_t bufsize, const char *str)
-{
- char *bstart = *buffer;
- size_t i;
-
- for (i = 0; (i < strlen(str)) && ((*buffer - bstart) < bufsize); i++) {
- **buffer = str[i];
- *buffer += 1;
- }
- return 1;
-}
-
-static unsigned int
-print_intlen(unsigned long value, unsigned short int base)
-{
- int i = 0;
-
- while (value > 0) {
- value /= base;
- i++;
- }
- if (i == 0)
- i = 1;
- return i;
-}
-
-static int
-print_itoa(char **buffer, size_t bufsize, unsigned long value,
- unsigned short base, bool upper)
-{
- const char zeichen[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
- char c;
- size_t i, len;
-
- if(base <= 2 || base > 16)
- return 0;
-
- len = i = print_intlen(value, base);
-
- /* Don't print to buffer if bufsize is not enough. */
- if (len > bufsize)
- return 0;
-
- do {
- c = zeichen[value % base];
- if (upper)
- c = toupper(c);
-
- (*buffer)[--i] = c;
- value /= base;
- } while(value);
-
- *buffer += len;
-
- return 1;
-}
-
-
-
-static int
-print_fill(char **buffer, size_t bufsize, char *sizec, unsigned long size,
- unsigned short int base, char c, int optlen)
-{
- int i, sizei, len;
- char *bstart = *buffer;
-
- sizei = strtoul(sizec, NULL, 10);
- len = print_intlen(size, base) + optlen;
- if (sizei > len) {
- for (i = 0;
- (i < (sizei - len)) && ((*buffer - bstart) < bufsize);
- i++) {
- **buffer = c;
- *buffer += 1;
- }
- }
-
- return 0;
-}
-
-
-static int
-print_format(char **buffer, size_t bufsize, const char *format, void *var)
-{
- char *start;
- unsigned int i = 0, length_mod = sizeof(int);
- unsigned long value = 0;
- unsigned long signBit;
- char *form, sizec[32];
- char sign = ' ';
- bool upper = false;
-
- form = (char *) format;
- start = *buffer;
-
- form++;
- if(*form == '0' || *form == '.') {
- sign = '0';
- form++;
- }
-
- while ((*form != '\0') && ((*buffer - start) < bufsize)) {
- switch(*form) {
- case 'u':
- case 'd':
- case 'i':
- sizec[i] = '\0';
- value = (unsigned long) var;
- signBit = 0x1ULL << (length_mod * 8 - 1);
- if ((*form != 'u') && (signBit & value)) {
- **buffer = '-';
- *buffer += 1;
- value = (-(unsigned long)value) & convert[length_mod];
- }
- print_fill(buffer, bufsize - (*buffer - start),
- sizec, value, 10, sign, 0);
- print_itoa(buffer, bufsize - (*buffer - start),
- value, 10, upper);
- break;
- case 'X':
- upper = true;
- case 'x':
- sizec[i] = '\0';
- value = (unsigned long) var & convert[length_mod];
- print_fill(buffer, bufsize - (*buffer - start),
- sizec, value, 16, sign, 0);
- print_itoa(buffer, bufsize - (*buffer - start),
- value, 16, upper);
- break;
- case 'O':
- case 'o':
- sizec[i] = '\0';
- value = (long int) var & convert[length_mod];
- print_fill(buffer, bufsize - (*buffer - start),
- sizec, value, 8, sign, 0);
- print_itoa(buffer, bufsize - (*buffer - start),
- value, 8, upper);
- break;
- case 'p':
- sizec[i] = '\0';
- print_fill(buffer, bufsize - (*buffer - start),
- sizec, (unsigned long) var, 16, ' ', 2);
- print_str(buffer, bufsize - (*buffer - start),
- "0x");
- print_itoa(buffer, bufsize - (*buffer - start),
- (unsigned long) var, 16, upper);
- break;
- case 'c':
- sizec[i] = '\0';
- print_fill(buffer, bufsize - (*buffer - start),
- sizec, 1, 10, ' ', 0);
- **buffer = (unsigned long) var;
- *buffer += 1;
- break;
- case 's':
- sizec[i] = '\0';
- print_str_fill(buffer,
- bufsize - (*buffer - start), sizec,
- (char *) var, ' ');
-
- print_str(buffer, bufsize - (*buffer - start),
- (char *) var);
- break;
- case 'l':
- form++;
- if(*form == 'l') {
- length_mod = sizeof(long long int);
- } else {
- form--;
- length_mod = sizeof(long int);
- }
- break;
- case 'h':
- form++;
- if(*form == 'h') {
- length_mod = sizeof(signed char);
- } else {
- form--;
- length_mod = sizeof(short int);
- }
- break;
- case 'z':
- length_mod = sizeof(size_t);
- break;
- default:
- if(*form >= '0' && *form <= '9')
- sizec[i++] = *form;
- }
- form++;
- }
-
-
- return (long int) (*buffer - start);
-}
-
-
-/*
- * The vsnprintf function prints a formated strings into a buffer.
- * BUG: buffer size checking does not fully work yet
- */
-int
-vsnprintf(char *buffer, size_t bufsize, const char *format, va_list arg)
-{
- char *ptr, *bstart;
-
- bstart = buffer;
- ptr = (char *) format;
-
- /*
- * Return from here if size passed is zero, otherwise we would
- * overrun buffer while setting NULL character at the end.
- */
- if (!buffer || !bufsize)
- return 0;
-
- /* Leave one space for NULL character */
- bufsize--;
-
- while(*ptr != '\0' && (buffer - bstart) < bufsize)
- {
- if(*ptr == '%') {
- char formstr[20];
- int i=0;
-
- do {
- formstr[i] = *ptr;
- ptr++;
- i++;
- } while(!(*ptr == 'd' || *ptr == 'i' || *ptr == 'u' || *ptr == 'x' || *ptr == 'X'
- || *ptr == 'p' || *ptr == 'c' || *ptr == 's' || *ptr == '%'
- || *ptr == 'O' || *ptr == 'o' ));
- formstr[i++] = *ptr;
- formstr[i] = '\0';
- if(*ptr == '%') {
- *buffer++ = '%';
- } else {
- print_format(&buffer,
- bufsize - (buffer - bstart),
- formstr, va_arg(arg, void *));
- }
- ptr++;
- } else {
-
- *buffer = *ptr;
-
- buffer++;
- ptr++;
- }
- }
-
- *buffer = '\0';
-
- return (buffer - bstart);
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/vsprintf.c b/qemu/roms/SLOF/lib/libc/stdio/vsprintf.c
deleted file mode 100644
index 0dfd737bc..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/vsprintf.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include "stdio.h"
-
-int
-vsprintf(char *buffer, const char *format, va_list arg)
-{
- return vsnprintf(buffer, 0x7fffffff, format, arg);
-}
diff --git a/qemu/roms/SLOF/lib/libc/stdio/vsscanf.c b/qemu/roms/SLOF/lib/libc/stdio/vsscanf.c
deleted file mode 100644
index b9603e98b..000000000
--- a/qemu/roms/SLOF/lib/libc/stdio/vsscanf.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
- * All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the BSD License
- * which accompanies this distribution, and is available at
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * Contributors:
- * IBM Corporation - initial implementation
- *****************************************************************************/
-
-#include "stdio.h"
-#include "stdlib.h"
-#include "string.h"
-
-
-static void
-_scanf(const char **buffer, const char *fmt, va_list *ap)
-{
- int i;
- int length = 0;
-
- fmt++;
-
- while(*fmt != '\0') {
-
- char tbuf[256];
-
- switch(*fmt) {
- case 'd':
- case 'i':
- if(length == 0) length = 256;
-
- for(i = 0; **buffer != ' ' && **buffer != '\t' && **buffer != '\n' && i < length; i++) {
- tbuf[i] = **buffer;
- *buffer += 1;
- }
- tbuf[i] = '\0';
-
- *(va_arg(*ap, int *)) = strtol(tbuf, NULL, 10);
- break;
- case 'X':
- case 'x':
- if(length == 0) length = 256;
-
- for(i = 0; **buffer != ' ' && **buffer != '\t' && **buffer != '\n' && i < length; i++) {
- tbuf[i] = **buffer;
- *buffer += 1;
- }
- tbuf[i] = '\0';
-
- *(va_arg(*ap, int *)) = strtol(tbuf, NULL, 16);
- break;
- case 'O':
- case 'o':
- if(length == 0) length = 256;
-
- for(i = 0; **buffer != ' ' && **buffer != '\t' && **buffer != '\n' && i < length; i++) {
- tbuf[i] = **buffer;
- *buffer += 1;
- }
- tbuf[i] = '\0';
-
- *(va_arg(*ap, int *)) = strtol(tbuf, NULL, 8);
- break;
- case 'c':
- *(va_arg(*ap, char *)) = **buffer;
- *buffer += 1;
- if(length > 1)
- for(i = 1; i < length; i++)
- *buffer += 1;
- break;
- case 's':
- if(length == 0) length = 256;
-
- for(i = 0; **buffer != ' ' && **buffer != '\t' && **buffer != '\n' && i < length; i++) {
- tbuf[i] = **buffer;
- *buffer += 1;
- }
-
- tbuf[i] = '\0';
-
- strcpy(va_arg(*ap, char *), tbuf);
- break;
- default:
- if(*fmt >= '0' && *fmt <= '9')
- length += *fmt - '0';
- break;
- }
- fmt++;
- }
-
-}
-
-
-int
-vsscanf(const char *buffer, const char *fmt, va_list ap)
-{
-
- while(*fmt != '\0') {
-
- if(*fmt == '%') {
-
- char formstr[20];
- int i=0;
-
- do {
- formstr[i] = *fmt;
- fmt++;
- i++;
- } while(!(*fmt == 'd' || *fmt == 'i' || *fmt == 'x' || *fmt == 'X'
- || *fmt == 'p' || *fmt == 'c' || *fmt == 's' || *fmt == '%'
- || *fmt == 'O' || *fmt == 'o' ));
- formstr[i++] = *fmt;
- formstr[i] = '\0';
- if(*fmt != '%') {
- while(*buffer == ' ' || *buffer == '\t' || *buffer == '\n')
- buffer++;
- _scanf(&buffer, formstr, &ap);
- }
-
- }
-
- fmt++;
-
- }
-
- return 0;
-}
-