12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /*
- * 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_ */
|