source: rtems/cpukit/sapi/src/rtemsapi.c @ 6f1384c

4.104.114.84.95
Last change on this file since 6f1384c was 6f1384c, checked in by Joel Sherrill <joel.sherrill@…>, on 05/21/07 at 23:19:36

Split Classic API data instantiation into individual files. This reduces the size of the BSS section when an optional manageer stub is used. Some tests showed about a 600 byte reduction in BSS size. Also eliminated the variables _RTEMS_tasks_User_initialization_tasks and _RTEMS_tasks_Number_of_initialization_tasks because they were only used in one place after initialized. It was a waste of space.

  • Property mode set to 100644
File size: 2.4 KB
Line 
1/*
2 *  POSIX API Initialization Support
3 *
4 *  NOTE:
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.rtems.com/license/LICENSE.
12 *
13 *  $Id$
14 */
15
16#if HAVE_CONFIG_H
17#include "config.h"
18#endif
19
20/*
21 *  RTEMS_API_INIT is defined so all of the RTEMS API
22 *  data will be included in this object file.
23 */
24
25#define RTEMS_API_INIT
26
27#include <rtems/system.h>
28#include <rtems/rtems/status.h>
29#include <rtems/rtems/rtemsapi.h>
30
31#include <rtems/rtems/intr.h>
32#include <rtems/rtems/barrier.h>
33#include <rtems/rtems/clock.h>
34#include <rtems/rtems/tasks.h>
35#include <rtems/rtems/dpmem.h>
36#include <rtems/rtems/event.h>
37#include <rtems/rtems/message.h>
38#if defined(RTEMS_MULTIPROCESSING)
39#include <rtems/rtems/mp.h>
40#endif
41#include <rtems/rtems/part.h>
42#include <rtems/rtems/ratemon.h>
43#include <rtems/rtems/region.h>
44#include <rtems/rtems/sem.h>
45#include <rtems/rtems/signal.h>
46#include <rtems/rtems/timer.h>
47
48Objects_Information *_RTEMS_Objects[ OBJECTS_RTEMS_CLASSES_LAST + 1 ];
49
50/*PAGE
51 *
52 *  _RTEMS_API_Initialize
53 *
54 *  XXX
55 */
56
57void _RTEMS_API_Initialize(
58  rtems_configuration_table *configuration_table
59)
60{
61  rtems_api_configuration_table *api_configuration;
62
63  api_configuration = configuration_table->RTEMS_api_configuration;
64
65  _Objects_Information_table[OBJECTS_CLASSIC_API] = _RTEMS_Objects;
66
67  _Attributes_Handler_initialization();
68
69  _Interrupt_Manager_initialization();
70
71#if defined(RTEMS_MULTIPROCESSING)
72  _Multiprocessing_Manager_initialization();
73#endif
74
75  _RTEMS_tasks_Manager_initialization( api_configuration->maximum_tasks );
76
77  _Timer_Manager_initialization( api_configuration->maximum_timers );
78
79  _Signal_Manager_initialization();
80
81  _Event_Manager_initialization();
82
83  _Message_queue_Manager_initialization(
84    api_configuration->maximum_message_queues
85  );
86
87  _Semaphore_Manager_initialization( api_configuration->maximum_semaphores );
88
89  _Partition_Manager_initialization( api_configuration->maximum_partitions );
90
91  _Region_Manager_initialization( api_configuration->maximum_regions );
92
93  _Dual_ported_memory_Manager_initialization( api_configuration->maximum_ports);
94
95  _Rate_monotonic_Manager_initialization( api_configuration->maximum_periods );
96
97  _Barrier_Manager_initialization( api_configuration->maximum_barriers );
98}
99
100/* end of file */
Note: See TracBrowser for help on using the repository browser.