about summary refs log tree commit diff
path: root/stdio/stdio.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-07-09 13:58:47 +0000
committerUlrich Drepper <drepper@redhat.com>1998-07-09 13:58:47 +0000
commite918a7feebf850a139d894db559f0bd5b5fec32d (patch)
tree2d5b07c196df657401703f30c0949ee8b0622ff9 /stdio/stdio.h
parent6077fe6e4d860f5fc53c49a4266d50437f3a2817 (diff)
downloadglibc-e918a7feebf850a139d894db559f0bd5b5fec32d.tar.gz
glibc-e918a7feebf850a139d894db559f0bd5b5fec32d.tar.xz
glibc-e918a7feebf850a139d894db559f0bd5b5fec32d.zip
Update.
1998-07-09 13:34  Ulrich Drepper  <drepper@cygnus.com>

	* grp/grp.h: Define gid_t also for __USE_XOPEN.
	* io/fcntl.h: Include <sys/stat.h> also for __USE_XOPEN.
	* io/utime.h: Define time_t also for __USE_XOPEN.
	* io/sys/stat.h: Define time_t also for __USE_XOPEN.
	Define *_t types except for pid_t also for __USE_XOPEN.
	Define S_* macros also for __USE_XOPEN.
	* locale/langinfo.h: Define CODESET, CRNCYSTR, RADIXCHAR, and
	THOUSEP also for __USE_XOPEN.
	* math/math.c: Define M_* macros also for __USE_XOPEN.
	* math/bits/mathcalls.h: Declare hypot also for __USE_XOPEN.
	* posix/fnmatch.h: Define FNM_NOSYS and for if _XOPEN_SOURCE is
	defined.
	* posix/glob.h: Likewise for GLOB_NOSYS.
	* posix/regex.h: Likewise for REG_NOSYS.
	* posix/wordexp.h: Likewise for WRDE_NOSYS.
	* posix/unistd.h: Define *_t types also for __USE_XOPEN.
	* posix/sys/wait.h: Define pid_t for __USE_XOPEN.
	* pwd/pwd.h: Define gid_t and pid_t also for __USE_XOPEN.
	* signal/signal.h: Define pid_t also fir __USE_XOPEN.
	* sysdeps/unix/sysv/linux/bits/fcntl.h: Define _RSYNC and O_DSYNC also
	for __USE_POSIX199309.
	* sysdeps/unix/sysv/linux/bits/termios.h: Define the various B*
	constants also for __USE_XOPEN.
	* wcsmbs/wchar.h: For XPG4 include wctype.h.

	* intl/dcgettext.c (find_msg): Initialize act to prevent warning.
	* locale/setlocale.c (new_composite_name): Likewise for last_len.

	* libio/stdio.h: Don't declare fclose_unlocked.

	* sysdeps/posix/fpathconf.c: Handle _PC_FILESIZEBITS.

1998-07-08  Mark Kettenis  <kettenis@phys.uva.nl>

	* stdio/stdio.h: Add prototypes for fflush_unlocked,
	getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked,
	fgets_unlocked, fread_unlocked, fwrite_unlocked,
	clearerr_unlocked, feof_unlocked, ferror_unlocked,
	fileno_unlocked, flockfile, ftrylockfile, funlockfile.
	[__USE_XOPEN && !__USE_GNU] Declare optarg, optind, opterr.  Add
	prototype for getopt.
	* stdio/clearerr.c (clearerr_unlocked): Weak alias for clearerr.
	* stdio/feof.c (feof_unlocked): Weak alias for feof.
	* stdio/ferror.c (ferror_unlocked): Weak alias for ferror.
	* stdio/fflush.c (fflush_unlocked): Weak alias for fflush.
	* stdio/fgets.c (fgets_unlocked): Weak alias for fgets.
	* stdio/fileno.c (fileno_unlocked): Weak alias for fileno.
	* stdio/fputc.c (fputc_unlocked): Weak alias for fputc.
	* stdio/fread.c (fread_unlocked): Weak alias for fread.
	* stdio/fwrite.c (fwrite_unlocked): Weak alias for fwrite.
	* stdio/getc.c (getchar_unlocked): Weak alias for getc.
	* stdio/getchar.c (getchar_unlocked): Weak alias for getchar.
	* stdio/putc.c (putc_unlocked): Weak alias for putc.
	* stdio/putchar.c (putchar_unlocked): Weak alias for putchar.
	* stdio/Versions [GLIBC_2.1]: Add clearerr_unlocked,
	feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked,
	fileno_unlocked, fputc_unlocked, fread_unlocked, fwrite_unlocked,
	getc_unlocked, getchar_unlocked, putc_unlocked and
	putchar_unlocked.

	* libio/Versions: Move flockfile, ftrylockfile and funlockfile
	from here ...
	* stdio-common/Versions: ... to here.

1998-07-09  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* Makerules (versioning): Correct typo.
Diffstat (limited to 'stdio/stdio.h')
-rw-r--r--stdio/stdio.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/stdio/stdio.h b/stdio/stdio.h
index dd4dd6db0d..eac8bd41b1 100644
--- a/stdio/stdio.h
+++ b/stdio/stdio.h
@@ -333,6 +333,11 @@ extern int fclose __P ((FILE *__stream));
 /* Flush STREAM, or all streams if STREAM is NULL.  */
 extern int fflush __P ((FILE *__stream));
 
+#ifdef __USE_MISC
+/* Faster versions when locking is not required.  */
+extern int fflush_unlocked __P ((FILE *__stream));
+#endif
+
 #ifdef __USE_GNU
 /* Close all streams.  */
 extern int __fcloseall __P ((void));
@@ -543,6 +548,26 @@ getchar (void)
 }
 #endif /* Optimizing.  */
 
+#if defined __USE_POSIX || defined __USE_MISC
+/* These are defined in POSIX.1:1996.  */
+extern int getc_unlocked __P ((FILE *__stream));
+extern int getchar_unlocked __P ((void));
+
+# ifdef __OPTIMIZE__
+extern __inline int
+getc_unlocked (FILE *__stream)
+{
+  return __getc (__stream);
+}
+
+extern __inline int
+getchar_unlocked (void)
+{
+  return __getc (stdin);
+}
+# endif /* Optimizing.  */
+#endif /* Use POSIX or MISC.  */
+
 
 /* Write a character to STREAM.  */
 extern int fputc __P ((int __c, FILE *__stream));
@@ -571,6 +596,39 @@ putchar (int __c)
 }
 #endif
 
+#ifdef __USE_MISC
+/* Faster version when locking is not necessary.  */
+extern int fputc_unlocked __P ((int __c, FILE *__stream));
+
+# ifdef __OPTIMIZE__
+extern __inline int
+fputc_unlocked (int __c, FILE *__stream)
+{
+  return __putc (__c, __stream);
+}
+# endif /* Optimizing.  */
+#endif /* Use MISC.  */
+
+#if defined __USE_POSIX || defined __USE_MISC
+/* These are defined in POSIX.1:1996.  */
+extern int putc_unlocked __P ((int __c, FILE *__stream));
+extern int putchar_unlocked __P ((int __c));
+
+# ifdef __OPTIMIZE__
+extern __inline int
+putc_unlocked (int __c, FILE *__stream)
+{
+  return __putc (__c, __stream);
+}
+
+extern __inline int
+putchar_unlocked (int __c)
+{
+  return __putc (__c, stdout);
+}
+# endif /* Optimizing.  */
+#endif /* Use POSIX or MISC.  */
+
 
 #if defined __USE_SVID || defined __USE_MISC
 /* Get a word (int) from STREAM.  */
@@ -585,6 +643,12 @@ extern int putw __P ((int __w, FILE *__stream));
 extern char *fgets __P ((char *__restrict __s, int __n,
 			 FILE *__restrict __stream));
 
+#ifdef __USE_GNU
+/* This function does the same as `fgets' but does not lock the stream.  */
+extern char *fgets_unlocked __P ((char *__restrict __s, int __n,
+				  FILE *__restrict __stream));
+#endif
+
 /* Get a newline-terminated string from stdin, removing the newline.
    DO NOT USE THIS FUNCTION!!  There is no limit on how much it will read.  */
 extern char *gets __P ((char *__s));
@@ -635,6 +699,15 @@ extern size_t fread __P ((__ptr_t __restrict __ptr, size_t __size,
 extern size_t fwrite __P ((__const __ptr_t __restrict __ptr, size_t __size,
 			   size_t __n, FILE *__restrict __s));
 
+#ifdef __USE_MISC
+/* Faster versions when locking is not necessary.  */
+extern size_t fread_unlocked __P ((void *__restrict __ptr, size_t __size,
+				   size_t __n, FILE *__restrict __stream));
+extern size_t fwrite_unlocked __P ((__const void *__restrict __ptr,
+				    size_t __size, size_t __n,
+				    FILE *__restrict __stream));
+#endif
+
 
 /* Seek to a certain position on STREAM.  */
 extern int fseek __P ((FILE *__stream, long int __off, int __whence));
@@ -661,6 +734,17 @@ extern int ferror __P ((FILE *__stream));
 #define	ferror(stream)	((stream)->__error != 0)
 #endif /* Optimizing.  */
 
+#ifdef __USE_MISC
+/* Faster versions when locking is not required.  */
+extern void clearerr_unlocked __P ((FILE *__stream));
+extern int feof_unlocked __P ((FILE *__stream));
+extern int ferror_unlocked __P ((FILE *__stream));
+
+# ifdef	__OPTIMIZE__
+#  define feof_unlocked(stream)		((stream)->__eof != 0)
+#  define ferror_unlocked(stream)	((stream)->__error != 0)
+# endif /* Optimizing.  */
+#endif
 
 /* Print a message describing the meaning of the value of errno.  */
 extern void perror __P ((__const char *__s));
@@ -680,6 +764,11 @@ extern const char *const _sys_errlist[];
 extern int fileno __P ((FILE *__stream));
 #endif /* Use POSIX.  */
 
+#ifdef __USE_MISC
+/* Faster version when locking is not required.  */
+extern int fileno_unlocked __P ((FILE *__stream));
+#endif
+
 
 #if (defined __USE_POSIX2 || defined __USE_SVID || defined __USE_BSD || \
      defined __USE_MISC)
@@ -718,6 +807,35 @@ extern int obstack_vprintf __P ((struct obstack *__obstack,
 #endif
 
 
+#if defined __USE_POSIX || defined __USE_MISC
+/* These are defined in POSIX.1:1996.  */
+
+/* Acquire ownership of STREAM.  */
+extern void flockfile __P ((FILE *__stream));
+
+/* Try to acquire ownership of STREAM but do not block if it is not
+   possible.  */
+extern int ftrylockfile __P ((FILE *__stream));
+
+/* Relinquish the ownership granted for STREAM.  */
+extern void funlockfile __P ((FILE *__stream));
+#endif /* POSIX || misc */
+
+#if defined __USE_XOPEN && !defined __USE_GNU
+/* The X/Open standard requires some functions and variables to be
+   declared here which do not belong into this header.  But we have to
+   follow.  In GNU mode we don't do this nonsense.  */
+
+/* For more information on these symbols look in <getopt.h>.  */
+extern char *optarg;
+extern int optind;
+extern int opterr;
+extern int optopt;
+
+extern int getopt __P ((int __argc, char *__const *__argv,
+			__const char *__shortopts));
+#endif
+
 __END_DECLS
 
 #endif /* <stdio.h> included.  */