source: rtems/cpukit/score/include/rtems/system.h @ 8bdcfc4

4.104.114.84.95
Last change on this file since 8bdcfc4 was 5e9b32b, checked in by Joel Sherrill <joel.sherrill@…>, on 09/26/95 at 19:27:15

posix support initially added

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/*  system.h
2 *
3 *  This include file contains information that is included in every
4 *  function in the executive.  This must be the first include file
5 *  included in all internal RTEMS files.
6 *
7 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
8 *  On-Line Applications Research Corporation (OAR).
9 *  All rights assigned to U.S. Government, 1994.
10 *
11 *  This material may be reproduced by or for the U.S. Government pursuant
12 *  to the copyright license under the clause at DFARS 252.227-7013.  This
13 *  notice must appear in all copies of this file and its derivatives.
14 *
15 *  $Id$
16 */
17
18#ifndef __RTEMS_SYSTEM_h
19#define __RTEMS_SYSTEM_h
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/*
26 *  The following define the CPU Family and Model within the family
27 *
28 *  NOTE: The string "REPLACE_THIS_WITH_USE_INLINE_OR_MACROS" is replaced
29 *        with either "USE_INLINES" or "USE_MACROS" based upon the
30 *        whether this target configuration uses the inline or
31 *        macro implementations of the inlined RTEMS routines.
32 */
33 
34
35#define REPLACE_THIS_WITH_USE_INLINE_OR_MACROS
36
37/*
38 *  The following insures that all data is declared in the space
39 *  of the Initialization Manager.  It is referenced as "external"
40 *  in every other file.
41 */
42
43#ifdef INIT
44#undef EXTERN
45#define EXTERN
46#else
47#undef EXTERN
48#define EXTERN  extern
49#endif
50
51/*
52 *  The following (in conjunction with compiler arguments) are used
53 *  to choose between the use of static inline functions and macro
54 *  functions.   The static inline implementation allows better
55 *  type checking with no cost in code size or execution speed.
56 */
57
58#ifdef USE_INLINES
59#define STATIC static
60#define INLINE __inline__
61#else
62/*
63#error Only the GNU C compiler is currently supported!!!
64*/
65#define STATIC
66#define INLINE
67#endif
68
69/*
70 *  Include a base set of files.
71 */
72
73/*
74 * XXX: Eventually proc_ptr needs to disappear!!!
75 */
76
77typedef void * proc_ptr;
78
79#include <rtems/score/cpu.h>        /* processor specific information */
80
81/*
82 *  Define NULL
83 */
84
85#ifndef NULL
86#define NULL      0          /* NULL value */
87#endif
88
89/*
90 *  Boolean constants
91 */
92
93#if !defined( TRUE ) || (TRUE != 1)
94#undef TRUE
95#define TRUE     (1)
96#endif
97
98#if !defined( FALSE ) || (FALSE != 0)
99#undef FALSE
100#define FALSE     (0)
101#endif
102
103#define stringify( _x ) # _x
104
105#define RTEMS_offsetof(type, field) \
106        ((unsigned32) &(((type *) 0)->field))
107
108/*
109 *  The following is the extern for the RTEMS version string.
110 *  The contents of this string are CPU specific.
111 */
112
113extern const char _RTEMS_version[];         /* RTEMS version string */
114extern const char _Copyright_Notice[];      /* RTEMS copyright string */
115
116/*
117 *  The following defines the CPU dependent information table.
118 */
119
120EXTERN rtems_cpu_table _CPU_Table;               /* CPU dependent info */
121
122/*
123 *  XXX weird RTEMS stuff
124 */
125
126#define RTEMS_MAXIMUM_NAME_LENGTH 4
127
128#ifdef __cplusplus
129}
130#endif
131
132#endif
133/* end of include file */
Note: See TracBrowser for help on using the repository browser.