engine-romp-bsd.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* ==== machdep.h ============================================================
  2.  *  Copyright (c) 1993 John F. Carr, jfc@athena.mit.edu
  3.  *
  4.  *  Description : Machine dependent header for IBM/RT
  5.  *
  6.  *  1.00 93/09/xx jfc
  7.  *      -Coding this file.
  8.  */
  9. #ifndef lint
  10. static const char rcsid[] = "$Id$";
  11. #endif
  12. #include <setjmp.h>
  13. #include <sys/time.h>
  14. #include <sys/types.h>
  15. /*
  16.  * Stuff for compiling
  17.  */
  18. #if defined(__GNUC__)
  19. #if defined(__cplusplus)
  20. #define __BEGIN_DECLS   extern "C" {
  21. #define __END_DECLS     };
  22. #else
  23. #define __BEGIN_DECLS
  24. #define __END_DECLS
  25. #if !defined(__STDC__)
  26. #define const           __const
  27. #define inline          __inline
  28. #define signed          __signed
  29. #define volatile        __volatile
  30. #endif
  31. #endif
  32. #else /* !__GNUC__ */
  33. #define __BEGIN_DECLS
  34. #define __END_DECLS
  35. #define const
  36. #define inline
  37. #define signed
  38. #define volatile
  39. #endif
  40. #define SEMAPHORE_CLEAR 0x0000
  41. #define SEMAPHORE_SET   0xff00
  42. #define SEMAPHORE_TEST_AND_SET(lock) _tsh(lock)
  43. #define SEMAPHORE_RESET(lock) *(lock) = SEMAPHORE_CLEAR
  44. extern unsigned short _tsh(volatile unsigned short *);
  45. typedef unsigned short semaphore;
  46. /*
  47.  * sigset_t macros
  48.  */
  49. #define SIG_ANY(sig) (sig)
  50. #define SIGMAX  31
  51. struct machdep_pthread {
  52.     void         *(*start_routine)(void *);
  53.     void         *start_argument;
  54.     void         *machdep_stack;
  55.     struct itimerval machdep_timer;
  56.     jmp_buf      machdep_state;
  57. };
  58. /*
  59.  * Static machdep_pthread initialization values.
  60.  * For initial thread only.
  61.  */
  62. #define MACHDEP_PTHREAD_INIT    
  63. { NULL, NULL, NULL, { { 0, 0 }, { 0, 100000 } }, 0 }
  64. /*
  65.  * Min pthread stacksize
  66.  */
  67. #define PTHREAD_STACK_MIN 1024
  68. /*
  69.  * Some fd defines that are necessary to distinguish between posix
  70.  * behavior and bsd4.3 behavior.
  71.  */
  72. #define __FD_NONBLOCK  O_NONBLOCK 
  73. #if defined(PTHREAD_KERNEL)
  74. int machdep_save_state      __P_((void));
  75. /* save(jmp_buf, stack pointer, restart proc) */
  76. extern int _pthread_save(jmp_buf, void *, void (*)());
  77. extern void _pthread_restore(jmp_buf);
  78. typedef int ssize_t;
  79. typedef unsigned int sigset_t;
  80. #define sigemptyset(sp) *(sp) = 0
  81. #define sigprocmask(op, nssp, ossp) if (ossp) *(int *)ossp = sigsetmask(*nssp); else sigsetmask(*nssp)
  82. #define sigdelset(sp, i) *(sp) &= ~(1 << (i))
  83. #define sigaddset(sp, i) *(sp) |= (1 << (i))
  84. #define sigismember(sp, i) (*(sp) & (1 << (i)))
  85. #endif