not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
+#include <errnos.h>
+
.globl syscall_error
syscall_error:
+ /* We translate the system's EWOULDBLOCK error into EAGAIN.
+ The GNU C library always defines EWOULDBLOCK==EAGAIN.
+ EWOULDBLOCK_sys is the original number. */
#ifdef __motorola__
- move.l d0, _errno
+#ifdef EWOULDBLOCK_sys
+ cmp.l d0, #EWOULDBLOCK_sys
+ bne store
+ moveq.l #EAGAIN, d0
+#endif
+store: move.l d0, _errno
moveq.l #-1, d0
#else
- movel d0, _errno
+#ifdef EWOULDBLOCK_sys
+ cmpl d0, #EWOULDBLOCK_sys
+ bne 0f
+ moveq #EAGAIN, d0
+#endif
+0: movel d0, _errno
moveq #-1, d0
#endif
rts