diff options
Diffstat (limited to 'newlib/libc/machine/spu/perror.c')
-rw-r--r-- | newlib/libc/machine/spu/perror.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/newlib/libc/machine/spu/perror.c b/newlib/libc/machine/spu/perror.c index 63e7fe82c..028f44a37 100644 --- a/newlib/libc/machine/spu/perror.c +++ b/newlib/libc/machine/spu/perror.c @@ -1,17 +1,30 @@ #include <stdio.h> +#include <errno.h> #include "c99ppe.h" #ifndef _REENT_ONLY +typedef struct +{ + _CONST char* str; + unsigned int pad0[ 3 ]; + int arg_errno; + unsigned int pad1[ 3 ]; +} c99_perror_t; + void _DEFUN (perror, (s), _CONST char *s) { + c99_perror_t arg; + CHECK_STD_INIT(_REENT); - __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PERROR, &s); + arg.str = s; + arg.arg_errno = errno; + __send_to_ppe(SPE_C99_SIGNALCODE, SPE_C99_PERROR, &arg); return; } |