Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowi@redhat.com>2011-05-19 11:21:42 +0400
committerYaakov Selkowitz <yselkowi@redhat.com>2011-05-19 11:21:42 +0400
commit831826db9440c6d8f94cc57c85208d0c2674119e (patch)
treea65c0ef1a958d0b101fe6db796ab6838f40ddc65 /newlib
parent503ff5adc19e7d0eb5998dc3f6e4906e4aaebfa5 (diff)
* libc/include/stdio_ext.h: New header.
* libc/stdio/fpurge.c [!__rtems__] (__fpurge): New function.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/include/stdio_ext.h22
-rw-r--r--newlib/libc/stdio/fpurge.c23
3 files changed, 50 insertions, 0 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 5ae2a34b7..cbba19330 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,8 @@
+2011-05-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
+
+ * libc/include/stdio_ext.h: New header.
+ * libc/stdio/fpurge.c [!__rtems__] (__fpurge): New function.
+
2011-05-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* Makefile.am (install-data-local): Fix condition and rm call.
diff --git a/newlib/libc/include/stdio_ext.h b/newlib/libc/include/stdio_ext.h
new file mode 100644
index 000000000..fcfb662a0
--- /dev/null
+++ b/newlib/libc/include/stdio_ext.h
@@ -0,0 +1,22 @@
+/*
+ * 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 *));
+
+_END_STD_C
+
+#endif /* _STDIO_EXT_H_ */
diff --git a/newlib/libc/stdio/fpurge.c b/newlib/libc/stdio/fpurge.c
index 41228efd7..7e23bb7fd 100644
--- a/newlib/libc/stdio/fpurge.c
+++ b/newlib/libc/stdio/fpurge.c
@@ -11,6 +11,8 @@ INDEX
fpurge
INDEX
_fpurge_r
+INDEX
+ __fpurge
ANSI_SYNOPSIS
#include <stdio.h>
@@ -18,6 +20,11 @@ ANSI_SYNOPSIS
int _fpurge_r(struct _reent *<[reent]>, FILE *<[fp]>);
+ #include <stdio.h>
+ #include <stdio_ext.h>
+ void __fpurge(FILE *<[fp]>);
+
+
DESCRIPTION
Use <<fpurge>> to clear all buffers of the given stream. For output
streams, this discards data not yet written to disk. For input streams,
@@ -26,6 +33,8 @@ but not yet read via <<getc>>. This is more severe than <<fflush>>,
and generally is only needed when manually altering the underlying file
descriptor of a stream.
+<<__fpurge>> behaves exactly like <<fpurge>> but does not return a value.
+
The alternate function <<_fpurge_r>> is a reentrant version, where the
extra argument <[reent]> is a pointer to a reentrancy structure, and
<[fp]> must not be NULL.
@@ -42,6 +51,9 @@ No supporting OS subroutines are required.
#include <_ansi.h>
#include <stdio.h>
+#ifndef __rtems__
+#include <stdio_ext.h>
+#endif
#include <errno.h>
#include "local.h"
@@ -87,4 +99,15 @@ _DEFUN(fpurge, (fp),
return _fpurge_r (_REENT, fp);
}
+#ifndef __rtems__
+
+void
+_DEFUN(__fpurge, (fp),
+ register FILE * fp)
+{
+ _fpurge_r (_REENT, fp);
+}
+
+#endif
+
#endif /* _REENT_ONLY */