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