This is tiffcompat.h in view mode; [Download] [Up]
/* /mode/users/src/master/tiff/libtiff/tiffcompat.h,v 1.4 1994/06/29 17:20:58 fedor Exp */ /* * Copyright (c) 1990, 1991, 1992 Sam Leffler * Copyright (c) 1991, 1992 Silicon Graphics, Inc. * * Permission to use, copy, modify, distribute, and sell this software and * its documentation for any purpose is hereby granted without fee, provided * that (i) the above copyright notices and this permission notice appear in * all copies of the software and related documentation, and (ii) the names of * Sam Leffler and Silicon Graphics may not be used in any advertising or * publicity relating to the software without the specific, prior written * permission of Sam Leffler and Silicon Graphics. * * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. * * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. */ #ifndef _COMPAT_ #define _COMPAT_ /* * This file contains a hodgepodge of definitions and * declarations that are needed to provide compatibility * between the native system and the base UNIX implementation * that the library assumes (~4BSD). In particular, you * can override the standard i/o interface (read/write/lseek) * by redefining the ReadOK/WriteOK/SeekOK macros to your * liking. * * NB: This file is a mess. */ #if (defined(__STDC__) || defined(__EXTENDED__)) && !defined(USE_PROTOTYPES) #define USE_PROTOTYPES 1 #define USE_CONST 1 #endif #if !USE_CONST && !defined(const) #define const #endif #ifdef THINK_C #include <unix.h> #include <math.h> #endif #if USE_PROTOTYPES #include <stdio.h> #endif #ifndef THINK_C #include <sys/types.h> #endif #ifdef VMS #include <file.h> #include <unixio.h> #else #include <fcntl.h> #endif #if defined(THINK_C) || defined(applec) #include <stdlib.h> #endif /* * Workarounds for BSD lseek definitions. */ #if defined(SYSV) || defined(VMS) #if defined(SYSV) #include <unistd.h> #endif #define L_SET SEEK_SET #define L_INCR SEEK_CUR #define L_XTND SEEK_END #endif #ifndef L_SET #define L_SET 0 #define L_INCR 1 #define L_XTND 2 #endif /* * SVID workarounds for BSD bit * string manipulation routines. */ #if defined(SYSV) || defined(THINK_C) || defined(applec) || defined(VMS) #define bzero(dst,len) memset((char *)dst, 0, len) #define bcopy(src,dst,len) memcpy((char *)dst, (char *)src, len) #define bcmp(src, dst, len) memcmp((char *)dst, (char *)src, len) #endif /* * The BSD typedefs are used throughout the library. * If your system doesn't have them in <sys/types.h>, * then define BSDTYPES in your Makefile. */ #ifdef BSDTYPES typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; #endif /* * Return an open file descriptor or -1. */ #if defined(applec) || defined(THINK_C) #define TIFFOpenFile(name, mode, prot) open(name, mode) #else #if defined(MSDOS) #define TIFFOpenFile(name, mode, prot) open(name, mode|O_BINARY, prot) #else #define TIFFOpenFile(name, mode, prot) open(name, mode, prot) #endif #endif /* * Return the size in bytes of the file * associated with the supplied file descriptor. */ #if USE_PROTOTYPES extern long TIFFGetFileSize(int fd); #else extern long TIFFGetFileSize(); #endif #ifdef MMAP_SUPPORT /* * Mapped file support. * * TIFFMapFileContents must map the entire file into * memory and return the address of the mapped * region and the size of the mapped region. * TIFFUnmapFileContents does the inverse operation. */ #if USE_PROTOTYPES extern int TIFFMapFileContents(int fd, char **paddr, long *psize); extern void TIFFUnmapFileContents(char *addr, long size); #else extern int TIFFMapFileContents(); extern void TIFFUnmapFileContents(); #endif #endif /* * Mac workaround to handle the file * extension semantics of lseek. */ #ifdef applec #define lseek mpw_lseek extern long mpw_lseek(int, long, int); #else extern long lseek(); #endif /* * Use streams to access the tiff data if we can */ #ifdef STREAM_SUPPORT #ifdef HAVE_STREAMS_STREAMS_H #include <streams/streams.h> #undef L_SET #undef L_INCR #undef L_XTND #define L_SET NX_FROMSTART #define L_INCR NX_FROMCURRENT #define L_XTND NX_FROMEND #define TF_FROMSTART NX_FROMSTART #define TF_FROMCURRENT NX_FROMCURRENT #define TF_FROMEND NX_FROMEND #define TFStream NXStream #define ReadOK(fd, buf, size) (NXRead(((NXStream *)fd), buf, size) == size) #define SeekOK(fd, off) (NXSeek(((NXStream *)fd), off, NX_FROMSTART),1) #define WriteOK(fd, buf, size) (NXWrite(((NXStream *)fd), buf, size) == size) #define TFSeek(fd, off, s) (NXSeek(((NXStream *)fd), off, s),1) #define TFTell(fd) NXTell(((NXStream *)fd)) #define TF_READONLY NX_READONLY #define TF_READWRITE NX_READWRITE #define TF_WRITEONLY NX_WRITEONLY #define TFMapFile NXMapFile #define TFClose NXClose #define TFOpenMemory(a,s,m) NXOpenMemory(a,s,m) #define TFGetMemoryBuffer(s,b,p,m) NXGetMemoryBuffer(s,b,p,m) #define TFCloseMemory(s,f) NXCloseMemory(s,f) #define TFSaveToFile(s,n) NXSaveToFile(s,n) #define TF_FREEBUFFER NX_FREEBUFFER #else #include <stdio.h> #define TF_FROMSTART SEEK_SET #define TF_FROMCURRENT SEEK_CUR #define TF_FROMEND SEEK_END #define TFStream FILE #define ReadOK(fd, buf, size) (fread(buf, 1, size, (FILE *)fd) == size) #define SeekOK(fd, off) (fseek((FILE *)fd, off, SEEK_SET) == 0) #define WriteOK(fd, buf, size) (fwrite(buf, 1, size, (FILE *)fd) == size) #define TFSeek(fd, off, s) fseek((FILE *)fd, off, s) #define TFTell(fd) ftell((FILE *)fd) #define TF_READONLY O_RDONLY #define TF_WRITEONLY O_WRONLY #define TF_READWRITE O_RDWR #define TFMapFile fopen #define TFClose fclose #define TFOpenMemory(a,s,m) (0) #define TFGetMemoryBuffer(s,b,p,m) (0) #define TFCloseMemory(s,f) fclose(s) #define TFSaveToFile(s,n) (0) #define TF_FREEBUFFER (0) #endif /* not HAVE_STREAMS_STREAMS_H */ #endif /* STREAM_SUPPORT */ /* * Default Read/Seek/Write definitions. */ #ifndef ReadOK #define ReadOK(fd, buf, size) (read(fd, (char *)buf, size) == size) #endif #ifndef SeekOK #define SeekOK(fd, off) (lseek(fd, (long)off, L_SET) == (long)off) #endif #ifndef TFSeek #define TFSeek(fd, off, s) lseek(fd, (long)off, s) #endif #ifndef WriteOK #define WriteOK(fd, buf, size) (write(fd, (char *)buf, size) == size) #endif #if defined(__MACH__) || defined(THINK_C) extern void *malloc(size_t size); extern void *realloc(void *ptr, size_t size); #else /* !__MACH__ && !THINK_C */ #if defined(MSDOS) #include <malloc.h> #else /* !MSDOS */ #if defined(_IBMR2) #include <stdlib.h> #else /* !_IBMR2 */ extern char *malloc(); extern char *realloc(); #endif /* _IBMR2 */ #endif /* !MSDOS */ #endif /* !__MACH__ */ /* * dblparam_t is the type that a double precision * floating point value will have on the parameter * stack (when coerced by the compiler). */ #ifdef applec typedef extended dblparam_t; #else typedef double dblparam_t; #endif /* * Varargs parameter list handling...YECH!!!! */ #if defined(__STDC__) && !defined(USE_VARARGS) #define USE_VARARGS 0 #endif #if defined(USE_VARARGS) #if USE_VARARGS #include <varargs.h> #define VA_START(ap, parmN) va_start(ap) #else #include <stdarg.h> #define VA_START(ap, parmN) va_start(ap, parmN) #endif #endif /* defined(USE_VARARGS) */ #endif /* _COMPAT_ */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.