From be97722968a0b7d1cc3fe1ab7df0510c5b8eed95 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Wed, 20 Jun 2007 21:54:47 +0000 Subject: [PATCH] 2007-06-20 Patrick Mansfield * libc/machine/spu/perror.c: Pass errno as the second argument to the assist call. --- newlib/ChangeLog | 5 +++++ newlib/libc/machine/spu/perror.c | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 1069c7460..39bd297ea 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2007-06-20 Patrick Mansfield + + * libc/machine/spu/perror.c: Pass errno as the second argument to + the assist call. + 2007-06-20 Patrick Mansfield * libc/include/sys/unistd.h[__SPU__]: Add lockf prototype and related 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 +#include #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; }