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 / include / pthread / pthread_asm.h < prev    next >
C/C++ Source or Header  |  1996-09-28  |  3KB  |  106 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_asm.h    2.5 4/12/95
  26.  
  27. */
  28.  
  29. #ifndef _pthread_pthread_asm_h
  30. #define _pthread_pthread_asm_h
  31.  
  32. /*
  33.  * sched attribute values
  34.  */
  35. #ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
  36. #define SCHED_FIFO  0
  37. #define SCHED_RR    1
  38. #define SCHED_OTHER 2
  39. #endif
  40.  
  41. /*
  42.  * If we have Priority Ceilings, then we have Priority Inheritance
  43.  */
  44. #ifdef _POSIX_THREADS_PRIO_PROTECT
  45. #define _POSIX_THREADS_PRIO_INHERIT
  46. #define NO_PRIO_INHERIT   0
  47. #define PRIO_INHERIT      1
  48. #define PRIO_PROTECT      2
  49. #endif
  50.  
  51. #ifndef SIG_BLOCK
  52. /* sigprocmask flags */
  53. #define SIG_BLOCK               0x0001
  54. #define SIG_UNBLOCK             0x0002
  55. #define SIG_SETMASK             0x0004
  56. #endif SIG_BLOCK
  57.  
  58. #define HEAP_SIZE 1024*1024
  59.  
  60. /*
  61.  * timer set modes
  62.  */
  63. #define ABS_TIME  0x01
  64. #define REL_TIME  0x02
  65. #define SYNC_TIME (ABS_TIME | REL_TIME)
  66. #define RR_TIME   0x04
  67. #define DL_TIME   0x08
  68. #define ANY_TIME  (SYNC_TIME | RR_TIME | DL_TIME)
  69. #define ALL_TIME  (0x10 | ANY_TIME)
  70.  
  71. /*
  72.  * Thread status bits.
  73.  */
  74. #define    T_MAIN        0x1
  75. #define    T_RETURNED    0x2
  76. #define    T_DETACHED    0x4
  77. #define T_RUNNING    0x8
  78. #define T_BLOCKED    0x10
  79. #define T_CONDTIMER     0x20
  80. #define T_SIGWAIT       0x40
  81. #define T_SYNCTIMER     0x80
  82. #define T_SIGSUSPEND    0x100
  83. #define T_CONTROLLED    0x200
  84. #define T_INTR_POINT    0x400
  85. #define T_ASYNCTIMER    0x800
  86. #define T_LOCKED    0x1000
  87. #define T_IO_OVER    0x2000
  88.  
  89. #ifndef NULL
  90. #define NULL            0
  91. #endif
  92.  
  93. /*
  94.  * Offset added to pc by ret and retl instruction on SPARC.
  95.  * When a call instruction is issued, the address of the call
  96.  * instruction is saved as the return address. When executing
  97.  * a ret/retl a constant of 8 is added to the pc to return
  98.  * to the instruction following the call *and* the daley slot.
  99.  * Below, we want to jump to a function through the dispatcher
  100.  * which uses ret/retl. Thus, we need to provide the address of
  101.  * the function *minus* 8.
  102.  */
  103. #define RETURN_OFFSET 8
  104.  
  105. #endif /*!_pthread_pthread_asm_h*/
  106.