hamsterdb API Documentation
types.h
Go to the documentation of this file.00001
00018 #ifndef HAM_TYPES_H__
00019 #define HAM_TYPES_H__
00020
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024
00025
00026
00027
00028 #ifdef UNDER_CE
00029 # undef WIN32
00030 # define WIN32 1
00031 # define HAM_OS_WINCE 1
00032 #endif
00033
00034 #ifdef WIN32
00035 # undef HAM_OS_WIN32
00036 # define HAM_OS_WIN32 1
00037 # ifdef WIN64
00038 # undef HAM_64BIT
00039 # define HAM_64BIT 1
00040 # elif WIN32
00041 # undef HAM_32BIT
00042 # define HAM_32BIT 1
00043 # else
00044 # error "Neither WIN32 nor WIN64 defined!"
00045 # endif
00046 #else
00047 # undef HAM_OS_POSIX
00048 # define HAM_OS_POSIX 1
00049 # if defined(__LP64__) || defined(__LP64) || __WORDSIZE==64
00050 # undef HAM_64BIT
00051 # define HAM_64BIT 1
00052 # else
00053 # undef HAM_32BIT
00054 # define HAM_32BIT 1
00055 # endif
00056 #endif
00057
00058 #if defined(HAM_OS_POSIX) && defined(HAM_OS_WIN32)
00059 # error "Unknown arch - neither HAM_OS_POSIX nor HAM_OS_WIN32 defined"
00060 #endif
00061
00062
00063
00064
00065 #ifdef HAM_OS_WIN32
00066 # define WIN32_MEAN_AND_LEAN
00067 # include <windows.h>
00068 #endif
00069
00070
00071
00072
00073 #ifndef HAM_EXPORT
00074 # ifdef _MSC_VER
00075 # define HAM_EXPORT __declspec(dllexport)
00076 # else
00077 # define HAM_EXPORT extern
00078 # endif
00079 #endif
00080
00081
00082
00083
00084 #ifndef HAM_CALLCONV
00085 # define HAM_CALLCONV
00086 #endif
00087
00091 #ifdef HAM_32BIT
00092 # ifdef _MSC_VER
00093 typedef signed __int64 ham_s64_t;
00094 typedef unsigned __int64 ham_u64_t;
00095 # else
00096 typedef signed long long ham_s64_t;
00097 typedef unsigned long long ham_u64_t;
00098 # endif
00099 typedef signed int ham_s32_t;
00100 typedef unsigned int ham_u32_t;
00101 typedef signed short ham_s16_t;
00102 typedef unsigned short ham_u16_t;
00103 typedef signed char ham_s8_t;
00104 typedef unsigned char ham_u8_t;
00105 #endif
00106
00111 #ifdef HAM_64BIT
00112 # ifdef _MSC_VER
00113 typedef signed __int64 ham_s64_t;
00114 typedef unsigned __int64 ham_u64_t;
00115 # else
00116 typedef signed long ham_s64_t;
00117 typedef unsigned long ham_u64_t;
00118 # endif
00119 typedef signed int ham_s32_t;
00120 typedef unsigned int ham_u32_t;
00121 typedef signed short ham_s16_t;
00122 typedef unsigned short ham_u16_t;
00123 typedef signed char ham_s8_t;
00124 typedef unsigned char ham_u8_t;
00125 #endif
00126
00127
00128
00129
00130 #undef HAM_INVALID_FD
00131 #undef HAM_FALSE
00132 #undef HAM_TRUE
00133
00134
00135
00136
00137 #ifdef HAM_OS_POSIX
00138 typedef int ham_fd_t;
00139 # define HAM_INVALID_FD (-1)
00140 #endif
00141
00142
00143
00144
00145 #ifdef HAM_OS_WIN32
00146 # ifdef CYGWIN
00147 typedef int ham_fd_t;
00148 # else
00149 typedef HANDLE ham_fd_t;
00150 # endif
00151 # define HAM_INVALID_FD (0)
00152 #endif
00153
00157 typedef int ham_bool_t;
00158 #define HAM_FALSE 0
00159 #define HAM_TRUE (!HAM_FALSE)
00160
00164 typedef int ham_status_t;
00165
00172 typedef ham_u64_t ham_offset_t;
00173
00180 typedef ham_u32_t ham_size_t;
00181
00182
00183 #ifdef __cplusplus
00184 }
00185 #endif
00186
00187 #endif