summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-05-21 23:19:36 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-05-21 23:19:36 +0000
commit6f1384cd4ff2518fbbde7fe99f4cbc7112ec14fc (patch)
tree75216d7fabbbe051420f24832c803ac74418ee7d /cpukit/sapi
parent2007-05-21 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-6f1384cd4ff2518fbbde7fe99f4cbc7112ec14fc.tar.bz2
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.
Diffstat (limited to 'cpukit/sapi')
-rw-r--r--cpukit/sapi/Makefile.am3
-rw-r--r--cpukit/sapi/include/rtems/extension.h12
-rw-r--r--cpukit/sapi/src/extensiondata.c23
-rw-r--r--cpukit/sapi/src/rtemsapi.c6
4 files changed, 34 insertions, 10 deletions
diff --git a/cpukit/sapi/Makefile.am b/cpukit/sapi/Makefile.am
index edb845aca2..531d0e779a 100644
--- a/cpukit/sapi/Makefile.am
+++ b/cpukit/sapi/Makefile.am
@@ -22,7 +22,8 @@ AM_CPPFLAGS += -D__RTEMS_INSIDE__
noinst_LIBRARIES = libsapi.a
libsapi_a_SOURCES = src/debug.c src/extension.c src/extensioncreate.c \
src/extensiondelete.c src/extensionident.c src/fatal.c src/exinit.c \
- src/exshutdown.c src/io.c src/itronapi.c src/posixapi.c src/rtemsapi.c
+ src/exshutdown.c src/io.c src/itronapi.c src/posixapi.c src/rtemsapi.c \
+ src/extensiondata.c
libsapi_a_CPPFLAGS = $(AM_CPPFLAGS)
include $(srcdir)/preinstall.am
diff --git a/cpukit/sapi/include/rtems/extension.h b/cpukit/sapi/include/rtems/extension.h
index 65ac6ce280..a1f448c98e 100644
--- a/cpukit/sapi/include/rtems/extension.h
+++ b/cpukit/sapi/include/rtems/extension.h
@@ -13,7 +13,7 @@
* + get ID of user extension set
* + delete user extension set
*
- * COPYRIGHT (c) 1989-1999.
+ * COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -26,14 +26,18 @@
#ifndef _RTEMS_EXTENSION_H
#define _RTEMS_EXTENSION_H
+#ifndef SAPI_EXT_EXTERN
+#define SAPI_EXT_EXTERN extern
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
#include <rtems/score/object.h>
#include <rtems/score/userext.h>
-#include <rtems/rtems/status.h> /* XXX */
-#include <rtems/rtems/types.h> /* XXX */
+#include <rtems/rtems/status.h>
+#include <rtems/rtems/types.h>
/*
* Extension related types
@@ -58,7 +62,7 @@ typedef User_extensions_Table rtems_extensions_table;
* this class of objects.
*/
-SAPI_EXTERN Objects_Information _Extension_Information;
+SAPI_EXT_EXTERN Objects_Information _Extension_Information;
/*
* The following records define the control block used to manage
diff --git a/cpukit/sapi/src/extensiondata.c b/cpukit/sapi/src/extensiondata.c
new file mode 100644
index 0000000000..6057db5ee6
--- /dev/null
+++ b/cpukit/sapi/src/extensiondata.c
@@ -0,0 +1,23 @@
+/*
+ * Extension Manager -- Instantiate Data
+ *
+ * COPYRIGHT (c) 1989-2007.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* instantiate extension data */
+#define SAPI_EXT_EXTERN
+
+#include <rtems/system.h>
+#include <rtems/extension.h>
+
diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c
index 23daa0700f..89d7411b5f 100644
--- a/cpukit/sapi/src/rtemsapi.c
+++ b/cpukit/sapi/src/rtemsapi.c
@@ -72,11 +72,7 @@ void _RTEMS_API_Initialize(
_Multiprocessing_Manager_initialization();
#endif
- _RTEMS_tasks_Manager_initialization(
- api_configuration->maximum_tasks,
- api_configuration->number_of_initialization_tasks,
- api_configuration->User_initialization_tasks_table
- );
+ _RTEMS_tasks_Manager_initialization( api_configuration->maximum_tasks );
_Timer_Manager_initialization( api_configuration->maximum_timers );