source: rtems/c/src/exec/score/headers/threadmp.h @ a5f56a43

4.104.114.84.95
Last change on this file since a5f56a43 was 1a8fde6c, checked in by Joel Sherrill <joel.sherrill@…>, on 03/06/96 at 21:34:57

Removed prototyes for static inline routines and moved the comments into
the inline implementation. The impetus for this was twofold. First,
it is incorrect to have static inline prototypes when using the macro
implementation. Second, this reduced the number of lines in the include
files seen by rtems.h by about 2000 lines.

Next we restricted visibility for the inline routines to inside the
executive itself EXCEPT for a handful of objects. This reduced the
number of include files included by rtems.h by 40 files and reduced
the lines in the include files seen by rtems.h by about 6000 lines.

In total, these reduced the compile time of the entire RTEMS tree by 20%.
This results in about 8 minutes savings on the SparcStation? 10 morgana.

  • Property mode set to 100644
File size: 2.0 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, 1990, 1991, 1992, 1993, 1994.
7 *  On-Line Applications Research Corporation (OAR).
8 *  All rights assigned to U.S. Government, 1994.
9 *
10 *  This material may be reproduced by or for the U.S. Government pursuant
11 *  to the copyright license under the clause at DFARS 252.227-7013.  This
12 *  notice must appear in all copies of this file and its derivatives.
13 *
14 *  $Id$
15 */
16
17#ifndef __RTEMS_THREAD_MP_h
18#define __RTEMS_THREAD_MP_h
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/*
25 *  _Thread_MP_Handler_initialization
26 *
27 *  DESCRIPTION:
28 *
29 *  This routine initializes the multiprocessing portion of the Thread Handler.
30 */
31
32void _Thread_MP_Handler_initialization (
33  unsigned32 maximum_proxies
34);
35
36/*
37 *  _Thread_MP_Allocate_proxy
38 *
39 *  DESCRIPTION:
40 *
41 *  This  allocates a proxy control block from
42 *  the inactive chain of free proxy control blocks.
43 *
44 *  NOTE: This function returns a thread control pointer
45 *        because proxies are substitutes for remote threads.
46 */
47
48Thread_Control *_Thread_MP_Allocate_proxy (
49  States_Control the_state
50);
51
52/*
53 *  _Thread_MP_Find_proxy
54 *
55 *  DESCRIPTION:
56 *
57 *  This function removes the proxy control block for the specified
58 *  id from the active chain of proxy control blocks.
59 */
60
61Thread_Control *_Thread_MP_Find_proxy (
62  Objects_Id the_id
63);
64
65/*
66 *  The following is used to determine when the multiprocessing receive
67 *  thread is executing so that a proxy can be allocated instead of
68 *  blocking the multiprocessing receive thread.
69 */
70
71EXTERN Thread_Control *_Thread_MP_Receive;
72
73/*
74 * The following chains are used to manage proxies.
75 */
76
77EXTERN Chain_Control _Thread_MP_Active_proxies;
78EXTERN Chain_Control _Thread_MP_Inactive_proxies;
79
80#ifndef __RTEMS_APPLICATION__
81#include <rtems/score/threadmp.inl>
82#endif
83
84#ifdef __cplusplus
85}
86#endif
87
88#endif
89/* end of include file */
Note: See TracBrowser for help on using the repository browser.