source: rtems/cpukit/posix/include/rtems/posix/pthread.h @ 39cefdd

4.104.114.84.9
Last change on this file since 39cefdd was 39cefdd, checked in by Ralf Corsepius <ralf.corsepius@…>, on Mar 23, 2004 at 1:07:29 PM

2004-03-23 Ralf Corsepius <ralf_corsepius@…>

  • posix/include/rtems/posix/cond.h, posix/include/rtems/posix/intr.h, posix/include/rtems/posix/key.h, posix/include/rtems/posix/mqueue.h, posix/include/rtems/posix/mutex.h, posix/include/rtems/posix/pthread.h, posix/include/rtems/posix/semaphore.h, posix/include/rtems/posix/threadsup.h, posix/include/rtems/posix/timer.h, posix/src/cond.c, posix/src/intr.c, posix/src/key.c, posix/src/keycreate.c, posix/src/keydelete.c, posix/src/keygetspecific.c, posix/src/keyrundestructors.c, posix/src/keysetspecific.c, posix/src/killinfo.c, posix/src/mqueue.c, posix/src/mqueuerecvsupp.c, posix/src/mqueuesendsupp.c, posix/src/mqueuetranslatereturncode.c, posix/src/mutex.c, posix/src/posixintervaltotimespec.c, posix/src/posixtimespecsubtract.c, posix/src/psignal.c, posix/src/pthread.c, posix/src/ptimer1.c, posix/src/semaphore.c, posix/src/sysconf.c: Convert to using c99 fixed size types.
  • Property mode set to 100644
File size: 3.3 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-1999.
7 *  On-Line Applications Research Corporation (OAR).
8 *
9 *  The license and distribution terms for this file may be
10 *  found in the file LICENSE in this distribution or at
11 *  http://www.rtems.com/license/LICENSE.
12 *
13 *  $Id$
14 */
15 
16#ifndef __RTEMS_POSIX_THREADS_h
17#define __RTEMS_POSIX_THREADS_h
18 
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23#include <rtems/posix/config.h>
24#include <rtems/posix/threadsup.h>
25
26#define PTHREAD_MINIMUM_STACK_SIZE (STACK_MINIMUM_SIZE * 2)
27
28/*
29 *  The following defines the information control block used to manage
30 *  this class of objects.
31 */
32 
33POSIX_EXTERN Objects_Information  _POSIX_Threads_Information;
34
35/*
36 *  These are used to manage the user initialization threads.
37 */
38 
39POSIX_EXTERN posix_initialization_threads_table
40                   *_POSIX_Threads_User_initialization_threads;
41POSIX_EXTERN uint32_t     _POSIX_Threads_Number_of_initialization_threads;
42
43extern const pthread_attr_t _POSIX_Threads_Default_attributes;
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  uint32_t                            maximum_pthreads,
55  uint32_t                            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/*
115 *  _POSIX_Threads_Sporadic_budget_callout
116 *
117 *  DESCRIPTION:
118 *
119 *  This routine handles the sporadic scheduling algorithm.
120 */
121
122void _POSIX_Threads_Sporadic_budget_callout(
123  Thread_Control *the_thread
124);
125
126/*
127 *  _POSIX_Threads_Sporadic_budget_TSR
128 *
129 *  DESCRIPTION:
130 *
131 *  This routine supports the sporadic scheduling algorithm.
132 */
133
134void _POSIX_Threads_Sporadic_budget_TSR(
135  Objects_Id      id,
136  void           *argument
137);
138
139#include <rtems/posix/pthread.inl>
140#if defined(RTEMS_MULTIPROCESSING)
141#include <rtems/posix/pthreadmp.h>
142#endif
143
144#ifdef __cplusplus
145}
146#endif
147 
148#endif
149/*  end of include file */
150
Note: See TracBrowser for help on using the repository browser.