diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-05-21 23:19:36 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-05-21 23:19:36 +0000 |
commit | 6f1384cd4ff2518fbbde7fe99f4cbc7112ec14fc (patch) | |
tree | 75216d7fabbbe051420f24832c803ac74418ee7d /cpukit/sapi | |
parent | 2007-05-21 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-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.am | 3 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/extension.h | 12 | ||||
-rw-r--r-- | cpukit/sapi/src/extensiondata.c | 23 | ||||
-rw-r--r-- | cpukit/sapi/src/rtemsapi.c | 6 |
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 ); |