source: rtems/c/src/exec/sapi/headers/config.h @ 0451b44

4.104.114.84.95
Last change on this file since 0451b44 was 0451b44, checked in by Joel Sherrill <joel.sherrill@…>, on 04/15/98 at 00:02:10

Per suggestion from Eric Norum, went from one initial extension set
to multiple. This lets the stack check extension be installed
at system initialization time and avoids the BSP having to
even know about its existence.

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/*  config.h
2 *
3 *  This include file contains the table of user defined configuration
4 *  parameters.
5 *
6 *  COPYRIGHT (c) 1989-1998.
7 *  On-Line Applications Research Corporation (OAR).
8 *  Copyright assigned to U.S. Government, 1994.
9 *
10 *  The license and distribution terms for this file may be
11 *  found in the file LICENSE in this distribution or at
12 *  http://www.OARcorp.com/rtems/license.html.
13 *
14 *  $Id$
15 */
16
17#ifndef __RTEMS_CONFIGURATION_h
18#define __RTEMS_CONFIGURATION_h
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/*
25 *  This is kind of kludgy but it allows targets to totally ignore the
26 *  POSIX API safely.
27 */
28
29#ifdef RTEMS_POSIX_API
30#include <rtems/posix/config.h>
31#else
32
33typedef void *posix_api_configuration_table;
34#endif
35
36#include <rtems/rtems/config.h>
37
38/*  XXX <rtems/rtems/config.h> should cover these
39#include <rtems/rtems/status.h>
40#include <rtems/rtems/types.h>
41#include <rtems/rtems/tasks.h>
42*/
43
44#include <rtems/extension.h>
45#include <rtems/io.h>
46#include <rtems/score/mpci.h>
47
48/*
49 *  The following records define the Multiprocessor Configuration
50 *  Table.  This table defines the multiprocessor system
51 *  characteristics which must be known by RTEMS in a multiprocessor
52 *  system.
53 */
54
55typedef struct {
56  unsigned32    node;                   /* local node number */
57  unsigned32    maximum_nodes;          /* maximum # nodes in system */
58  unsigned32    maximum_global_objects; /* maximum # global objects */
59  unsigned32    maximum_proxies;        /* maximum # proxies */
60  MPCI_Control *User_mpci_table;        /* pointer to MPCI table */
61} rtems_multiprocessing_table;
62
63/*
64 *  The following records define the Configuration Table.  The
65 *  information contained in this table is required in all
66 *  RTEMS systems, whether single or multiprocessor.  This
67 *  table primarily defines the following:
68 *
69 *     + location and size of the RTEMS Workspace
70 *     + microseconds per clock tick
71 *     + clock ticks per task timeslice
72 *     + required number of each object type for each API configured
73 */
74
75typedef struct {
76  void                             *work_space_start;
77  unsigned32                        work_space_size;
78  unsigned32                        maximum_extensions;
79  unsigned32                        microseconds_per_tick;
80  unsigned32                        ticks_per_timeslice;
81  unsigned32                        maximum_devices;
82  unsigned32                        number_of_device_drivers;
83  rtems_driver_address_table       *Device_driver_table;
84  unsigned32                        number_of_initial_extensions;
85  rtems_extensions_table           *User_extension_table;
86  rtems_multiprocessing_table      *User_multiprocessing_table;
87  rtems_api_configuration_table    *RTEMS_api_configuration;
88  posix_api_configuration_table    *POSIX_api_configuration;
89} rtems_configuration_table;
90
91/*
92 *  The following are provided strictly for the convenience of
93 *  the user.  They are not used in RTEMS itself.
94 */
95
96SAPI_EXTERN rtems_configuration_table    *_Configuration_Table;
97SAPI_EXTERN rtems_multiprocessing_table  *_Configuration_MP_table;
98
99#ifdef __cplusplus
100}
101#endif
102
103#endif
104/* end of include file */
Note: See TracBrowser for help on using the repository browser.