]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Add macro definitions for GNU libc unlocked wrappers.
authorJim Meyering <jim@meyering.net>
Sun, 28 Jun 1998 21:38:14 +0000 (21:38 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 28 Jun 1998 21:38:14 +0000 (21:38 +0000)
src/sys2.h

index e2d41594e8c33ac805fd3f6b3fed0c04a909dd5d..2b3c57e36923dca24189feca9487937277a8b22f 100644 (file)
@@ -156,3 +156,81 @@ off_t lseek ();
 /* Be CAREFUL that there are no side effects in N.  */
 # define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
 #endif
+
+/* These are wrappers for functions/macros from GNU libc.
+   The standard I/O functions are thread-safe.  These *_unlocked ones
+   are more efficient but not thread-safe.  That they're not thread-safe
+   is fine since all these applications are single threaded.  */
+
+#ifdef HAVE_FCLOSE_UNLOCKED
+# define FCLOSE(S) fclose_unlocked (S)
+#else
+# define FCLOSE(S) fclose (S)
+#endif
+
+#ifdef HAVE_FFLUSH_UNLOCKED
+# define FFLUSH(S) fflush_unlocked (S)
+#else
+# define FFLUSH(S) fflush (S)
+#endif
+
+#ifdef HAVE_GETC_UNLOCKED
+# define GETC(S) getc_unlocked (S)
+#else
+# define GETC(S) getc (S)
+#endif
+
+#ifdef HAVE_GETCHAR_UNLOCKED
+# define GETCHAR(S) getchar_unlocked (S)
+#else
+# define GETCHAR(S) getchar (S)
+#endif
+
+#ifdef HAVE_PUTCHAR_UNLOCKED
+# define PUTCHAR(C) putchar_unlocked (C)
+#else
+# define PUTCHAR(C) putchar (C)
+#endif
+
+#ifdef HAVE_PUTC_UNLOCKED
+# define PUTC(C, S) putc_unlocked (C, S)
+#else
+# define PUTC(C, S) putc (C, S)
+#endif
+
+#ifdef HAVE_FPUTC_UNLOCKED
+# define FPUTC(C, S) fputc_unlocked (C, S)
+#else
+# define FPUTC(C, S) fputc (C, S)
+#endif
+
+#ifdef HAVE_FREAD_UNLOCKED
+# define FREAD(P, Z, N, S) fread_unlocked (P, Z, N, S)
+#else
+# define FREAD(P, Z, N, S) fread (P, Z, N, S)
+#endif
+
+#ifdef HAVE_FWRITE_UNLOCKED
+# define FWRITE(P, Z, N, S) fwrite_unlocked (P, Z, N, S)
+#else
+# define FWRITE(P, Z, N, S) fwrite (P, Z, N, S)
+#endif
+
+#ifdef HAVE_CLEARERR_UNLOCKED
+# define CLEARERR(S) clearerr_unlocked (S)
+#else
+# define CLEARERR(S) clearerr (S)
+#endif
+
+#ifdef HAVE_FEOF_UNLOCKED
+# define FEOF(S) feof_unlocked (S)
+#else
+# define FEOF(S) feof (S)
+#endif
+
+#ifdef HAVE_FERROR_UNLOCKED
+# define FERROR(S) ferror_unlocked (S)
+#else
+# define FERROR(S) ferror (S)
+#endif
+