summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdio/fpurge.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/fpurge.c')
-rw-r--r--newlib/libc/stdio/fpurge.c113
1 files changed, 0 insertions, 113 deletions
diff --git a/newlib/libc/stdio/fpurge.c b/newlib/libc/stdio/fpurge.c
deleted file mode 100644
index 7e23bb7fd..000000000
--- a/newlib/libc/stdio/fpurge.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright (C) 2009 Eric Blake
- * Permission to use, copy, modify, and distribute this software
- * is freely granted, provided that this notice is preserved.
- */
-
-/*
-FUNCTION
-<<fpurge>>---discard pending file I/O
-
-INDEX
- fpurge
-INDEX
- _fpurge_r
-INDEX
- __fpurge
-
-ANSI_SYNOPSIS
- #include <stdio.h>
- int fpurge(FILE *<[fp]>);
-
- 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,
-this discards any data from <<ungetc>> and any data retrieved from disk
-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.
-
-RETURNS
-<<fpurge>> returns <<0>> unless <[fp]> is not valid, in which case it
-returns <<EOF>> and sets <<errno>>.
-
-PORTABILITY
-These functions are not portable to any standard.
-
-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"
-
-/* Discard I/O from a single file. */
-
-int
-_DEFUN(_fpurge_r, (ptr, fp),
- struct _reent *ptr _AND
- register FILE * fp)
-{
- int t;
-
- CHECK_INIT (ptr, fp);
-
- _flockfile (fp);
-
- t = fp->_flags;
- if (!t)
- {
- ptr->_errno = EBADF;
- _funlockfile (fp);
- return EOF;
- }
- fp->_p = fp->_bf._base;
- if ((t & __SWR) == 0)
- {
- fp->_r = 0;
- if (HASUB (fp))
- FREEUB (ptr, fp);
- }
- else
- fp->_w = t & (__SLBF | __SNBF) ? 0 : fp->_bf._size;
- _funlockfile (fp);
- return 0;
-}
-
-#ifndef _REENT_ONLY
-
-int
-_DEFUN(fpurge, (fp),
- register FILE * fp)
-{
- return _fpurge_r (_REENT, fp);
-}
-
-#ifndef __rtems__
-
-void
-_DEFUN(__fpurge, (fp),
- register FILE * fp)
-{
- _fpurge_r (_REENT, fp);
-}
-
-#endif
-
-#endif /* _REENT_ONLY */