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