diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2006-12-18 20:39:02 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2006-12-18 20:39:02 +0000 |
commit | 505ccc75c4d380084ef11bc51b8d876ba656e729 (patch) | |
tree | 0b80780613fea864ee996a3ffec339951c1776e6 /newlib/libc/machine/spu/printf.c | |
parent | 78b7c6f81727c700279895c2012f0d7b01a72d97 (diff) | |
download | cygnal-505ccc75c4d380084ef11bc51b8d876ba656e729.tar.gz cygnal-505ccc75c4d380084ef11bc51b8d876ba656e729.tar.bz2 cygnal-505ccc75c4d380084ef11bc51b8d876ba656e729.zip |
2006-12-18 Joel Schopp <jschopp@austin.ibm.com>
* libc/machine/spu/c99ppe.h: New file
* libc/machine/spu/perror.c: New file to override libc/stdio version.
* libc/machine/spu/printf.c: New file
* libc/machine/spu/putchar.c: New file
* libc/machine/spu/puts.c: New file
* libc/machine/spu/vprintf.c: New file
* libc/machine/spu/vsnprintf.c: New file
* libc/machine/spu/vsprintf.c: New file
* libc/machine/spu/Makefile.am: Add new targets.
* libc/machine/spu/Makefile.in: Regenerated.
Diffstat (limited to 'newlib/libc/machine/spu/printf.c')
-rw-r--r-- | newlib/libc/machine/spu/printf.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/newlib/libc/machine/spu/printf.c b/newlib/libc/machine/spu/printf.c new file mode 100644 index 000000000..d79f35dc5 --- /dev/null +++ b/newlib/libc/machine/spu/printf.c @@ -0,0 +1,54 @@ + +#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_printf_t; + +#ifndef _REENT_ONLY + +#ifdef _HAVE_STDC +int +_DEFUN (printf, (fmt,ap), + _CONST char *fmt _AND + ...) +#else +int +#error +printf (fmt, va_alist) + char *fmt; + va_dcl +#endif +{ + int* ret; + c99_printf_t args; + ret = (int*) &args; + + args.fmt = fmt; +#ifdef _HAVE_STDC + va_start (args.ap, args.fmt); +#else + va_start (args.ap); +#endif + + + /* ret = vfprintf (_stdout_r (_REENT), fmt, ap);*/ + send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_VPRINTF, &args); + + va_end (args.ap); + return *ret; +} + +#endif /* ! _REENT_ONLY */ |