source: rtems/c/src/exec/posix/include/rtems/posix/pthread.h @ 97e2729d

4.104.114.84.95
Last change on this file since 97e2729d was 97e2729d, checked in by Joel Sherrill <joel.sherrill@…>, on 11/23/98 at 17:38:09

Added --disable-multiprocessing flag and modified a lot of files to make
it work.

  • Property mode set to 100644
File size: 2.9 KB
Line 
1/*  rtems/posix/pthread.h
2 *
3 *  This include file contains all the private support information for
4 *  POSIX threads.
5 *
6 *  COPYRIGHT (c) 1989-1998.
7 *  On-Line Applications Research Corporation (OAR).
8 *  Copyright assigned to U.S. Government, 1994.
9 *
10 *  The license and distribution terms for this file may be
11 *  found in the file LICENSE in this distribution or at
12 *  http://www.OARcorp.com/rtems/license.html.
13 *
14 *  $Id$
15 */
16 
17#ifndef __RTEMS_POSIX_THREADS_h
18#define __RTEMS_POSIX_THREADS_h
19 
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include <rtems/posix/config.h>
25#include <rtems/posix/threadsup.h>
26
27#define PTHREAD_MINIMUM_STACK_SIZE (STACK_MINIMUM_SIZE * 2)
28
29/*
30 *  The following defines the information control block used to manage
31 *  this class of objects.
32 */
33 
34POSIX_EXTERN Objects_Information  _POSIX_Threads_Information;
35
36/*
37 *  These are used to manage the user initialization threads.
38 */
39 
40POSIX_EXTERN posix_initialization_threads_table
41                   *_POSIX_Threads_User_initialization_threads;
42POSIX_EXTERN unsigned32   _POSIX_Threads_Number_of_initialization_threads;
43
44 
45/*
46 *  _POSIX_Threads_Manager_initialization
47 *
48 *  DESCRIPTION:
49 *
50 *  This routine performs the initialization necessary for this manager.
51 */
52 
53void _POSIX_Threads_Manager_initialization(
54  unsigned32                          maximum_pthreads,
55  unsigned32                          number_of_initialization_threads,
56  posix_initialization_threads_table *user_threads
57);
58 
59/*
60 *  _POSIX_Threads_Allocate
61 *
62 *  DESCRIPTION:
63 *
64 *  This function allocates a pthread control block from
65 *  the inactive chain of free pthread control blocks.
66 */
67 
68RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Allocate( void );
69 
70/*
71 *  _POSIX_Threads_Free
72 *
73 *  DESCRIPTION:
74 *
75 *  This routine frees a pthread control block to the
76 *  inactive chain of free pthread control blocks.
77 */
78 
79RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free(
80  Thread_Control *the_pthread
81);
82 
83/*
84 *  _POSIX_Threads_Get
85 *
86 *  DESCRIPTION:
87 *
88 *  This function maps pthread IDs to pthread control blocks.
89 *  If ID corresponds to a local pthread, then it returns
90 *  the_pthread control pointer which maps to ID and location
91 *  is set to OBJECTS_LOCAL.  if the pthread ID is global and
92 *  resides on a remote node, then location is set to OBJECTS_REMOTE,
93 *  and the_pthread is undefined.  Otherwise, location is set
94 *  to OBJECTS_ERROR and the_pthread is undefined.
95 */
96 
97RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Get(
98  pthread_t          id,
99  Objects_Locations *location
100);
101 
102/*
103 *  _POSIX_Threads_Is_null
104 *
105 *  DESCRIPTION:
106 *
107 *  This function returns TRUE if the_pthread is NULL and FALSE otherwise.
108 */
109 
110RTEMS_INLINE_ROUTINE boolean _POSIX_Threads_Is_null(
111  Thread_Control *the_pthread
112);
113
114#include <rtems/posix/pthread.inl>
115#if defined(RTEMS_MULTIPROCESSING)
116#include <rtems/posix/pthreadmp.h>
117#endif
118
119#ifdef __cplusplus
120}
121#endif
122 
123#endif
124/*  end of include file */
125
Note: See TracBrowser for help on using the repository browser.