mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-17 12:01:53 +08:00
6f34876e5e
[!__GNUC__]: Declare real functions for the macros, and make the macros conditional on !__cplusplus. * libc/stdio/Makefile.am (ELIX_4_SOURCES): Add stdio_ext.c. (CHEWOUT_FILES): Add stdio_ext.def. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/stdio.tex: Include stdio_ext.def. * libc/stdio/stdio_ext.c: New file.
76 lines
1.7 KiB
C
76 lines
1.7 KiB
C
/*
|
|
* 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>
|
|
|
|
_BEGIN_STD_C
|
|
|
|
void _EXFUN(__fpurge,(FILE *));
|
|
|
|
/* TODO:
|
|
|
|
void _flushlbf (void);
|
|
int __fsetlocking (FILE *__fp, int __type);
|
|
*/
|
|
|
|
#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 _EXFUN(__fbufsize,(FILE *));
|
|
int _EXFUN(__freading,(FILE *));
|
|
int _EXFUN(__fwriting,(FILE *));
|
|
int _EXFUN(__freadable,(FILE *));
|
|
int _EXFUN(__fwritable,(FILE *));
|
|
int _EXFUN(__flbf,(FILE *));
|
|
size_t _EXFUN(__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_ */
|