This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFC 3/4] cell stdio - add some more forgotten functions


This adds some functions that were forgotten in patch 1.
Index: newlib-1.14.0/newlib/libc/machine/spu/configure
===================================================================
--- newlib-1.14.0.orig/newlib/libc/machine/spu/configure
+++ newlib-1.14.0/newlib/libc/machine/spu/configure
@@ -1556,15 +1556,9 @@ fi
 # use oext, which is set in configure.host based on the target platform.
 OBJEXT=${oext}
 
+extra_objs="printf.o vfprintf.o clearerr.o fclose.o feof.o ferror.o fflush.o fgetc.o fgetpos.o fgets.o fileno.o fopen.o fputc.o fputs.o fread.o freopen.o fseek.o fsetpos.o ftell.o fwrite.o getc.o getchar.o gets.o perror.o putc.o putchar.o puts.o remove.o rename.o rewind.o setbuf.o setvbuf.o tmpfile.o ungetc.o vfprintf.o vfscanf.o vprintf.o vscanf.o vsnprintf.o vsprintf.o vsscanf.o sprintf.o sscanf.o snprintf.o fprintf.o fscanf.o scanf.o"
 
-
-
-
-
-
-extra_objs="printf.o vfprintf.o clearerr.o fclose.o feof.o ferror.o fflush.o fgetc.o fgetpos.o fgets.o fileno.o fopen.o fputc.o fputs.o fread.o freopen.o fseek.o fsetpos.o ftell.o fwrite.o getc.o getchar.o gets.o perror.o putc.o putchar.o puts.o remove.o rename.o rewind.o setbuf.o setvbuf.o tmpfile.o ungetc.o vfprintf.o vfscanf.o vprintf.o vscanf.o vsnprintf.o vsprintf.o vsscanf.o"
-
-extra_sources="printf.c vfprintf.c clearerr.c fclose.c feof.c ferror.c fflush.c fgetc.c fgetpos.c fgets.c fileno.c fopen.c fputc.c fputs.c fread.c freopen.c fseek.c fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c perror.c putc.c putchar.c puts.c remove.c rename.c rewind.c setbuf.c setvbuf.c tmpfile.c ungetc.c vfprintf.c vfscanf.c vprintf.c vscanf.c vsnprintf.c vsprintf.c vsscanf.c"
+extra_sources="printf.c vfprintf.c clearerr.c fclose.c feof.c ferror.c fflush.c fgetc.c fgetpos.c fgets.c fileno.c fopen.c fputc.c fputs.c fread.c freopen.c fseek.c fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c perror.c putc.c putchar.c puts.c remove.c rename.c rewind.c setbuf.c setvbuf.c tmpfile.c ungetc.c vfprintf.c vfscanf.c vprintf.c vscanf.c vsnprintf.c vsprintf.c vsscanf.c sprintf.c sscanf.c snprintf.c fprintf.o fscanf.o scanf.o"
 
 
 trap '' 1 2 15
Index: newlib-1.14.0/newlib/libc/machine/spu/configure.in
===================================================================
--- newlib-1.14.0.orig/newlib/libc/machine/spu/configure.in
+++ newlib-1.14.0/newlib/libc/machine/spu/configure.in
@@ -9,9 +9,10 @@ AC_CONFIG_AUX_DIR(../../../..)
 
 NEWLIB_CONFIGURE(../../..)
 
-extra_objs="printf.o vfprintf.o clearerr.o fclose.o feof.o ferror.o fflush.o fgetc.o fgetpos.o fgets.o fileno.o fopen.o fputc.o fputs.o fread.o freopen.o fseek.o fsetpos.o ftell.o fwrite.o getc.o getchar.o gets.o perror.o putc.o putchar.o puts.o remove.o rename.o rewind.o setbuf.o setvbuf.o tmpfile.o ungetc.o vfprintf.o vfscanf.o vprintf.o vscanf.o vsnprintf.o vsprintf.o vsscanf.o"
+extra_objs="printf.o vfprintf.o clearerr.o fclose.o feof.o ferror.o fflush.o fgetc.o fgetpos.o fgets.o fileno.o fopen.o fputc.o fputs.o fread.o freopen.o fseek.o fsetpos.o ftell.o fwrite.o getc.o getchar.o gets.o perror.o putc.o putchar.o puts.o remove.o rename.o rewind.o setbuf.o setvbuf.o tmpfile.o ungetc.o vfprintf.o vfscanf.o vprintf.o vscanf.o vsnprintf.o vsprintf.o vsscanf.o sprintf.o sscanf.o snprintf.o fprintf.o fscanf.o scanf.o"
+
+extra_sources="printf.c vfprintf.c clearerr.c fclose.c feof.c ferror.c fflush.c fgetc.c fgetpos.c fgets.c fileno.c fopen.c fputc.c fputs.c fread.c freopen.c fseek.c fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c perror.c putc.c putchar.c puts.c remove.c rename.c rewind.c setbuf.c setvbuf.c tmpfile.c ungetc.c vfprintf.c vfscanf.c vprintf.c vscanf.c vsnprintf.c vsprintf.c vsscanf.c sprintf.c sscanf.c snprintf.c fprintf.o fscanf.o scanf.o"
 
-extra_sources="printf.c vfprintf.c clearerr.c fclose.c feof.c ferror.c fflush.c fgetc.c fgetpos.c fgets.c fileno.c fopen.c fputc.c fputs.c fread.c freopen.c fseek.c fsetpos.c ftell.c fwrite.c getc.c getchar.c gets.c perror.c putc.c putchar.c puts.c remove.c rename.c rewind.c setbuf.c setvbuf.c tmpfile.c ungetc.c vfprintf.c vfscanf.c vprintf.c vscanf.c vsnprintf.c vsprintf.c vsscanf.c"
 AC_SUBST(extra_objs)
 AC_SUBST(extra_sources)
 
Index: newlib-1.14.0/newlib/libc/machine/spu/snprintf.c
===================================================================
--- /dev/null
+++ newlib-1.14.0/newlib/libc/machine/spu/snprintf.c
@@ -0,0 +1,46 @@
+
+#include <_ansi.h>
+#include <stdio.h>
+
+#include "c99ppe.h"
+
+#ifdef _HAVE_STDC
+#include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+typedef struct
+{
+  char* str;
+  unsigned int pad0[ 3 ];
+  size_t size;
+  unsigned int pad1[ 3 ];
+  char* fmt;
+  unsigned int pad2[ 3 ];
+  va_list ap;
+} c99_snprintf_t;
+
+_DEFUN(snprintf, (str, size, fmt),
+       char *str   _AND
+       size_t size _AND
+       _CONST char *fmt _DOTS)
+{
+  int* ret;
+  c99_snprintf_t args;
+  ret = (int*) &args;
+
+  args.str = str;
+  args.size = size;
+  args.fmt = fmt;
+#ifdef _HAVE_STDC
+  va_start (args.ap, args.fmt);
+#else
+  va_start (args.ap);
+#endif
+
+  send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSNPRINTF, &args);
+
+  va_end (args.ap);
+  return *ret;
+}
Index: newlib-1.14.0/newlib/libc/machine/spu/sprintf.c
===================================================================
--- /dev/null
+++ newlib-1.14.0/newlib/libc/machine/spu/sprintf.c
@@ -0,0 +1,42 @@
+
+#include <_ansi.h>
+#include <stdio.h>
+
+#include "c99ppe.h"
+
+#ifdef _HAVE_STDC
+#include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+typedef struct
+{
+  char* str;
+  unsigned int pad0[ 3 ];
+  char* fmt;
+  unsigned int pad1[ 3 ];
+  va_list ap;
+} c99_sprintf_t;
+
+_DEFUN(sprintf, (str, fmt),
+       char *str _AND
+       _CONST char *fmt _DOTS)
+{
+  int* ret;
+  c99_sprintf_t args;
+  ret = (int*) &args;
+
+  args.str = str;
+  args.fmt = fmt;
+#ifdef _HAVE_STDC
+  va_start (args.ap, args.fmt);
+#else
+  va_start (args.ap);
+#endif
+
+  send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSPRINTF, &args);
+
+  va_end (args.ap);
+  return *ret;
+}
Index: newlib-1.14.0/newlib/libc/machine/spu/sscanf.c
===================================================================
--- /dev/null
+++ newlib-1.14.0/newlib/libc/machine/spu/sscanf.c
@@ -0,0 +1,44 @@
+
+#include <_ansi.h>
+#include <stdio.h>
+
+#include "c99ppe.h"
+
+#ifdef _HAVE_STDC
+#include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+typedef struct
+{
+  char* str;
+  unsigned int pad0[ 3 ];
+  char* fmt;
+  unsigned int pad1[ 3 ];
+  va_list ap;
+} c99_sscanf_t;
+
+int
+_DEFUN(sscanf, (str, fmt),
+       _CONST char *str _AND
+       _CONST char *fmt _DOTS)
+{
+  int* ret;
+  c99_sscanf_t args;
+  ret = (int*) &args;
+
+  args.str = str;
+  args.fmt = fmt;
+#ifdef _HAVE_STDC
+  va_start (args.ap, args.fmt);
+#else
+  va_start (args.ap);
+#endif
+
+  send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSSCANF, &args);
+
+  va_end (args.ap);
+  return *ret;
+}
+
Index: newlib-1.14.0/newlib/libc/machine/spu/fprintf.c
===================================================================
--- /dev/null
+++ newlib-1.14.0/newlib/libc/machine/spu/fprintf.c
@@ -0,0 +1,42 @@
+
+#include <_ansi.h>
+#include <stdio.h>
+
+#include "c99ppe.h"
+
+#ifdef _HAVE_STDC
+#include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+typedef struct
+{
+  FILE * fp;
+  unsigned int pad0[ 3 ];
+  char* fmt;
+  unsigned int pad1[ 3 ];
+  va_list ap;
+} c99_fprintf_t;
+
+int
+fprintf(FILE * fp, _CONST char *fmt,...)
+{
+  int* ret;
+  c99_fprintf_t args;
+  ret = (int*) &args;
+
+  args.fp = fp;
+  args.fmt = (char*) fmt;
+
+#ifdef _HAVE_STDC
+  va_start (args.ap, args.fmt);
+#else
+  va_start (args.ap);
+#endif
+
+  send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFPRINTF, &args);
+
+  va_end (args.ap);
+  return *ret;
+}
Index: newlib-1.14.0/newlib/libc/machine/spu/fscanf.c
===================================================================
--- /dev/null
+++ newlib-1.14.0/newlib/libc/machine/spu/fscanf.c
@@ -0,0 +1,42 @@
+
+#include <_ansi.h>
+#include <stdio.h>
+
+#include "c99ppe.h"
+
+#ifdef _HAVE_STDC
+#include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+typedef struct
+{
+  FILE * fp;
+  unsigned int pad0[ 3 ];
+  char* fmt;
+  unsigned int pad1[ 3 ];
+  va_list ap;
+} c99_vfscanf_t;
+
+fscanf(FILE *fp, _CONST char *fmt, ...)
+{
+  int* ret;
+  c99_vfscanf_t args;
+  ret = (int*) &args;
+
+  args.fp = fp;
+  args.fmt = (char*) fmt;
+#ifdef _HAVE_STDC
+  va_start (args.ap, args.fmt);
+#else
+  va_start (args.ap);
+#endif
+
+
+  send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VFSCANF, &args);
+
+  va_end (args.ap);
+  return *ret;
+}
+
Index: newlib-1.14.0/newlib/libc/machine/spu/scanf.c
===================================================================
--- /dev/null
+++ newlib-1.14.0/newlib/libc/machine/spu/scanf.c
@@ -0,0 +1,39 @@
+
+#include <_ansi.h>
+#include <stdio.h>
+
+#include "c99ppe.h"
+
+#ifdef _HAVE_STDC
+#include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+typedef struct
+{
+  char* fmt;
+  unsigned int pad0[ 3 ];
+  va_list ap;
+} c99_vscanf_t;
+
+scanf(_CONST char *fmt, ...)
+{
+  int* ret;
+  c99_vscanf_t args;
+  ret = (int*) &args;
+
+  args.fmt = (char*) fmt;
+#ifdef _HAVE_STDC
+  va_start (args.ap, args.fmt);
+#else
+  va_start (args.ap);
+#endif
+
+
+  send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VSCANF, &args);
+
+  va_end (args.ap);
+  return *ret;
+}
+

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]