Annotation of embedaddon/libiconv/srclib/unlocked-io.h, revision 1.1
1.1 ! misho 1: /* Prefer faster, non-thread-safe stdio functions if available.
! 2:
! 3: Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
! 4:
! 5: This program is free software: you can redistribute it and/or modify
! 6: it under the terms of the GNU General Public License as published by
! 7: the Free Software Foundation; either version 3 of the License, or
! 8: (at your option) any later version.
! 9:
! 10: This program is distributed in the hope that it will be useful,
! 11: but WITHOUT ANY WARRANTY; without even the implied warranty of
! 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 13: GNU General Public License for more details.
! 14:
! 15: You should have received a copy of the GNU General Public License
! 16: along with this program. If not, see <http://www.gnu.org/licenses/>. */
! 17:
! 18: /* Written by Jim Meyering. */
! 19:
! 20: #ifndef UNLOCKED_IO_H
! 21: # define UNLOCKED_IO_H 1
! 22:
! 23: /* These are wrappers for functions/macros from the GNU C library, and
! 24: from other C libraries supporting POSIX's optional thread-safe functions.
! 25:
! 26: The standard I/O functions are thread-safe. These *_unlocked ones are
! 27: more efficient but not thread-safe. That they're not thread-safe is
! 28: fine since all of the applications in this package are single threaded.
! 29:
! 30: Also, some code that is shared with the GNU C library may invoke
! 31: the *_unlocked functions directly. On hosts that lack those
! 32: functions, invoke the non-thread-safe versions instead. */
! 33:
! 34: # include <stdio.h>
! 35:
! 36: # if HAVE_DECL_CLEARERR_UNLOCKED
! 37: # undef clearerr
! 38: # define clearerr(x) clearerr_unlocked (x)
! 39: # else
! 40: # define clearerr_unlocked(x) clearerr (x)
! 41: # endif
! 42:
! 43: # if HAVE_DECL_FEOF_UNLOCKED
! 44: # undef feof
! 45: # define feof(x) feof_unlocked (x)
! 46: # else
! 47: # define feof_unlocked(x) feof (x)
! 48: # endif
! 49:
! 50: # if HAVE_DECL_FERROR_UNLOCKED
! 51: # undef ferror
! 52: # define ferror(x) ferror_unlocked (x)
! 53: # else
! 54: # define ferror_unlocked(x) ferror (x)
! 55: # endif
! 56:
! 57: # if HAVE_DECL_FFLUSH_UNLOCKED
! 58: # undef fflush
! 59: # define fflush(x) fflush_unlocked (x)
! 60: # else
! 61: # define fflush_unlocked(x) fflush (x)
! 62: # endif
! 63:
! 64: # if HAVE_DECL_FGETS_UNLOCKED
! 65: # undef fgets
! 66: # define fgets(x,y,z) fgets_unlocked (x,y,z)
! 67: # else
! 68: # define fgets_unlocked(x,y,z) fgets (x,y,z)
! 69: # endif
! 70:
! 71: # if HAVE_DECL_FPUTC_UNLOCKED
! 72: # undef fputc
! 73: # define fputc(x,y) fputc_unlocked (x,y)
! 74: # else
! 75: # define fputc_unlocked(x,y) fputc (x,y)
! 76: # endif
! 77:
! 78: # if HAVE_DECL_FPUTS_UNLOCKED
! 79: # undef fputs
! 80: # define fputs(x,y) fputs_unlocked (x,y)
! 81: # else
! 82: # define fputs_unlocked(x,y) fputs (x,y)
! 83: # endif
! 84:
! 85: # if HAVE_DECL_FREAD_UNLOCKED
! 86: # undef fread
! 87: # define fread(w,x,y,z) fread_unlocked (w,x,y,z)
! 88: # else
! 89: # define fread_unlocked(w,x,y,z) fread (w,x,y,z)
! 90: # endif
! 91:
! 92: # if HAVE_DECL_FWRITE_UNLOCKED
! 93: # undef fwrite
! 94: # define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
! 95: # else
! 96: # define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
! 97: # endif
! 98:
! 99: # if HAVE_DECL_GETC_UNLOCKED
! 100: # undef getc
! 101: # define getc(x) getc_unlocked (x)
! 102: # else
! 103: # define getc_unlocked(x) getc (x)
! 104: # endif
! 105:
! 106: # if HAVE_DECL_GETCHAR_UNLOCKED
! 107: # undef getchar
! 108: # define getchar() getchar_unlocked ()
! 109: # else
! 110: # define getchar_unlocked() getchar ()
! 111: # endif
! 112:
! 113: # if HAVE_DECL_PUTC_UNLOCKED
! 114: # undef putc
! 115: # define putc(x,y) putc_unlocked (x,y)
! 116: # else
! 117: # define putc_unlocked(x,y) putc (x,y)
! 118: # endif
! 119:
! 120: # if HAVE_DECL_PUTCHAR_UNLOCKED
! 121: # undef putchar
! 122: # define putchar(x) putchar_unlocked (x)
! 123: # else
! 124: # define putchar_unlocked(x) putchar (x)
! 125: # endif
! 126:
! 127: # undef flockfile
! 128: # define flockfile(x) ((void) 0)
! 129:
! 130: # undef ftrylockfile
! 131: # define ftrylockfile(x) 0
! 132:
! 133: # undef funlockfile
! 134: # define funlockfile(x) ((void) 0)
! 135:
! 136: #endif /* UNLOCKED_IO_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>