source: rtems/c/src/exec/rtems/include/rtems.h @ b1b5a7cb

4.104.114.84.95
Last change on this file since b1b5a7cb 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: 3.4 KB
Line 
1/*  rtems.h
2 *
3 *  This include file contains information about RTEMS executive that
4 *  is required by the application and is CPU independent.  It includes
5 *  two (2) CPU dependent files to tailor its data structures for a
6 *  particular processor.
7 *
8 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
9 *  On-Line Applications Research Corporation (OAR).
10 *  All rights assigned to U.S. Government, 1994.
11 *
12 *  This material may be reproduced by or for the U.S. Government pursuant
13 *  to the copyright license under the clause at DFARS 252.227-7013.  This
14 *  notice must appear in all copies of this file and its derivatives.
15 *
16 *  $Id$
17 */
18
19#ifndef __RTEMS_RTEMS_GENERIC_h
20#define __RTEMS_RTEMS_GENERIC_h
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26/*
27 *  Unless told otherwise, the RTEMS include files will hide some stuff
28 *  from normal application code.  Defining this crosses a boundary which
29 *  is undesirable since it means your application is using RTEMS features
30 *  which are not included in the formally defined and supported API. 
31 *  Define this at your own risk.
32 */
33
34#ifndef __RTEMS_VIOLATE_KERNEL_VISIBILITY__
35#define __RTEMS_APPLICATION__
36#endif
37
38#include <rtems/system.h>
39#include <rtems/rtems/status.h>
40#include <rtems/rtems/types.h>
41
42#include <rtems/config.h>
43#include <rtems/init.h>
44#include <rtems/rtems/tasks.h>
45#include <rtems/rtems/intr.h>
46#include <rtems/rtems/clock.h>
47#include <rtems/extension.h>
48#include <rtems/rtems/timer.h>
49#include <rtems/rtems/sem.h>
50#include <rtems/rtems/message.h>
51#include <rtems/rtems/event.h>
52#include <rtems/rtems/signal.h>
53#include <rtems/rtems/event.h>
54#include <rtems/rtems/part.h>
55#include <rtems/rtems/region.h>
56#include <rtems/rtems/dpmem.h>
57#include <rtems/io.h>
58#include <rtems/fatal.h>
59#include <rtems/rtems/ratemon.h>
60#include <rtems/rtems/mp.h>
61
62#include <rtems/rtems/support.h>
63#include <rtems/score/sysstate.h>
64
65#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
66
67/*
68 *  The following define the constants which may be used in name searches.
69 */
70 
71#define RTEMS_SEARCH_ALL_NODES   OBJECTS_SEARCH_ALL_NODES
72#define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
73#define RTEMS_SEARCH_LOCAL_NODE  OBJECTS_SEARCH_LOCAL_NODE
74#define RTEMS_WHO_AM_I           OBJECTS_WHO_AM_I
75 
76/*
77 * Parameters and return id's for _Objects_Get_next
78 */
79 
80#define RTEMS_OBJECT_ID_INITIAL_INDEX        OBJECTS_ID_INITIAL_INDEX
81#define RTEMS_OBJECT_ID_FINAL_INDEX          OBJECTS_ID_FINAL_INDEX
82 
83#define RTEMS_OBJECT_ID_INITIAL(class, node) OBJECTS_ID_INITIAL(class, node)
84#define RTEMS_OBJECT_ID_FINAL                OBJECTS_ID_FINAL
85 
86/*
87 *  The following constant defines the minimum stack size which every
88 *  thread must exceed.
89 */
90
91#define RTEMS_MINIMUM_STACK_SIZE  STACK_MINIMUM_SIZE
92
93/*
94 *  Constant for indefinite wait.  (actually an illegal interval)
95 */
96
97#define RTEMS_NO_TIMEOUT  WATCHDOG_NO_TIMEOUT
98
99/*
100 *  An MPCI must support packets of at least this size.
101 */
102 
103#define RTEMS_MINIMUM_PACKET_SIZE  MP_PACKET_MINIMUM_PACKET_SIZE
104 
105/*
106 *  The following constant defines the number of unsigned32's
107 *  in a packet which must be converted to native format in a
108 *  heterogeneous system.  In packets longer than
109 *  MP_PACKET_MINIMUN_HETERO_CONVERSION unsigned32's, some of the "extra" data
110 *  may a user message buffer which is not automatically endian swapped.
111 */
112 
113#define RTEMS_MINIMUN_HETERO_CONVERSION  MP_PACKET_MINIMUN_HETERO_CONVERSION
114
115
116#ifdef __cplusplus
117}
118#endif
119
120#endif
121/* end of include file */
Note: See TracBrowser for help on using the repository browser.