Merge branch 'master' of ssh://sourceware.org/git/glibc
[jlayton/glibc.git] / include / stdio_ext.h
1 #ifndef _STDIO_EXT_H
2
3 # include <stdio-common/stdio_ext.h>
4
5 extern int __fsetlocking_internal (FILE *__fp, int __type) attribute_hidden;
6
7 #define __fsetlocking(fp, type) \
8   ({ int __result = ((fp->_flags & _IO_USER_LOCK)                       \
9                      ? FSETLOCKING_BYCALLER : FSETLOCKING_INTERNAL);    \
10                                                                         \
11      if (type != FSETLOCKING_QUERY)                                     \
12        {                                                                \
13          fp->_flags &= ~_IO_USER_LOCK;                                  \
14          if (type == FSETLOCKING_BYCALLER)                              \
15            fp->_flags |= _IO_USER_LOCK;                                 \
16        }                                                                \
17                                                                         \
18      __result;                                                          \
19   })
20
21
22 #endif