| /* |
| * stdio_ext.h |
| * |
| * Definitions for I/O internal operations, originally from Solaris. |
| */ |
| |
| #ifndef _STDIO_EXT_H_ |
| #define _STDIO_EXT_H_ |
| |
| #ifdef __rtems__ |
| #error "<stdio_ext.h> not supported" |
| #endif |
| |
| #include <stdio.h> |
| |
| #define FSETLOCKING_QUERY 0 |
| #define FSETLOCKING_INTERNAL 1 |
| #define FSETLOCKING_BYCALLER 2 |
| |
| _BEGIN_STD_C |
| |
| void __fpurge (FILE *); |
| int __fsetlocking (FILE *, int); |
| |
| /* TODO: |
| |
| void _flushlbf (void); |
| */ |
| |
| #ifdef __GNUC__ |
| |
| _ELIDABLE_INLINE size_t |
| __fbufsize (FILE *__fp) { return (size_t) __fp->_bf._size; } |
| |
| _ELIDABLE_INLINE int |
| __freading (FILE *__fp) { return (__fp->_flags & __SRD) != 0; } |
| |
| _ELIDABLE_INLINE int |
| __fwriting (FILE *__fp) { return (__fp->_flags & __SWR) != 0; } |
| |
| _ELIDABLE_INLINE int |
| __freadable (FILE *__fp) { return (__fp->_flags & (__SRD | __SRW)) != 0; } |
| |
| _ELIDABLE_INLINE int |
| __fwritable (FILE *__fp) { return (__fp->_flags & (__SWR | __SRW)) != 0; } |
| |
| _ELIDABLE_INLINE int |
| __flbf (FILE *__fp) { return (__fp->_flags & __SLBF) != 0; } |
| |
| _ELIDABLE_INLINE size_t |
| __fpending (FILE *__fp) { return __fp->_p - __fp->_bf._base; } |
| |
| #else |
| |
| size_t __fbufsize (FILE *); |
| int __freading (FILE *); |
| int __fwriting (FILE *); |
| int __freadable (FILE *); |
| int __fwritable (FILE *); |
| int __flbf (FILE *); |
| size_t __fpending (FILE *); |
| |
| #ifndef __cplusplus |
| |
| #define __fbufsize(__fp) ((size_t) (__fp)->_bf._size) |
| #define __freading(__fp) (((__fp)->_flags & __SRD) != 0) |
| #define __fwriting(__fp) (((__fp)->_flags & __SWR) != 0) |
| #define __freadable(__fp) (((__fp)->_flags & (__SRD | __SRW)) != 0) |
| #define __fwritable(__fp) (((__fp)->_flags & (__SWR | __SRW)) != 0) |
| #define __flbf(__fp) (((__fp)->_flags & __SLBF) != 0) |
| #define __fpending(__fp) ((size_t) ((__fp)->_p - (__fp)->_bf._base)) |
| |
| #endif /* __cplusplus */ |
| |
| #endif /* __GNUC__ */ |
| |
| _END_STD_C |
| |
| #endif /* _STDIO_EXT_H_ */ |