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