home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gnat-2.06-src.tgz / tar.out / fsf / gnat / ada / threads / src / pthread_setjmp.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  2KB  |  70 lines

  1. /* Copyright (C) 1992, the Florida State University
  2.    Distributed by the Florida State University under the terms of the
  3.    GNU Library General Public License.
  4.  
  5. This file is part of Pthreads.
  6.  
  7. Pthreads is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU Library General Public
  9. License as published by the Free Software Foundation (version 2).
  10.  
  11. Pthreads is distributed "AS IS" in the hope that it will be
  12. useful, but WITHOUT ANY WARRANTY; without even the implied
  13. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. See the GNU Library General Public License for more details.
  15.  
  16. You should have received a copy of the GNU Library General Public
  17. License along with Pthreads; see the file COPYING.  If not, write
  18. to the Free Software Foundation, 675 Mass Ave, Cambridge,
  19. MA 02139, USA.
  20.  
  21. Report problems and direct all questions to:
  22.  
  23.   pthreads-bugs@ada.cs.fsu.edu
  24.  
  25.   @(#)pthread_setjmp.h    2.5 4/12/95
  26.  
  27. */
  28.  
  29. #ifndef _pthread_pthread_setjmp_h
  30. #define _pthread_pthread_setmp_h
  31.  
  32. #include <setjmp.h>
  33.  
  34. #if defined(ASM_SETJMP) || !defined(C_CONTEXT_SWITCH)
  35.  
  36. /*
  37.  * for this version, the index of JB_SP must be even !!!
  38.  * This way, we can speed up the context switch (using std).
  39.  */
  40. #define JB_SVMASK 3
  41. #define JB_SP     0
  42. #define JB_PC     1
  43. #define JB_MASK   4
  44.  
  45. #else !defined(ASM_SETJMP) && defined(C_CONTEXT_SWITCH)
  46. #ifdef SOLARIS
  47.  
  48. #define JB_SVMASK 0
  49. #define JB_SP     1
  50. #define JB_PC     2
  51. #define JB_MASK   12
  52.  
  53. #else !SOLARIS
  54. #ifdef SVR4
  55.  
  56. #include <setjmp.h> /* We hope that this defines JB_xxx */
  57.  
  58. #else !SVR4
  59.  
  60. #define JB_SVMASK 0
  61. #define JB_SP     3
  62. #define JB_PC     4
  63. #define JB_MASK   2
  64.  
  65. #endif !SVR4
  66. #endif !SOLARIS
  67. #endif  !defined(ASM_SETJMP) && defined(C_CONTEXT_SWITCH)
  68.  
  69. #endif /*!_pthread_setjmp_internals_h*/
  70.