xref: /aoo4110/main/unixODBC/inc/iodbcunix.h (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /*
2*b1cdbd2cSJim Jagielski  *  iodbcunix.h
3*b1cdbd2cSJim Jagielski  *
4*b1cdbd2cSJim Jagielski  *  $Id: iodbcunix.h,v 1.8 2009/08/30 10:48:32 source Exp $
5*b1cdbd2cSJim Jagielski  *
6*b1cdbd2cSJim Jagielski  *  ODBC defines for Unix
7*b1cdbd2cSJim Jagielski  *
8*b1cdbd2cSJim Jagielski  *  The iODBC driver manager.
9*b1cdbd2cSJim Jagielski  *
10*b1cdbd2cSJim Jagielski  *  Copyright (C) 1995 by Ke Jin <kejin@empress.com>
11*b1cdbd2cSJim Jagielski  *  Copyright (C) 1996-2009 by OpenLink Software <iodbc@openlinksw.com>
12*b1cdbd2cSJim Jagielski  *  All Rights Reserved.
13*b1cdbd2cSJim Jagielski  *
14*b1cdbd2cSJim Jagielski  *  This software is released under the terms of either of the following
15*b1cdbd2cSJim Jagielski  *  licenses:
16*b1cdbd2cSJim Jagielski  *
17*b1cdbd2cSJim Jagielski  *      - GNU Library General Public License (see LICENSE.LGPL)
18*b1cdbd2cSJim Jagielski  *      - The BSD License (see LICENSE.BSD).
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *  Note that the only valid version of the LGPL license as far as this
21*b1cdbd2cSJim Jagielski  *  project is concerned is the original GNU Library General Public License
22*b1cdbd2cSJim Jagielski  *  Version 2, dated June 1991.
23*b1cdbd2cSJim Jagielski  *
24*b1cdbd2cSJim Jagielski  *  While not mandated by the BSD license, any patches you make to the
25*b1cdbd2cSJim Jagielski  *  iODBC source code may be contributed back into the iODBC project
26*b1cdbd2cSJim Jagielski  *  at your discretion. Contributions will benefit the Open Source and
27*b1cdbd2cSJim Jagielski  *  Data Access community as a whole. Submissions may be made at:
28*b1cdbd2cSJim Jagielski  *
29*b1cdbd2cSJim Jagielski  *      http://www.iodbc.org
30*b1cdbd2cSJim Jagielski  *
31*b1cdbd2cSJim Jagielski  *
32*b1cdbd2cSJim Jagielski  *  GNU Library Generic Public License Version 2
33*b1cdbd2cSJim Jagielski  *  ============================================
34*b1cdbd2cSJim Jagielski  *  This library is free software; you can redistribute it and/or
35*b1cdbd2cSJim Jagielski  *  modify it under the terms of the GNU Library General Public
36*b1cdbd2cSJim Jagielski  *  License as published by the Free Software Foundation; only
37*b1cdbd2cSJim Jagielski  *  Version 2 of the License dated June 1991.
38*b1cdbd2cSJim Jagielski  *
39*b1cdbd2cSJim Jagielski  *  This library is distributed in the hope that it will be useful,
40*b1cdbd2cSJim Jagielski  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
41*b1cdbd2cSJim Jagielski  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
42*b1cdbd2cSJim Jagielski  *  Library General Public License for more details.
43*b1cdbd2cSJim Jagielski  *
44*b1cdbd2cSJim Jagielski  *  You should have received a copy of the GNU Library General Public
45*b1cdbd2cSJim Jagielski  *  License along with this library; if not, write to the Free
46*b1cdbd2cSJim Jagielski  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
47*b1cdbd2cSJim Jagielski  *
48*b1cdbd2cSJim Jagielski  *
49*b1cdbd2cSJim Jagielski  *  The BSD License
50*b1cdbd2cSJim Jagielski  *  ===============
51*b1cdbd2cSJim Jagielski  *  Redistribution and use in source and binary forms, with or without
52*b1cdbd2cSJim Jagielski  *  modification, are permitted provided that the following conditions
53*b1cdbd2cSJim Jagielski  *  are met:
54*b1cdbd2cSJim Jagielski  *
55*b1cdbd2cSJim Jagielski  *  1. Redistributions of source code must retain the above copyright
56*b1cdbd2cSJim Jagielski  *     notice, this list of conditions and the following disclaimer.
57*b1cdbd2cSJim Jagielski  *  2. Redistributions in binary form must reproduce the above copyright
58*b1cdbd2cSJim Jagielski  *     notice, this list of conditions and the following disclaimer in
59*b1cdbd2cSJim Jagielski  *     the documentation and/or other materials provided with the
60*b1cdbd2cSJim Jagielski  *     distribution.
61*b1cdbd2cSJim Jagielski  *  3. Neither the name of OpenLink Software Inc. nor the names of its
62*b1cdbd2cSJim Jagielski  *     contributors may be used to endorse or promote products derived
63*b1cdbd2cSJim Jagielski  *     from this software without specific prior written permission.
64*b1cdbd2cSJim Jagielski  *
65*b1cdbd2cSJim Jagielski  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
66*b1cdbd2cSJim Jagielski  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
67*b1cdbd2cSJim Jagielski  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
68*b1cdbd2cSJim Jagielski  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
69*b1cdbd2cSJim Jagielski  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
70*b1cdbd2cSJim Jagielski  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
71*b1cdbd2cSJim Jagielski  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
72*b1cdbd2cSJim Jagielski  *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
73*b1cdbd2cSJim Jagielski  *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
74*b1cdbd2cSJim Jagielski  *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
75*b1cdbd2cSJim Jagielski  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
76*b1cdbd2cSJim Jagielski  */
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski #ifndef _IODBCUNIX_H
79*b1cdbd2cSJim Jagielski #define _IODBCUNIX_H
80*b1cdbd2cSJim Jagielski 
81*b1cdbd2cSJim Jagielski /*
82*b1cdbd2cSJim Jagielski  *  Standard header files
83*b1cdbd2cSJim Jagielski  */
84*b1cdbd2cSJim Jagielski #include <stdlib.h>
85*b1cdbd2cSJim Jagielski #include <unistd.h>
86*b1cdbd2cSJim Jagielski 
87*b1cdbd2cSJim Jagielski #if defined(__WCHAR_TYPE__) && !defined(MACOSX102)
88*b1cdbd2cSJim Jagielski #include <wchar.h>
89*b1cdbd2cSJim Jagielski #endif
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski /*
93*b1cdbd2cSJim Jagielski  *  Windows-style declarations
94*b1cdbd2cSJim Jagielski  */
95*b1cdbd2cSJim Jagielski #define NEAR
96*b1cdbd2cSJim Jagielski #define FAR
97*b1cdbd2cSJim Jagielski #define EXPORT
98*b1cdbd2cSJim Jagielski #define PASCAL
99*b1cdbd2cSJim Jagielski #define VOID			void
100*b1cdbd2cSJim Jagielski #define CALLBACK
101*b1cdbd2cSJim Jagielski #if !( defined(OS2) || defined(WNT) )
102*b1cdbd2cSJim Jagielski #define _cdecl
103*b1cdbd2cSJim Jagielski #define __stdcall
104*b1cdbd2cSJim Jagielski #endif
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski 
107*b1cdbd2cSJim Jagielski /*
108*b1cdbd2cSJim Jagielski  *  Boolean support
109*b1cdbd2cSJim Jagielski  */
110*b1cdbd2cSJim Jagielski #ifndef TRUE
111*b1cdbd2cSJim Jagielski #define TRUE			1
112*b1cdbd2cSJim Jagielski #endif
113*b1cdbd2cSJim Jagielski #ifndef FALSE
114*b1cdbd2cSJim Jagielski #define FALSE			0
115*b1cdbd2cSJim Jagielski #endif
116*b1cdbd2cSJim Jagielski 
117*b1cdbd2cSJim Jagielski 
118*b1cdbd2cSJim Jagielski #ifdef __cplusplus
119*b1cdbd2cSJim Jagielski extern "C" {
120*b1cdbd2cSJim Jagielski #endif
121*b1cdbd2cSJim Jagielski 
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski /*
124*b1cdbd2cSJim Jagielski  *  Windows-style typedefs
125*b1cdbd2cSJim Jagielski  */
126*b1cdbd2cSJim Jagielski #if defined (OBSOLETE_WINDOWS_TYPES)
127*b1cdbd2cSJim Jagielski typedef unsigned char		BYTE;
128*b1cdbd2cSJim Jagielski #endif
129*b1cdbd2cSJim Jagielski typedef unsigned short		WORD;
130*b1cdbd2cSJim Jagielski typedef unsigned int		DWORD;
131*b1cdbd2cSJim Jagielski typedef char *			LPSTR;
132*b1cdbd2cSJim Jagielski typedef const char *		LPCSTR;
133*b1cdbd2cSJim Jagielski typedef wchar_t *		LPWSTR;
134*b1cdbd2cSJim Jagielski typedef const wchar_t *		LPCWSTR;
135*b1cdbd2cSJim Jagielski typedef DWORD *			LPDWORD;
136*b1cdbd2cSJim Jagielski 
137*b1cdbd2cSJim Jagielski #if !defined(BOOL) && !defined(_OBJC_OBJC_H_)
138*b1cdbd2cSJim Jagielski typedef int			BOOL;
139*b1cdbd2cSJim Jagielski #endif
140*b1cdbd2cSJim Jagielski 
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski /*
143*b1cdbd2cSJim Jagielski  *  Determine sizeof(long) in case it is not determined by configure/config.h
144*b1cdbd2cSJim Jagielski  */
145*b1cdbd2cSJim Jagielski #ifndef SIZEOF_LONG
146*b1cdbd2cSJim Jagielski #if defined (_LP64)	|| \
147*b1cdbd2cSJim Jagielski     defined (__LP64__)	|| \
148*b1cdbd2cSJim Jagielski     defined (__64BIT__)	|| \
149*b1cdbd2cSJim Jagielski     defined (__alpha)	|| \
150*b1cdbd2cSJim Jagielski     defined (__sparcv9)	|| \
151*b1cdbd2cSJim Jagielski     defined (__arch64__)
152*b1cdbd2cSJim Jagielski #define SIZEOF_LONG	8		/* 64 bit operating systems */
153*b1cdbd2cSJim Jagielski #else
154*b1cdbd2cSJim Jagielski #define SIZEOF_LONG	4		/* 32 bit operating systems */
155*b1cdbd2cSJim Jagielski #endif
156*b1cdbd2cSJim Jagielski #endif /* SIZEOF_LONG */
157*b1cdbd2cSJim Jagielski 
158*b1cdbd2cSJim Jagielski #ifdef __cplusplus
159*b1cdbd2cSJim Jagielski }
160*b1cdbd2cSJim Jagielski #endif
161*b1cdbd2cSJim Jagielski 
162*b1cdbd2cSJim Jagielski #endif /* _IODBCUNIX_H */
163