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.
This commit is contained in:
Joel Sherrill
1998-04-15 00:10:03 +00:00
parent 0451b44f36
commit 9b64c2d5f7
29 changed files with 45 additions and 375 deletions

View File

@@ -697,18 +697,19 @@ package RTEMS is
type Configuration_Table is
record
Work_Space_Start : RTEMS.Address;
Work_Space_Size : RTEMS.Unsigned32;
Maximum_Extensions : RTEMS.Unsigned32;
Microseconds_Per_Tick : RTEMS.Unsigned32;
Ticks_Per_Timeslice : RTEMS.Unsigned32;
Maximum_Devices : RTEMS.Unsigned32;
Number_Of_Device_Drivers : RTEMS.Unsigned32;
Device_Driver_Table : RTEMS.Driver_Address_Table_Pointer;
User_Extension_Table : RTEMS.Extensions_Table_Pointer;
User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
RTEMS_API_Configuration : RTEMS.API_Configuration_Table_Pointer;
POSIX_API_Configuration : RTEMS.POSIX_API_Configuration_Table_Pointer;
Work_Space_Start : RTEMS.Address;
Work_Space_Size : RTEMS.Unsigned32;
Maximum_Extensions : RTEMS.Unsigned32;
Microseconds_Per_Tick : RTEMS.Unsigned32;
Ticks_Per_Timeslice : RTEMS.Unsigned32;
Maximum_Devices : RTEMS.Unsigned32;
Number_Of_Device_Drivers : RTEMS.Unsigned32;
Device_Driver_Table : RTEMS.Driver_Address_Table_Pointer;
Number_Of_Initial_Extensions : RTEMS.Unsigned32;
User_Extension_Table : RTEMS.Extensions_Table_Pointer;
User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
RTEMS_API_Configuration : RTEMS.API_Configuration_Table_Pointer;
POSIX_API_Configuration : RTEMS.POSIX_API_Configuration_Table_Pointer;
end record;
type Configuration_Table_Pointer is access all Configuration_Table;

View File

@@ -27,10 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
#ifndef lint
static char _sccsid[] = "@(#)bspstart.c 09/11/96 1.15\n";
#endif
@@ -120,15 +116,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -30,10 +30,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
extern rtems_configuration_table Configuration;
rtems_configuration_table BSP_Configuration;
@@ -215,16 +211,6 @@ bsp_pretasking_hook(void)
rtems_fatal_error_occurred(rc);
}
#endif
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
}
/*

View File

@@ -25,10 +25,6 @@
#include <libcsupport.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -93,15 +89,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -28,10 +28,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -101,15 +97,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -26,10 +26,6 @@
#include <libcsupport.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -106,15 +102,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -38,10 +38,6 @@
#include <libcsupport.h>
#include <rtems/libio.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*-------------------------------------------------------------------------+
| Global Variables
+--------------------------------------------------------------------------*/
@@ -118,14 +114,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/* Initialize the stack bounds checker. We can either turn it on here or from
the app. */
Stack_check_Initialize();
#endif /* STACK_CHECKER_ON */
#ifdef RTEMS_DEBUG
rtems_debug_enable(RTEMS_DEBUG_ALL_MASK);

View File

@@ -27,10 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -96,15 +92,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -27,9 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -94,15 +91,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -26,10 +26,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -102,15 +98,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -26,10 +26,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -107,15 +103,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -27,10 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -102,15 +98,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -27,10 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -98,15 +94,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -27,10 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
unsigned char *duart_base;
extern struct duart_regs duart_info;
@@ -103,15 +99,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -28,10 +28,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -96,15 +92,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -31,10 +31,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -99,15 +95,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -31,10 +31,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -99,15 +95,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -35,10 +35,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -103,15 +99,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -27,10 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -103,15 +99,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -35,10 +35,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -113,15 +109,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -35,10 +35,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -113,15 +109,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -27,10 +27,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -103,15 +99,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -44,10 +44,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -121,15 +117,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -26,10 +26,6 @@
#include <string.h>
#include <fcntl.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -185,16 +181,6 @@ void bsp_pretasking_hook(void)
}
#endif
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -37,10 +37,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -106,15 +102,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -32,10 +32,6 @@
#include <string.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
/*
* The original table from the application and our copy of it with
* some changes.
@@ -186,16 +182,6 @@ void bsp_pretasking_hook(void)
}
#endif
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -36,10 +36,6 @@
#include <rtems/libio.h>
#ifdef STACK_CHECKER_ON
#include <stackchk.h>
#endif
extern rtems_configuration_table Configuration;
/*
@@ -153,15 +149,6 @@ bsp_pretasking_hook(void)
{
bsp_libc_init();
#ifdef STACK_CHECKER_ON
/*
* Initialize the stack bounds checker
* We can either turn it on here or from the app.
*/
Stack_check_Initialize();
#endif
#ifdef RTEMS_DEBUG
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
#endif

View File

@@ -697,18 +697,19 @@ package RTEMS is
type Configuration_Table is
record
Work_Space_Start : RTEMS.Address;
Work_Space_Size : RTEMS.Unsigned32;
Maximum_Extensions : RTEMS.Unsigned32;
Microseconds_Per_Tick : RTEMS.Unsigned32;
Ticks_Per_Timeslice : RTEMS.Unsigned32;
Maximum_Devices : RTEMS.Unsigned32;
Number_Of_Device_Drivers : RTEMS.Unsigned32;
Device_Driver_Table : RTEMS.Driver_Address_Table_Pointer;
User_Extension_Table : RTEMS.Extensions_Table_Pointer;
User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
RTEMS_API_Configuration : RTEMS.API_Configuration_Table_Pointer;
POSIX_API_Configuration : RTEMS.POSIX_API_Configuration_Table_Pointer;
Work_Space_Start : RTEMS.Address;
Work_Space_Size : RTEMS.Unsigned32;
Maximum_Extensions : RTEMS.Unsigned32;
Microseconds_Per_Tick : RTEMS.Unsigned32;
Ticks_Per_Timeslice : RTEMS.Unsigned32;
Maximum_Devices : RTEMS.Unsigned32;
Number_Of_Device_Drivers : RTEMS.Unsigned32;
Device_Driver_Table : RTEMS.Driver_Address_Table_Pointer;
Number_Of_Initial_Extensions : RTEMS.Unsigned32;
User_Extension_Table : RTEMS.Extensions_Table_Pointer;
User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
RTEMS_API_Configuration : RTEMS.API_Configuration_Table_Pointer;
POSIX_API_Configuration : RTEMS.POSIX_API_Configuration_Table_Pointer;
end record;
type Configuration_Table_Pointer is access all Configuration_Table;

View File

@@ -31,6 +31,7 @@ typedef struct @{
rtems_unsigned32 maximum_devices;
rtems_unsigned32 number_of_device_drivers;
rtems_driver_address_table *Device_driver_table;
rtems_unsigned32 number_of_initial_extensions;
rtems_extensions_table *User_extension_table;
rtems_multiprocessing_table *User_multiprocessing_table;
rtems_api_configuration_table *RTEMS_api_configuration;
@@ -44,18 +45,19 @@ typedef struct @{
@example
type Configuration_Table is
record
Work_Space_Start : RTEMS.Address;
Work_Space_Size : RTEMS.Unsigned32;
Maximum_Extensions : RTEMS.Unsigned32;
Microseconds_Per_Tick : RTEMS.Unsigned32;
Ticks_Per_Timeslice : RTEMS.Unsigned32;
Maximum_Devices : RTEMS.Unsigned32;
Number_Of_Device_Drivers : RTEMS.Unsigned32;
Device_Driver_Table : RTEMS.Driver_Address_Table_Pointer;
User_Extension_Table : RTEMS.Extensions_Table_Pointer;
User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
RTEMS_API_Configuration : RTEMS.API_Configuration_Table_Pointer;
POSIX_API_Configuration :
Work_Space_Start : RTEMS.Address;
Work_Space_Size : RTEMS.Unsigned32;
Maximum_Extensions : RTEMS.Unsigned32;
Microseconds_Per_Tick : RTEMS.Unsigned32;
Ticks_Per_Timeslice : RTEMS.Unsigned32;
Maximum_Devices : RTEMS.Unsigned32;
Number_Of_Device_Drivers : RTEMS.Unsigned32;
Device_Driver_Table : RTEMS.Driver_Address_Table_Pointer;
Number_Of_Initial_Extensions : RTEMS.Unsigned32;
User_Extension_Table : RTEMS.Extensions_Table_Pointer;
User_Multiprocessing_Table : RTEMS.Multiprocessing_Table_Pointer;
RTEMS_API_Configuration : RTEMS.API_Configuration_Table_Pointer;
POSIX_API_Configuration :
RTEMS.POSIX_API_Configuration_Table_Pointer;
end record;
@@ -97,6 +99,11 @@ points for each device driver. If the number_of_device_drivers field is zero,
then this entry should be NULL. The format of this table will be
discussed below.
@item number_of_initial_extensions
is the number of initial user extensions. There should be
the same number of entries as in the User_extension_table. If this field
is zero, then the User_driver_address_table entry should be NULL.
@item User_extension_table
is the address of the User
Extension Table. This table contains the entry points for the