microblaze: sync sysdep-cancel.h/sydep.h with GNU libc
[uclibc-ng.git] / libc / stdio / ferror.c
blob947b89ed197d1489469d09ff6b765bf6debf9081
1 /* Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org>
3 * GNU Library General Public License (LGPL) version 2 or later.
5 * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
6 */
8 #include "_stdio.h"
10 #undef ferror
11 #ifdef __DO_UNLOCKED
13 #undef ferror_unlocked
14 int ferror_unlocked(register FILE *stream)
16 __STDIO_STREAM_VALIDATE(stream);
18 return __FERROR_UNLOCKED(stream);
21 #ifndef __UCLIBC_HAS_THREADS__
22 strong_alias(ferror_unlocked,ferror)
23 #endif
25 #elif defined __UCLIBC_HAS_THREADS__
27 int ferror(register FILE *stream)
29 int retval;
30 __STDIO_AUTO_THREADLOCK_VAR;
32 __STDIO_AUTO_THREADLOCK(stream);
34 __STDIO_STREAM_VALIDATE(stream);
36 retval = __FERROR_UNLOCKED(stream);
38 __STDIO_AUTO_THREADUNLOCK(stream);
40 return retval;
43 #endif