home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / som / include / somthrd.h < prev    next >
C/C++ Source or Header  |  1999-02-22  |  7KB  |  164 lines

  1. /* @(#) 1.9 src/somu/somthrd.h, somu, som2.1 12/27/95 13:58:43 [7/30/96 15:26:34] */
  2. /*
  3.  *   COMPONENT_NAME: somd
  4.  *
  5.  *   ORIGINS: 27
  6.  *
  7.  *
  8.  *    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996,1996  
  9.  *   All Rights Reserved
  10.  *   Licensed Materials - Property of IBM
  11.  *   US Government Users Restricted Rights - Use, duplication or
  12.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  13.  */
  14.  
  15.  
  16. /*
  17.  *  somthrd.h - include file for Thread Service Provider Interfaces (SPIs)
  18. **    10/26/95    cgt    DCR 15152- Additional thread SPIs.
  19. */
  20.  
  21. #ifndef SOM_somthrd_h
  22. #define SOM_somthrd_h
  23.  
  24. #include <som.h>
  25.  
  26. #ifdef __IBMC__
  27.  #pragma linkage(somTD_SOMStartThread     , system)
  28.  #pragma linkage(somTD_SOMEndThread       , system)
  29.  #pragma linkage(somTD_SOMKillThread      , system)
  30.  #pragma linkage(somTD_SOMYieldThread     , system)
  31.  #pragma linkage(somTD_SOMGetThreadHandle , system)
  32.  #pragma linkage(somTD_SOMBeginThread     , system)
  33.  #pragma linkage(somTD_SOMBeginProc       , system)
  34.  
  35. /* DCR 15152 additions follow */
  36.  
  37.  #pragma linkage(somTD_SOMThreadJoin, system)
  38.  #pragma linkage(somTD_SOMThreadJoin , system )
  39.  #pragma linkage(somTD_SOMGetMutexOwner , system )
  40.  #pragma linkage(somTD_SOMCreateEventSem , system )
  41.  #pragma linkage(somTD_SOMDestroyEventSem, system )
  42.  #pragma linkage(somTD_SOMPostEventSem   , system )
  43.  #pragma linkage(somTD_SOMWaitEventSem   , system )
  44.  #pragma linkage(somTD_SOMCreateSharedEventSem   , system )
  45.  #pragma linkage(somTD_SOMOpenSharedEventSem     , system )
  46.  #pragma linkage(somTD_SOMCloseSharedEventSem, system )
  47.  #pragma linkage(somTD_SOMDestroySharedEventSem  , system )
  48.  #pragma linkage(somTD_SOMPostSharedEventSem  , system )
  49.  #pragma linkage(somTD_SOMWaitSharedEventSem  , system )
  50.  #pragma linkage(somTD_SOMCreateSharedMutexSem, system )
  51.  #pragma linkage(somTD_SOMOpenSharedMutexSem  , system )
  52.  #pragma linkage(somTD_SOMCloseSharedMutexSem    , system )
  53.  #pragma linkage(somTD_SOMDestroySharedMutexSem  , system )
  54.  #pragma linkage(somTD_SOMRequestSharedMutexSem, system )
  55.  #pragma linkage(somTD_SOMReleaseSharedMutexSem, system )
  56.  #pragma linkage(somTD_SOMThreadDetach, system )
  57. /* End of 15152 */
  58.  
  59.  
  60. #endif
  61.  
  62.  
  63. #ifdef _AIX41   /* Defect 18173 */
  64.  
  65.  /* Pthreads allows thread functions to return status */
  66.  typedef void *SOMLINK     somTD_SOMBeginProc(void *data);
  67.  typedef void *SOMLINK    somTD_SOMThreadProc(void * data);
  68.  
  69. #else
  70.  
  71.  /* SOMBeginThread supports thread procedure with system linkage */
  72.  typedef void SOMLINK     somTD_SOMBeginProc(void *data);
  73.  typedef void SOMLINK    somTD_SOMThreadProc(void * data);
  74.  
  75. #endif
  76.  
  77. /* note: for OS/2 CSet++, somTD_SOMThreadProc must use _Optlink linkage */
  78.  
  79. typedef unsigned long SOMLINK somTD_SOMStartThread(OUT somToken * thrd,
  80.                            IN somTD_SOMThreadProc proc,
  81.                            IN void * data, 
  82.                            IN unsigned long datasz,
  83.                            IN unsigned long stacksz);
  84.  
  85. typedef unsigned long SOMLINK somTD_SOMBeginThread(OUT somToken * thrd,
  86.                        IN somTD_SOMBeginProc proc,
  87.                        IN void * data, 
  88.                        IN unsigned long datasz,
  89.                        IN unsigned long stacksz);
  90.  
  91. typedef unsigned long SOMLINK somTD_SOMEndThread(void);
  92. typedef unsigned long SOMLINK somTD_SOMKillThread(IN somToken thrd);
  93. typedef unsigned long SOMLINK somTD_SOMYieldThread(void);
  94. typedef unsigned long SOMLINK somTD_SOMGetThreadHandle(OUT somToken * thrd);
  95.  
  96.  
  97. /* DCR 15152 additions follow */
  98. typedef unsigned long SOMLINK somTD_SOMThreadJoin (IN somToken tid, unsigned long *status);
  99. typedef unsigned long SOMLINK somTD_SOMGetMutexOwner (IN somToken sem);
  100.  
  101. typedef unsigned long SOMLINK somTD_SOMCreateEventSem (OUT somToken *sem);
  102. typedef unsigned long SOMLINK somTD_SOMDestroyEventSem (IN somToken sem);
  103. typedef unsigned long SOMLINK somTD_SOMPostEventSem (IN somToken sem);
  104. typedef unsigned long SOMLINK somTD_SOMWaitEventSem (IN somToken sem);
  105.  
  106. typedef unsigned long SOMLINK somTD_SOMCreateSharedEventSem (OUT somToken *sem,void *name);
  107. typedef unsigned long SOMLINK somTD_SOMOpenSharedEventSem (OUT somToken *sem, void *name);
  108. typedef unsigned long SOMLINK somTD_SOMCloseSharedEventSem (IN somToken sem );
  109. typedef unsigned long SOMLINK somTD_SOMDestroySharedEventSem (IN somToken sem );
  110. typedef unsigned long SOMLINK somTD_SOMWaitSharedEventSem (IN somToken sem );
  111. typedef unsigned long SOMLINK somTD_SOMPostSharedEventSem (IN somToken sem );
  112.  
  113. typedef unsigned long SOMLINK somTD_SOMCreateSharedMutexSem (OUT somToken *sem,void *name);
  114. typedef unsigned long SOMLINK somTD_SOMOpenSharedMutexSem (OUT somToken *sem,void *name);
  115. typedef unsigned long SOMLINK somTD_SOMCloseSharedMutexSem (IN somToken sem);
  116. typedef unsigned long SOMLINK somTD_SOMDestroySharedMutexSem (IN somToken sem);
  117. typedef unsigned long SOMLINK somTD_SOMRequestSharedMutexSem (IN somToken sem);
  118. typedef unsigned long SOMLINK somTD_SOMReleaseSharedMutexSem (IN somToken sem);
  119. typedef unsigned long SOMLINK somTD_SOMThreadDetach (IN somToken thread);
  120.  
  121. /* End of 15152 */
  122.  
  123. /* pointers to thread service functions */
  124.  
  125. SOMEXTERN somTD_SOMStartThread         * SOMDLINK SOMStartThread;
  126. SOMEXTERN somTD_SOMBeginThread         * SOMDLINK SOMBeginThread;
  127. SOMEXTERN somTD_SOMEndThread           * SOMDLINK SOMEndThread;
  128. SOMEXTERN somTD_SOMKillThread          * SOMDLINK SOMKillThread;
  129. SOMEXTERN somTD_SOMYieldThread         * SOMDLINK SOMYieldThread;
  130. SOMEXTERN somTD_SOMGetThreadHandle     * SOMDLINK SOMGetThreadHandle;
  131.  
  132.  
  133.  
  134. /* DCR 15152 additions follow */
  135.  
  136. SOMEXTERN somTD_SOMThreadJoin                   * SOMDLINK SOMThreadJoin;
  137. SOMEXTERN somTD_SOMGetMutexOwner                * SOMDLINK SOMGetMutexOwner;
  138.  
  139. SOMEXTERN somTD_SOMCreateEventSem               * SOMDLINK SOMCreateEventSem;
  140. SOMEXTERN somTD_SOMDestroyEventSem              * SOMDLINK SOMDestroyEventSem ;
  141. SOMEXTERN somTD_SOMPostEventSem                 * SOMDLINK SOMPostEventSem ;
  142. SOMEXTERN somTD_SOMWaitEventSem                 * SOMDLINK SOMWaitEventSem;
  143.  
  144. SOMEXTERN somTD_SOMCreateSharedEventSem         * SOMDLINK SOMCreateSharedEventSem ;
  145. SOMEXTERN somTD_SOMOpenSharedEventSem           * SOMDLINK SOMOpenSharedEventSem ;
  146. SOMEXTERN somTD_SOMCloseSharedEventSem          * SOMDLINK SOMCloseSharedEventSem ;
  147. SOMEXTERN somTD_SOMDestroySharedEventSem        * SOMDLINK SOMDestroySharedEventSem;
  148. SOMEXTERN somTD_SOMPostSharedEventSem           * SOMDLINK SOMPostSharedEventSem ;
  149. SOMEXTERN somTD_SOMWaitSharedEventSem           * SOMDLINK SOMWaitSharedEventSem;
  150.  
  151. SOMEXTERN somTD_SOMCreateSharedMutexSem         * SOMDLINK SOMCreateSharedMutexSem;
  152. SOMEXTERN somTD_SOMOpenSharedMutexSem           * SOMDLINK SOMOpenSharedMutexSem ;
  153. SOMEXTERN somTD_SOMCloseSharedMutexSem          * SOMDLINK SOMCloseSharedMutexSem;
  154. SOMEXTERN somTD_SOMDestroySharedMutexSem        * SOMDLINK SOMDestroySharedMutexSem;
  155. SOMEXTERN somTD_SOMRequestSharedMutexSem        * SOMDLINK SOMRequestSharedMutexSem;
  156. SOMEXTERN somTD_SOMReleaseSharedMutexSem        * SOMDLINK SOMReleaseSharedMutexSem;
  157. SOMEXTERN somTD_SOMThreadDetach                 * SOMDLINK SOMThreadDetach;
  158.  
  159.  
  160. /* End of 15152 */
  161.  
  162.  
  163. #endif /* SOM_somthrd_h */
  164.