~ubuntu-dev/wxwidgets2.6/upstream-debian

« back to all changes in this revision

Viewing changes to src/tiff/tiffcomp.h

  • Committer: Daniel T Chen
  • Date: 2006-06-26 10:15:11 UTC
  • Revision ID: crimsun@ubuntu.com-20060626101511-a4436cec4c6d9b35
ImportĀ DebianĀ 2.6.3.2.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Header: /pack/cvsroots/wxwindows/wxWindows/src/tiff/tiffcomp.h,v 1.15 2005/07/21 17:30:41 ABX Exp $ */
 
2
 
 
3
/*
 
4
 * Copyright (c) 1990-1997 Sam Leffler
 
5
 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
 
6
 *
 
7
 * Permission to use, copy, modify, distribute, and sell this software and
 
8
 * its documentation for any purpose is hereby granted without fee, provided
 
9
 * that (i) the above copyright notices and this permission notice appear in
 
10
 * all copies of the software and related documentation, and (ii) the names of
 
11
 * Sam Leffler and Silicon Graphics may not be used in any advertising or
 
12
 * publicity relating to the software without the specific, prior written
 
13
 * permission of Sam Leffler and Silicon Graphics.
 
14
 *
 
15
 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
 
16
 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
 
17
 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 
18
 *
 
19
 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
 
20
 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
 
21
 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 
22
 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
 
23
 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
 
24
 * OF THIS SOFTWARE.
 
25
 */
 
26
 
 
27
#ifndef _COMPAT_
 
28
#define _COMPAT_
 
29
/*
 
30
 * This file contains a hodgepodge of definitions and
 
31
 * declarations that are needed to provide compatibility
 
32
 * between the native system and the base implementation
 
33
 * that the library assumes.
 
34
 *
 
35
 * NB: This file is a mess.
 
36
 */
 
37
 
 
38
/*
 
39
 * Setup basic type definitions and function declaratations.
 
40
 */
 
41
 
 
42
/*
 
43
 * Simplify Acorn RISC OS identifier (to avoid confusion with Acorn RISC iX
 
44
 * and with defunct Unix Risc OS)
 
45
 * No need to specify __arm - hey, Acorn might port the OS, no problem here!
 
46
 */
 
47
#ifdef __acornriscos
 
48
#undef __acornriscos
 
49
#endif
 
50
#if defined(__acorn) && defined(__riscos)
 
51
#define __acornriscos
 
52
#endif
 
53
 
 
54
#if (defined(__MWERKS__) && !defined(__MACH__)) || defined(THINK_C)
 
55
#include <unix.h>
 
56
#include <math.h>
 
57
#endif
 
58
 
 
59
#include <stdio.h>
 
60
 
 
61
#if defined(__PPCC__) || ( defined(__SC__) && !defined(__DMC__) ) || defined(__MRC__)
 
62
#include <types.h>
 
63
#elif !defined(__MWERKS__) && !defined(THINK_C) && !defined(__acornriscos) && !defined(applec)
 
64
#include <sys/types.h>
 
65
#endif
 
66
 
 
67
#if defined(VMS)
 
68
#include <file.h>
 
69
#include <unixio.h>
 
70
#elif !defined(__acornriscos)
 
71
#include <fcntl.h>
 
72
#endif
 
73
 
 
74
/*
 
75
 * This maze of checks controls defines or not the
 
76
 * target system has BSD-style typdedefs declared in
 
77
 * an include file and/or whether or not to include
 
78
 * <unistd.h> to get the SEEK_* definitions.  Some
 
79
 * additional includes are also done to pull in the
 
80
 * appropriate definitions we're looking for.
 
81
 */
 
82
#if defined(__MWERKS__) || defined(THINK_C) || defined(__PPCC__) || ( defined(__SC__) && !defined(__DMC__) ) || defined(__MRC__)
 
83
#include <stdlib.h>
 
84
#define BSDTYPES
 
85
#define HAVE_UNISTD_H   0
 
86
#elif (defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) || defined(_WIN32)) && !defined(unix)
 
87
#define BSDTYPES
 
88
#elif defined(OS2_16) || defined(OS2_32)
 
89
#define BSDTYPES
 
90
#elif defined(__MSDOS__)
 
91
#define BSDTYPES
 
92
#elif defined(__acornriscos)
 
93
#include <stdlib.h>
 
94
#define BSDTYPES
 
95
#define HAVE_UNISTD_H   0
 
96
#elif defined(VMS)
 
97
#define HAVE_UNISTD_H   0
 
98
#else
 
99
#define HAVE_UNISTD_H   1
 
100
#endif
 
101
 
 
102
/*
 
103
 * The library uses the ANSI C/POSIX SEEK_*
 
104
 * definitions that should be defined in unistd.h
 
105
 * (except on system where they are in stdio.h and
 
106
 * there is no unistd.h).
 
107
 */
 
108
#if !defined(SEEK_SET) && HAVE_UNISTD_H
 
109
#include <unistd.h>
 
110
#endif
 
111
 
 
112
/*
 
113
 * The library uses memset, memcpy, and memcmp.
 
114
 * ANSI C and System V define these in string.h.
 
115
 */
 
116
#include <string.h>
 
117
 
 
118
/*
 
119
 * The BSD typedefs are used throughout the library.
 
120
 * If your system doesn't have them in <sys/types.h>,
 
121
 * then define BSDTYPES in your Makefile.
 
122
 */
 
123
#if defined(BSDTYPES)
 
124
# ifndef _BSDTYPES_DEFINED
 
125
#  ifndef __u_char_defined
 
126
typedef unsigned char u_char;
 
127
typedef unsigned short u_short;
 
128
typedef unsigned int u_int;
 
129
typedef unsigned long u_long;
 
130
#   define __u_char_defined
 
131
#  endif /* __u_char_defined */
 
132
#  define _BSDTYPES_DEFINED
 
133
# endif /* _BSDTYPES_DEFINED */
 
134
#endif /* BSDTYPES */
 
135
 
 
136
/*
 
137
 * dblparam_t is the type that a double precision
 
138
 * floating point value will have on the parameter
 
139
 * stack (when coerced by the compiler).
 
140
 */
 
141
/* Note: on MacPowerPC "extended" is undefined. So only use it for 68K-Macs */
 
142
#if ( defined(__SC__) && !defined(__DMC__) ) || defined(THINK_C)
 
143
typedef extended dblparam_t;
 
144
#else
 
145
typedef double dblparam_t;
 
146
#endif
 
147
 
 
148
/*
 
149
 * If your compiler supports inline functions, then
 
150
 * set INLINE appropriately to get the known hotspots
 
151
 * in the library expanded inline.
 
152
 */
 
153
#if defined(__GNUC__)
 
154
#if defined(__STRICT_ANSI__)
 
155
#define INLINE  __inline__
 
156
#else
 
157
#define INLINE  inline
 
158
#endif
 
159
#else /* !__GNUC__ */
 
160
#define INLINE
 
161
#endif
 
162
 
 
163
/*
 
164
 * GLOBALDATA is a macro that is used to define global variables
 
165
 * private to the library.  We use this indirection to hide
 
166
 * brain-damage in VAXC (and GCC) under VAX/VMS.  In these
 
167
 * environments the macro places the variable in a non-shareable
 
168
 * program section, which ought to be done by default (sigh!)
 
169
 *
 
170
 * Apparently DEC are aware of the problem as this behaviour is the
 
171
 * default under VMS on AXP.
 
172
 *
 
173
 * The GNU C variant is untested.
 
174
 */
 
175
#if defined(VAX) && defined(VMS)
 
176
#if defined(VAXC)
 
177
#define GLOBALDATA(TYPE,NAME)   extern noshare TYPE NAME
 
178
#endif
 
179
#if defined(__GNUC__)
 
180
#define GLOBALDATA(TYPE,NAME)   extern TYPE NAME \
 
181
        asm("_$$PsectAttributes_NOSHR$$" #NAME)
 
182
#endif
 
183
#else   /* !VAX/VMS */
 
184
#define GLOBALDATA(TYPE,NAME)   extern TYPE NAME
 
185
#endif
 
186
 
 
187
#if defined(__acornriscos)
 
188
/*
 
189
 * osfcn.h is part of C++Lib on Acorn C/C++, and as such can't be used
 
190
 * on C alone. For that reason, the relevant functions are
 
191
 * implemented in tif_acorn.c, and the elements from the header
 
192
 * file are included here.
 
193
 */
 
194
#if defined(__cplusplus)
 
195
#include <osfcn.h>
 
196
#else
 
197
#define O_RDONLY        0
 
198
#define O_WRONLY        1
 
199
#define O_RDWR          2
 
200
#define O_APPEND        8
 
201
#define O_CREAT         0x200
 
202
#define O_TRUNC         0x400
 
203
typedef long off_t;
 
204
extern int open(const char *name, int flags, int mode);
 
205
extern int close(int fd);
 
206
extern int write(int fd, const char *buf, int nbytes);
 
207
extern int read(int fd, char *buf, int nbytes);
 
208
extern off_t lseek(int fd, off_t offset, int whence);
 
209
extern int creat(const char *path, int mode);
 
210
#endif /* __cplusplus */
 
211
#endif /* __acornriscos */
 
212
 
 
213
/* Bit and byte order, the default is MSB to LSB */
 
214
#ifdef VMS
 
215
#undef HOST_FILLORDER
 
216
#undef HOST_BIGENDIAN
 
217
#define HOST_FILLORDER FILLORDER_LSB2MSB
 
218
#define HOST_BIGENDIAN  0
 
219
#endif
 
220
 
 
221
#ifndef LINKAGEMODE
 
222
    #define LINKAGEMODE
 
223
#endif
 
224
 
 
225
#endif /* _COMPAT_ */