From 439fdff851b3a064ccd3961e70495629ddba6702 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 28 Jun 1998 21:38:14 +0000 Subject: [PATCH] Add macro definitions for GNU libc unlocked wrappers. --- src/sys2.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/src/sys2.h b/src/sys2.h index e2d41594e8..2b3c57e369 100644 --- a/src/sys2.h +++ b/src/sys2.h @@ -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 + -- 2.47.3