s-msdos.h
上传用户:jmzj888
上传日期:2007-01-02
资源大小:220k
文件大小:7k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
  2.    This file is public domain and comes with NO WARRANTY of any kind */
  3. #ifndef MSDOS
  4. #define MSDOS 1
  5. #endif
  6. #ifdef WIN32
  7. #define __WIN32__
  8. #define SYSTEM_TYPE "WIN32"
  9. #else
  10. #define SYSTEM_TYPE "MSDOS"
  11. #endif
  12. /* Set up defines for MSC */
  13. #ifdef _MSC_VER
  14. #if _MSC_VER <= 601
  15. #define __fastcall _fastcall
  16. #endif
  17. #define inline
  18. #endif
  19. #define VOIDTYPE /* Compiler has void */
  20. #define _A(X) X /* Have prototypes */
  21. #define _D(X) X
  22. #define _VARARGS(X) X
  23. #define _STATIC_VARARGS(X) X
  24. #define ASCII_BITS_USED 8 /* Bit char used */
  25. #ifdef M_IC80386
  26. #define NEAR_F __fastcall
  27. #else
  28. #ifdef DBUG_OFF
  29. #define NEAR_F __fastcall NEAR /* static function */
  30. #else
  31. #define NEAR_F _pascal NEAR /* static function */
  32. #endif /* DBUG_OFF */
  33. #endif
  34. #define STDCALL __stdcall
  35. #include <stdlib.h> /* Commonly used functions */
  36. #include <time.h>
  37. #undef min /* Defined in global.h */
  38. #undef max /* -""- */
  39. #include <fcntl.h> /* my_open flags */
  40. #include <string.h> /* Used very often */
  41. #include <io.h>
  42. #ifndef __ZTC__
  43. #include <malloc.h> /* Used very often */
  44. #endif /* __ZTC__ */
  45. #ifndef RC_INVOKED
  46. #include <math.h>
  47. #endif
  48. /* Typdefs for easyier portability */
  49. typedef int File; /* File descriptor */
  50. typedef void sig_handler; /* Function to handle signals */
  51. typedef void (*sig_return)(int);/* Returns type from signal */
  52. #define Socket_defined
  53. typedef int Socket;
  54. typedef int sigset_t;
  55. typedef unsigned long my_off_t; /* for read/write */
  56. #define MY_FILEPOS_ERROR (ulong) ~0L
  57. #ifdef __ZTC__
  58. typedef int pchar; /* Mixed prototypes can't take char */
  59. typedef int pbool; /* Mixed prototypes can't take char */
  60. typedef double pfloat; /* Mixed prototypes can't take float */
  61. typedef int dev_t; /* For compatible stat */
  62. typedef int ino_t;
  63. typedef ulong off_t;
  64. typedef ulong st_size;
  65. #else
  66. typedef char pchar; /* Mixed prototypes can't take char */
  67. typedef char pbool; /* Mixed prototypes can't take char */
  68. typedef float pfloat; /* Mixed prototypes can take float */
  69. #endif
  70. typedef int (*qsort_cmp)(const void *, const void *);
  71. #define qsort_t void
  72. #define QSORT_TYPE_IS_VOID
  73. /* my_lock() flags */
  74. #define O_SHARE 0x1000 /* Open file in sharing mode */
  75. #define F_UNLCK 0 /* Unlock locked region */
  76. #define F_WRLCK 1 /* Lock a region for exclusive use */
  77. #define F_RDLCK 3 /* Lock region from writing */
  78. #define F_EXCLUSIVE 1 /* We have only exclusive locking */
  79. #define F_TO_EOF (INT_MAX32/2) /* size for lock of all file */
  80. /* open flags */
  81. #ifdef __ZTC__
  82. #define FILE_BINARY 128 /* Fopen in binary mode, 128 is free */
  83. #else
  84. #define FILE_BINARY O_BINARY
  85. #endif
  86. /*  Unsigned types supported by the compiler */
  87. #define UNSINT8 /* unsigned int8 (char) */
  88. #define UNSINT16 /* unsigned int16 */
  89. #define UNSINT32 /* unsigned int32 */
  90. /* General constants */
  91. #ifdef WIN32
  92. #define SC_MAXWIDTH 132 /* Max width of screen */
  93. #define FN_LEN 256 /* Max file name len (+ null ) */
  94. #define FN_HEADLEN 253
  95. #define FN_EXTLEN 5 /* Max length of extension (part of FN_LEN) */
  96. #define FN_REFLEN 256 /* Max length of full path-name */
  97. #else
  98. #define SC_MAXWIDTH 81 /* Max width of screen */
  99. #define FN_LEN 13 /* Max file name len (+ null ) */
  100. #define FN_HEADLEN 9
  101. #define FN_EXTLEN 5 /* Max length of extension (part of FN_LEN) */
  102. #define FN_REFLEN 65 /* Max length of full path-name */
  103. #endif
  104. #define FN_LIBCHAR '\'
  105. #define FN_EXTCHAR '.'
  106. #define FN_DEVCHAR ':'
  107. #define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */
  108. #define FN_CURLIB '.' /* ./ is used as abbrev for current dir */
  109. #define FN_PARENTDIR ".." /* Parentdirectory; Must be a string */
  110. #define FN_ROOTDIR "\"
  111. #define MY_BASEDIR "\"
  112. #define DEFAULT_BASEDIR "\" /* Program directorys is in root */
  113. #ifdef _NFILE
  114. #define MY_NFILE _NFILE
  115. #else
  116. #define MY_NFILE 20
  117. #endif
  118. #define FN_NO_CASE_SENCE /* Files are not case-sencety */
  119. #define FN_UPPER_CASE TRUE /* Files are represented in upper case */
  120. /* Must be a power of 2 and a multiple of 512 */
  121. #define IO_SIZE 512
  122. /* How much overhead does malloc have */
  123. #ifdef SAFEMALLOC
  124. #define MALLOC_OVERHEAD (24+20+4)
  125. #else
  126. #define MALLOC_OVERHEAD 24
  127. #endif
  128. #ifdef M_IC80386
  129. #define ONCE_ALLOC_INIT (2048-MALLOC_OVERHEAD)
  130. #define RECORD_CACHE_SIZE ((uint) (128*1024L-MALLOC_OVERHEAD))
  131. #define KEY_CACHE_SIZE ((uint) (256*1024L-MALLOC_OVERHEAD))
  132. #else
  133. #define ONCE_ALLOC_INIT (1024-MALLOC_OVERHEAD)
  134. #define RECORD_CACHE_SIZE ((uint) (64L*1024L-MALLOC_OVERHEAD))
  135. #define KEY_CACHE_SIZE ((uint) 32768-MALLOC_OVERHEAD)
  136. #endif
  137. /* Some things that this system doesn't have */
  138. #define NO_HASH
  139. #define NO_HEAP
  140. #define NO_PISAM
  141. #define NO_MISAM
  142. #define NO_BACKGROUND /* No background jobbs */
  143. #define ONLY_OWN_DATABASES /* We are using only databases by monty */
  144. #define NO_LISP /* We don't have room for lisp */
  145. #define NO_DIR_LIBRARY /* Not standar dir-library */
  146. #define USE_MY_STAT_STRUCT /* For my_lib */
  147. /* Some things that this system does have */
  148. #define HAVE_PERROR
  149. #define HAVE_VFPRINT
  150. #define HAVE_CHSIZE /* System has chsize() function */
  151. #define HAVE_RENAME /* Have rename() as function */
  152. #define HAVE_BINARY_STREAMS /* Have "b" flag in streams */
  153. #define HAVE_LONG_JMP /* Have long jump function */
  154. #define HAVE_LOCKING /* have locking() call */
  155. #define HAVE_ERRNO_AS_DEFINE /* errno is a define */
  156. #define HAVE_STDLIB /* everything is include in this file */
  157. #define HAVE_MEMCPY
  158. #define HAVE_GETCWD
  159. #define HAVE_TELL
  160. #ifdef _MSC_VER
  161. #define HAVE_LDIV /* The optimizer breaks in zortech for ldiv */
  162. #define HAVE_ANSI_INCLUDE
  163. #define HAVE_SYS_UTIME_H
  164. #endif
  165. #ifdef __WIN32__
  166. #define HAVE_STRTOUL
  167. #endif
  168. /* Some defines of functions for portability */
  169. #define atod atof
  170. #if defined(__ZTC__)
  171. #define inline
  172. #define __fastcall _pascal
  173. #define _dos_setdrive dos_setdrive /* Fix name-convetion */
  174. #define _dos_getdrive dos_getdrive
  175. #define tell(fd) lseek(fd, 0l, MY_SEEK_CUR) /* No tell function */
  176. #define strmov(a,b) stpcpy((a),(b))
  177. #define EAGAIN 11
  178. #define ulong_to_double(a) (((long) (a) >= 0L) ? (double) (a) : (double) (a-LONG_MIN) + 2147483648.0)
  179. #define offsetof(t,i) ((size_t)((char *)&((t *)0)->i - (char *)0))
  180. #ifdef M_IC80386
  181. #define SET_STACK_SIZE(X) unsigned stack=X
  182. #define X32VM /* Virtual manager */
  183. #else
  184. #define SET_STACK_SIZE(X)
  185. #define int86_real int86
  186. #endif
  187. #elif defined(_MSC_VER)
  188. #define SET_STACK_SIZE(X) /* Must be given to LINK */
  189. #define ulong_to_double(a) ((double) (ulong) (a))
  190. #define int86_real int86
  191. #define offsetof(s,m) (size_t)( (char *)&(((s *)0)->m) - (char *)0 )
  192. #define atoll(A) _atoi64(A)
  193. #elif defined(__WATCOMC__)
  194. #define __fastcall
  195. #define SET_STACK_SIZE(X) /* Must be given to LINK */
  196. #define EAGAIN 30 /* This should be free.. */
  197. #define int86_real int386
  198. #define ulong_to_double(a) ((double) (ulong) (a))
  199. #define offsetof(s,m) (size_t)( (char *)&(((s *)0)->m) - (char *)0 )
  200. #endif
  201. #define __attribute__(A) /* Not gcc */