00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _TSK_OS_H
00011 #define _TSK_OS_H
00012
00013
00014
00015
00016
00017 #if defined(SUNOS5)
00018 #define SUPPORTED
00019 #define USE_LIBAFF
00020 #define USE_LIBEWF
00021 #define HAVE_UNISTD
00022
00023 #include <sys/sysmacros.h>
00024
00025
00026 #include <inttypes.h>
00027 #include <sys/inttypes.h>
00028 #endif
00029
00030
00031
00032
00033
00034 #if defined(FREEBSD2) || defined(FREEBSD3) || defined(FREEBSD4) || defined(FREEBSD5)
00035 #define SUPPORTED
00036 #define USE_LIBAFF
00037 #define USE_LIBEWF
00038 #define HAVE_UNISTD
00039
00040
00041 #if defined(FREEBSD4) || defined(FREEBSD5)
00042 #include <inttypes.h>
00043 #endif
00044
00045 #endif
00046
00047
00048
00049
00050 #if defined(BSDI2) || defined(BSDI3) || defined(BSDI4)
00051 #define SUPPORTED
00052 #define USE_LIBAFF
00053 #define USE_LIBEWF
00054 #define HAVE_UNISTD
00055
00056 #include <inttypes.h>
00057 #endif
00058
00059
00060
00061
00062
00063 #if defined(NETBSD16)
00064 #define SUPPORTED
00065 #define USE_LIBAFF
00066 #define USE_LIBEWF
00067 #define HAVE_UNISTD
00068
00069 #include <inttypes.h>
00070 #endif
00071
00072
00073
00074
00075
00076 #if defined(OPENBSD2) || defined (OPENBSD3)
00077 #define SUPPORTED
00078 #define USE_LIBAFF
00079 #define USE_LIBEWF
00080 #define HAVE_UNISTD
00081
00082 #include <inttypes.h>
00083 #endif
00084
00085
00086
00087 #if defined(DARWIN)
00088 #define SUPPORTED
00089 #define USE_LIBAFF
00090 #define USE_LIBEWF
00091 #define HAVE_UNISTD
00092
00093 #include <inttypes.h>
00094 #endif
00095
00096
00097
00098
00099
00100 #if defined(LINUX2)
00101 #define SUPPORTED
00102 #define USE_LIBAFF
00103 #define USE_LIBEWF
00104 #define HAVE_UNISTD
00105
00106 #include <inttypes.h>
00107 #endif
00108
00109
00110
00111 #if defined(CYGWIN)
00112 #define SUPPORTED
00113 #define USE_LIBAFF
00114 #define USE_LIBEWF
00115 #define HAVE_UNISTD
00116
00117 #include <inttypes.h>
00118
00119 #define roundup(x, y) \
00120 ( ( ((x)+((y) - 1)) / (y)) * (y) )
00121
00122 #endif
00123
00124
00125 #if defined(__INTERNIX)
00126 #define SUPPORTED
00127 #include <inttypes.h>
00128 #define HAVE_UNISTD
00129
00130 #define roundup(x, y) \
00131 ( ( ((x)+((y) - 1)) / (y)) * (y) )
00132
00133 #endif
00134
00135 #if defined(_WIN32) || defined (__WIN32__)
00136 #define SUPPORTED
00137 #define TSK_WIN32
00138 #ifndef UNICODE
00139 #define UNICODE
00140 #endif
00141 #ifndef _UNICODE
00142 #define _UNICODE
00143 #endif
00144 #define WIN32_LEAN_AND_MEAN
00145
00146 #include <windows.h>
00147 #include <tchar.h>
00148 #include <io.h>
00149
00150 #define _CRT_SECURE_NO_DEPRECATE 1
00151
00152 #include "intrin.h"
00153
00154 typedef unsigned __int8 uint8_t;
00155 typedef __int8 int8_t;
00156 typedef unsigned __int16 uint16_t;
00157 typedef __int16 int16_t;
00158 typedef unsigned __int32 uint32_t;
00159 typedef __int32 int32_t;
00160 typedef unsigned __int64 uint64_t;
00161 typedef __int64 int64_t;
00162 typedef int mode_t;
00163 typedef uint16_t gid_t;
00164 typedef uint16_t uid_t;
00165
00166 #define strtoull strtoul
00167 #define snprintf _snprintf
00168 #define strcasecmp(string1, string2) _strnicmp(string1, string2, strlen(string1))
00169
00170 #define roundup(x, y) \
00171 ( ( ((x)+((y) - 1)) / (y)) * (y) )
00172
00173 #endif
00174
00175
00176
00177
00178
00179
00180
00181
00182 #ifdef TSK_WIN32
00183
00184
00185 typedef TCHAR TSK_TCHAR;
00186 #define _TSK_T _T
00187
00188 #define TSTAT _tstat
00189 #define STAT_STR _stat64i32
00190 #define TSTRTOK _tcstok
00191 #define TSTRLEN _tcslen
00192 #define TSTRCMP _tcscmp
00193 #define TSTRNCPY _tcsncpy
00194 #define TSTRNCAT _tcsncat
00195 #define TSTRCHR _tcschr
00196 #define TSTRTOUL _tcstoul
00197 #define TSTRTOULL _tcstoui64
00198 #define TATOI _tstoi
00199 #define TFPRINTF fwprintf
00200 #define TSNPRINTF _snwprintf
00201 #define PUTENV _wputenv
00202 #define TZSET _tzset
00203
00204 #define PRIcTSK _TSK_T("S")
00205 #define PRIwTSK _TSK_T"s")
00206
00207 #define unlink _unlink
00208 #define MAIN _tmain
00209
00210 #else
00211
00212
00213 typedef char TSK_TCHAR;
00214 #define _TSK_T(x) x
00215
00216 #define TSTAT stat
00217 #define STAT_STR stat
00218 #define TSTRTOK strtok
00219 #define TSTRLEN strlen
00220 #define TSTRCMP strcmp
00221 #define TSTRNCPY strncpy
00222 #define TSTRNCAT strncat
00223 #define TSTRCHR strchr
00224 #define TSTRTOUL strtoul
00225 #define TSTRTOULL strtoull
00226 #define TATOI atoi
00227 #define TFPRINTF fprintf
00228 #define TSNPRINTF snprintf
00229
00230 #define PUTENV putenv
00231 #define TZSET tzset
00232
00233 #define PRIcTSK _TSK_T("s")
00234 #define PRIwTSK _TSK_T("S")
00235
00236 #define MAIN main
00237
00238 #endif
00239
00240
00241
00242
00243 #ifndef SUPPORTED
00244 #error "This operating system is not supported"
00245 #endif
00246
00247 #endif