source: rtems/c/src/exec/score/include/rtems/score/threadmp.h @ 3a96054

4.104.114.84.95
Last change on this file since 3a96054 was 08311cc3, checked in by Joel Sherrill <joel.sherrill@…>, on 11/17/99 at 17:51:34

Updated copyright notice.

  • Property mode set to 100644
File size: 1.9 KB
Line 
1/*  threadmp.h
2 *
3 *  This include file contains the specification for all routines
4 *  and data specific to the multiprocessing portion of the thread package.
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.OARcorp.com/rtems/license.html.
12 *
13 *  $Id$
14 */
15
16#ifndef __RTEMS_THREAD_MP_h
17#define __RTEMS_THREAD_MP_h
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23/*
24 *  _Thread_MP_Handler_initialization
25 *
26 *  DESCRIPTION:
27 *
28 *  This routine initializes the multiprocessing portion of the Thread Handler.
29 */
30
31void _Thread_MP_Handler_initialization (
32  unsigned32 maximum_proxies
33);
34
35/*
36 *  _Thread_MP_Allocate_proxy
37 *
38 *  DESCRIPTION:
39 *
40 *  This  allocates a proxy control block from
41 *  the inactive chain of free proxy control blocks.
42 *
43 *  NOTE: This function returns a thread control pointer
44 *        because proxies are substitutes for remote threads.
45 */
46
47Thread_Control *_Thread_MP_Allocate_proxy (
48  States_Control the_state
49);
50
51/*
52 *  _Thread_MP_Find_proxy
53 *
54 *  DESCRIPTION:
55 *
56 *  This function removes the proxy control block for the specified
57 *  id from the active chain of proxy control blocks.
58 */
59
60Thread_Control *_Thread_MP_Find_proxy (
61  Objects_Id the_id
62);
63
64/*
65 *  The following is used to determine when the multiprocessing receive
66 *  thread is executing so that a proxy can be allocated instead of
67 *  blocking the multiprocessing receive thread.
68 */
69
70SCORE_EXTERN Thread_Control *_Thread_MP_Receive;
71
72/*
73 * The following chains are used to manage proxies.
74 */
75
76SCORE_EXTERN Chain_Control _Thread_MP_Active_proxies;
77SCORE_EXTERN Chain_Control _Thread_MP_Inactive_proxies;
78
79#ifndef __RTEMS_APPLICATION__
80#include <rtems/score/threadmp.inl>
81#endif
82
83#ifdef __cplusplus
84}
85#endif
86
87#endif
88/* end of include file */
Note: See TracBrowser for help on using the repository browser.