mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
2008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* sapi/include/rtems/extension.h, sapi/include/rtems/io.h, sapi/src/exinit.c, sapi/src/extension.c, sapi/src/io.c, score/include/rtems/score/mpci.h, score/include/rtems/score/object.h, score/include/rtems/score/thread.h, score/include/rtems/score/tod.h, score/include/rtems/score/userext.h, score/include/rtems/score/wkspace.h, score/src/coretod.c, score/src/mpci.c, score/src/object.c, score/src/thread.c, score/src/userext.c, score/src/wkspace.c: Convert SAPI manager and SuperCore Handler initialization routines to directly pull parameters from configuration table.
This commit is contained in:
@@ -1,3 +1,16 @@
|
|||||||
|
2008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
|
* sapi/include/rtems/extension.h, sapi/include/rtems/io.h,
|
||||||
|
sapi/src/exinit.c, sapi/src/extension.c, sapi/src/io.c,
|
||||||
|
score/include/rtems/score/mpci.h, score/include/rtems/score/object.h,
|
||||||
|
score/include/rtems/score/thread.h, score/include/rtems/score/tod.h,
|
||||||
|
score/include/rtems/score/userext.h,
|
||||||
|
score/include/rtems/score/wkspace.h, score/src/coretod.c,
|
||||||
|
score/src/mpci.c, score/src/object.c, score/src/thread.c,
|
||||||
|
score/src/userext.c, score/src/wkspace.c: Convert SAPI manager and
|
||||||
|
SuperCore Handler initialization routines to directly pull parameters
|
||||||
|
from configuration table.
|
||||||
|
|
||||||
2008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
|
2008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||||
|
|
||||||
* itron/include/rtems/itron/config.h,
|
* itron/include/rtems/itron/config.h,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
* + get ID of user extension set
|
* + get ID of user extension set
|
||||||
* + delete user extension set
|
* + delete user extension set
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-2007.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -82,9 +82,7 @@ typedef struct {
|
|||||||
* This routine performs the initialization necessary for this manager.
|
* This routine performs the initialization necessary for this manager.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _Extension_Manager_initialization(
|
void _Extension_Manager_initialization(void);
|
||||||
uint32_t maximum_extensions
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rtems_extension_create
|
* rtems_extension_create
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT (c) 1989-1999.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -103,11 +103,7 @@ SAPI_IO_EXTERN rtems_driver_address_table *_IO_Driver_address_table;
|
|||||||
* This routine performs the initialization necessary for this manager.
|
* This routine performs the initialization necessary for this manager.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _IO_Manager_initialization(
|
void _IO_Manager_initialization(void);
|
||||||
rtems_driver_address_table *driver_table,
|
|
||||||
uint32_t drivers_in_table,
|
|
||||||
uint32_t number_of_drivers
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rtems_io_register_driver
|
* rtems_io_register_driver
|
||||||
|
|||||||
@@ -111,67 +111,37 @@ void rtems_initialize_data_structures(void)
|
|||||||
* Before this is called, we are not allowed to allocate memory
|
* Before this is called, we are not allowed to allocate memory
|
||||||
* from the Workspace because it is not initialized.
|
* from the Workspace because it is not initialized.
|
||||||
*/
|
*/
|
||||||
_Workspace_Handler_initialization(
|
_Workspace_Handler_initialization();
|
||||||
Configuration.work_space_start,
|
|
||||||
Configuration.work_space_size
|
|
||||||
);
|
|
||||||
|
|
||||||
_User_extensions_Handler_initialization(
|
|
||||||
Configuration.number_of_initial_extensions,
|
|
||||||
Configuration.User_extension_table
|
|
||||||
);
|
|
||||||
|
|
||||||
|
_User_extensions_Handler_initialization();
|
||||||
_ISR_Handler_initialization();
|
_ISR_Handler_initialization();
|
||||||
|
_Objects_Handler_initialization();
|
||||||
_Objects_Handler_initialization(
|
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
|
||||||
_Configuration_MP_table->node,
|
|
||||||
_Configuration_MP_table->maximum_nodes,
|
|
||||||
_Configuration_MP_table->maximum_global_objects
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
_Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize the internal allocator Mutex
|
* Initialize the internal support API and allocator Mutex
|
||||||
*/
|
*/
|
||||||
|
_Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects;
|
||||||
|
|
||||||
_API_Mutex_Initialization( 1 );
|
_API_Mutex_Initialization( 1 );
|
||||||
_API_Mutex_Allocate( &_RTEMS_Allocator_Mutex );
|
_API_Mutex_Allocate( &_RTEMS_Allocator_Mutex );
|
||||||
|
|
||||||
_Priority_Handler_initialization();
|
_Priority_Handler_initialization();
|
||||||
|
|
||||||
_Watchdog_Handler_initialization();
|
_Watchdog_Handler_initialization();
|
||||||
|
_TOD_Handler_initialization();
|
||||||
|
|
||||||
_TOD_Handler_initialization( Configuration.microseconds_per_tick );
|
_Thread_Handler_initialization();
|
||||||
|
|
||||||
_Thread_Handler_initialization(
|
|
||||||
Configuration.ticks_per_timeslice,
|
|
||||||
Configuration.maximum_extensions
|
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
|
||||||
,
|
|
||||||
_Configuration_MP_table->maximum_proxies
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
#if defined(RTEMS_MULTIPROCESSING)
|
||||||
_MPCI_Handler_initialization(
|
_MPCI_Handler_initialization( RTEMS_TIMEOUT );
|
||||||
_Configuration_MP_table->User_mpci_table,
|
|
||||||
RTEMS_TIMEOUT
|
|
||||||
);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* MANAGERS */
|
/* MANAGERS */
|
||||||
|
|
||||||
_RTEMS_API_Initialize();
|
_RTEMS_API_Initialize();
|
||||||
|
|
||||||
_Extension_Manager_initialization( Configuration.maximum_extensions );
|
_Extension_Manager_initialization();
|
||||||
|
|
||||||
_IO_Manager_initialization(
|
_IO_Manager_initialization();
|
||||||
Configuration.Device_driver_table,
|
|
||||||
Configuration.number_of_device_drivers,
|
|
||||||
Configuration.maximum_drivers
|
|
||||||
);
|
|
||||||
|
|
||||||
#ifdef RTEMS_POSIX_API
|
#ifdef RTEMS_POSIX_API
|
||||||
_POSIX_API_Initialize();
|
_POSIX_API_Initialize();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Extension Manager
|
* Extension Manager
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-2007.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/system.h>
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/config.h>
|
||||||
#include <rtems/rtems/support.h>
|
#include <rtems/rtems/support.h>
|
||||||
#include <rtems/score/object.h>
|
#include <rtems/score/object.h>
|
||||||
#include <rtems/score/thread.h>
|
#include <rtems/score/thread.h>
|
||||||
@@ -27,21 +28,18 @@
|
|||||||
*
|
*
|
||||||
* This routine initializes all extension manager related data structures.
|
* This routine initializes all extension manager related data structures.
|
||||||
*
|
*
|
||||||
* Input parameters:
|
* Input parameters: NONE
|
||||||
* maximum_extensions - number of extensions to initialize
|
|
||||||
*
|
*
|
||||||
* Output parameters: NONE
|
* Output parameters: NONE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _Extension_Manager_initialization(
|
void _Extension_Manager_initialization(void)
|
||||||
uint32_t maximum_extensions
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
_Objects_Initialize_information(
|
_Objects_Initialize_information(
|
||||||
&_Extension_Information,
|
&_Extension_Information,
|
||||||
OBJECTS_CLASSIC_API, /* object API */
|
OBJECTS_CLASSIC_API, /* object API */
|
||||||
OBJECTS_RTEMS_EXTENSIONS,
|
OBJECTS_RTEMS_EXTENSIONS,
|
||||||
maximum_extensions,
|
Configuration.maximum_extensions,
|
||||||
sizeof( Extension_Control ),
|
sizeof( Extension_Control ),
|
||||||
false, /* true if the name is a string */
|
false, /* true if the name is a string */
|
||||||
RTEMS_MAXIMUM_NAME_LENGTH /* maximum length of an object name */
|
RTEMS_MAXIMUM_NAME_LENGTH /* maximum length of an object name */
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Input/Output Manager - Initialize Device Driver Subsystem
|
* Input/Output Manager - Initialize Device Driver Subsystem
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-2007.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/system.h>
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/config.h>
|
||||||
#include <rtems/io.h>
|
#include <rtems/io.h>
|
||||||
#include <rtems/score/isr.h>
|
#include <rtems/score/isr.h>
|
||||||
#include <rtems/score/thread.h>
|
#include <rtems/score/thread.h>
|
||||||
@@ -32,13 +33,16 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _IO_Manager_initialization(
|
void _IO_Manager_initialization(void)
|
||||||
rtems_driver_address_table *driver_table,
|
|
||||||
uint32_t drivers_in_table,
|
|
||||||
uint32_t number_of_drivers
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
uint32_t index;
|
uint32_t index;
|
||||||
|
rtems_driver_address_table *driver_table;
|
||||||
|
uint32_t drivers_in_table;
|
||||||
|
uint32_t number_of_drivers;
|
||||||
|
|
||||||
|
driver_table = Configuration.Device_driver_table;
|
||||||
|
drivers_in_table = Configuration.number_of_device_drivers;
|
||||||
|
number_of_drivers = Configuration.maximum_drivers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the user claims there are less drivers than are actually in
|
* If the user claims there are less drivers than are actually in
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT (c) 1989-2006.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -197,14 +197,10 @@ SCORE_EXTERN MPCI_Packet_processor
|
|||||||
/**
|
/**
|
||||||
* This routine performs the initialization necessary for this handler.
|
* This routine performs the initialization necessary for this handler.
|
||||||
*
|
*
|
||||||
* @param[in] users_mpci_table is a pointer to the application configured
|
|
||||||
* MPCI Table. This table contains pointers to the MPCI Layers
|
|
||||||
* entry points.
|
|
||||||
* @param[in] timeout_status is the value which should be returned to
|
* @param[in] timeout_status is the value which should be returned to
|
||||||
* blocking threads when they timeout on a remote operation.
|
* blocking threads when they timeout on a remote operation.
|
||||||
*/
|
*/
|
||||||
void _MPCI_Handler_initialization(
|
void _MPCI_Handler_initialization(
|
||||||
MPCI_Control *users_mpci_table,
|
|
||||||
uint32_t timeout_status
|
uint32_t timeout_status
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -434,26 +434,10 @@ SCORE_EXTERN Objects_Information
|
|||||||
*/
|
*/
|
||||||
#define OBJECTS_ID_FINAL ((Objects_Id)~0)
|
#define OBJECTS_ID_FINAL ((Objects_Id)~0)
|
||||||
|
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
|
||||||
/**
|
|
||||||
* This function performs the initialization necessary for this handler.
|
|
||||||
*
|
|
||||||
* @param[in] node indicates the identifying number of this node.
|
|
||||||
* @param[in] maximum_nodes is the maximum number of nodes in this system.
|
|
||||||
* @param[in] maximum_global_objects is maximum number of global objects
|
|
||||||
* concurrently offered in the system.
|
|
||||||
*/
|
|
||||||
void _Objects_Handler_initialization(
|
|
||||||
uint32_t node,
|
|
||||||
uint32_t maximum_nodes,
|
|
||||||
uint32_t maximum_global_objects
|
|
||||||
);
|
|
||||||
#else
|
|
||||||
/**
|
/**
|
||||||
* This function performs the initialization necessary for this handler.
|
* This function performs the initialization necessary for this handler.
|
||||||
*/
|
*/
|
||||||
void _Objects_Handler_initialization(void);
|
void _Objects_Handler_initialization(void);
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function extends an object class information record.
|
* This function extends an object class information record.
|
||||||
|
|||||||
@@ -506,21 +506,14 @@ SCORE_EXTERN struct _reent **_Thread_libc_reent;
|
|||||||
/**
|
/**
|
||||||
* This routine performs the initialization necessary for this handler.
|
* This routine performs the initialization necessary for this handler.
|
||||||
*/
|
*/
|
||||||
void _Thread_Handler_initialization (
|
void _Thread_Handler_initialization(void);
|
||||||
uint32_t ticks_per_timeslice,
|
|
||||||
uint32_t maximum_extensions
|
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
|
||||||
,
|
|
||||||
uint32_t maximum_proxies
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This routine creates the idle thread.
|
* This routine creates the idle thread.
|
||||||
*
|
*
|
||||||
* @warning No thread should be created before this one.
|
* @warning No thread should be created before this one.
|
||||||
*/
|
*/
|
||||||
void _Thread_Create_idle( void );
|
void _Thread_Create_idle(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This routine initiates multitasking. It is invoked only as
|
* This routine initiates multitasking. It is invoked only as
|
||||||
|
|||||||
@@ -144,9 +144,7 @@ SCORE_EXTERN Timestamp_Control _TOD_Uptime;
|
|||||||
*
|
*
|
||||||
* This routine performs the initialization necessary for this handler.
|
* This routine performs the initialization necessary for this handler.
|
||||||
*/
|
*/
|
||||||
void _TOD_Handler_initialization(
|
void _TOD_Handler_initialization(void);
|
||||||
uint32_t microseconds_per_tick
|
|
||||||
);
|
|
||||||
|
|
||||||
/** @brief _TOD_Set
|
/** @brief _TOD_Set
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT (c) 1989-2006.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -205,14 +205,8 @@ SCORE_EXTERN Chain_Control _User_extensions_Switches_list;
|
|||||||
/** @brief User extensions Handler Initialization
|
/** @brief User extensions Handler Initialization
|
||||||
*
|
*
|
||||||
* This routine performs the initialization necessary for this handler.
|
* This routine performs the initialization necessary for this handler.
|
||||||
*
|
|
||||||
* @param[in] number_of_extensions is the number of extensions
|
|
||||||
* @param[in] initial_extensions is the initial extension set
|
|
||||||
*/
|
*/
|
||||||
void _User_extensions_Handler_initialization (
|
void _User_extensions_Handler_initialization(void);
|
||||||
uint32_t number_of_extensions,
|
|
||||||
User_extensions_Table *initial_extensions
|
|
||||||
);
|
|
||||||
|
|
||||||
/** @brief User extensions Add to API extension set
|
/** @brief User extensions Add to API extension set
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT (c) 1989-2006.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -45,15 +45,8 @@ SCORE_EXTERN Heap_Control _Workspace_Area; /* executive heap header */
|
|||||||
/** @brief Workspace Handler Initialization
|
/** @brief Workspace Handler Initialization
|
||||||
*
|
*
|
||||||
* This routine performs the initialization necessary for this handler.
|
* This routine performs the initialization necessary for this handler.
|
||||||
*
|
|
||||||
* @param[in] starting_address is the base address of the RTEMS Executive
|
|
||||||
* Workspace
|
|
||||||
* @param[in] size is the number of bytes in the RTEMS Executive Workspace
|
|
||||||
*/
|
*/
|
||||||
void _Workspace_Handler_initialization(
|
void _Workspace_Handler_initialization(void);
|
||||||
void *starting_address,
|
|
||||||
size_t size
|
|
||||||
);
|
|
||||||
|
|
||||||
/** @brief Allocate Memory from Workspace
|
/** @brief Allocate Memory from Workspace
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* Time of Day (TOD) Handler
|
* Time of Day (TOD) Handler
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* COPYRIGHT (c) 1989-2007.
|
/* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -28,15 +28,12 @@
|
|||||||
*
|
*
|
||||||
* This routine initializes the time of day handler.
|
* This routine initializes the time of day handler.
|
||||||
*
|
*
|
||||||
* Input parameters:
|
* Input parameters: NONE
|
||||||
* microseconds_per_tick - microseconds between clock ticks
|
|
||||||
*
|
*
|
||||||
* Output parameters: NONE
|
* Output parameters: NONE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _TOD_Handler_initialization(
|
void _TOD_Handler_initialization(void)
|
||||||
uint32_t microseconds_per_tick
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
/* POSIX format TOD (timespec) */
|
/* POSIX format TOD (timespec) */
|
||||||
_Timestamp_Set( &_TOD_Now, TOD_SECONDS_1970_THROUGH_1988, 0 );
|
_Timestamp_Set( &_TOD_Now, TOD_SECONDS_1970_THROUGH_1988, 0 );
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* Multiprocessing Communications Interface (MPCI) Handler
|
* Multiprocessing Communications Interface (MPCI) Handler
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-2007.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
#include <rtems/score/mpci.h>
|
#include <rtems/score/mpci.h>
|
||||||
#include <rtems/score/mppkt.h>
|
#include <rtems/score/mppkt.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <rtems/config.h>
|
||||||
#include <rtems/score/cpu.h>
|
#include <rtems/score/cpu.h>
|
||||||
#include <rtems/score/interr.h>
|
#include <rtems/score/interr.h>
|
||||||
#include <rtems/score/states.h>
|
#include <rtems/score/states.h>
|
||||||
@@ -46,11 +47,13 @@ CORE_semaphore_Control _MPCI_Semaphore;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void _MPCI_Handler_initialization(
|
void _MPCI_Handler_initialization(
|
||||||
MPCI_Control *users_mpci_table,
|
|
||||||
uint32_t timeout_status
|
uint32_t timeout_status
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
CORE_semaphore_Attributes attributes;
|
CORE_semaphore_Attributes attributes;
|
||||||
|
MPCI_Control *users_mpci_table;
|
||||||
|
|
||||||
|
users_mpci_table = _Configuration_MP_table->User_mpci_table;
|
||||||
|
|
||||||
if ( _System_state_Is_multiprocessing && !users_mpci_table )
|
if ( _System_state_Is_multiprocessing && !users_mpci_table )
|
||||||
_Internal_error_Occurred(
|
_Internal_error_Occurred(
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* Object Handler
|
* Object Handler
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-2007.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/system.h>
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/config.h>
|
||||||
#include <rtems/score/address.h>
|
#include <rtems/score/address.h>
|
||||||
#include <rtems/score/chain.h>
|
#include <rtems/score/chain.h>
|
||||||
#include <rtems/score/object.h>
|
#include <rtems/score/object.h>
|
||||||
@@ -34,24 +35,22 @@
|
|||||||
*
|
*
|
||||||
* This routine initializes the object handler.
|
* This routine initializes the object handler.
|
||||||
*
|
*
|
||||||
* Input parameters:
|
* Input parameters: NONE
|
||||||
* node - local node
|
|
||||||
* maximum_nodes - number of nodes in the system
|
|
||||||
* maximum_global_objects - number of configured global objects
|
|
||||||
*
|
*
|
||||||
* Output parameters: NONE
|
* Output parameters: NONE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
|
||||||
void _Objects_Handler_initialization(
|
|
||||||
uint32_t node,
|
|
||||||
uint32_t maximum_nodes,
|
|
||||||
uint32_t maximum_global_objects )
|
|
||||||
#else
|
|
||||||
void _Objects_Handler_initialization(void)
|
void _Objects_Handler_initialization(void)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
#if defined(RTEMS_MULTIPROCESSING)
|
||||||
|
uint32_t node;
|
||||||
|
uint32_t maximum_nodes;
|
||||||
|
uint32_t maximum_global_objects;
|
||||||
|
|
||||||
|
node = _Configuration_MP_table->node;
|
||||||
|
maximum_nodes = _Configuration_MP_table->maximum_nodes;
|
||||||
|
maximum_global_objects = _Configuration_MP_table->maximum_global_objects;
|
||||||
|
|
||||||
if ( node < 1 || node > maximum_nodes )
|
if ( node < 1 || node > maximum_nodes )
|
||||||
_Internal_error_Occurred(
|
_Internal_error_Occurred(
|
||||||
INTERNAL_ERROR_CORE,
|
INTERNAL_ERROR_CORE,
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/system.h>
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/config.h>
|
||||||
#include <rtems/score/apiext.h>
|
#include <rtems/score/apiext.h>
|
||||||
#include <rtems/score/context.h>
|
#include <rtems/score/context.h>
|
||||||
#include <rtems/score/interr.h>
|
#include <rtems/score/interr.h>
|
||||||
@@ -37,24 +38,25 @@
|
|||||||
*
|
*
|
||||||
* This routine initializes all thread manager related data structures.
|
* This routine initializes all thread manager related data structures.
|
||||||
*
|
*
|
||||||
* Input parameters:
|
* Input parameters: NONE
|
||||||
* ticks_per_timeslice - clock ticks per quantum
|
|
||||||
* maximum_proxies - number of proxies to initialize
|
|
||||||
*
|
*
|
||||||
* Output parameters: NONE
|
* Output parameters: NONE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _Thread_Handler_initialization(
|
void _Thread_Handler_initialization(void)
|
||||||
uint32_t ticks_per_timeslice,
|
|
||||||
uint32_t maximum_extensions
|
|
||||||
#if defined(RTEMS_MULTIPROCESSING)
|
|
||||||
,
|
|
||||||
uint32_t maximum_proxies
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
uint32_t index;
|
uint32_t index;
|
||||||
|
uint32_t ticks_per_timeslice;
|
||||||
|
uint32_t maximum_extensions;
|
||||||
|
#if defined(RTEMS_MULTIPROCESSING)
|
||||||
|
uint32_t maximum_proxies;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ticks_per_timeslice = Configuration.ticks_per_timeslice;
|
||||||
|
maximum_extensions = Configuration.maximum_extensions;
|
||||||
|
#if defined(RTEMS_MULTIPROCESSING)
|
||||||
|
maximum_proxies = _Configuration_MP_table->maximum_proxies;
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* BOTH stacks hooks must be set or both must be NULL.
|
* BOTH stacks hooks must be set or both must be NULL.
|
||||||
* Do not allow mixture.
|
* Do not allow mixture.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* COPYRIGHT (c) 1989-2007.
|
* COPYRIGHT (c) 1989-2008.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
*
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
@@ -14,6 +14,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/system.h>
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/config.h>
|
||||||
#include <rtems/score/userext.h>
|
#include <rtems/score/userext.h>
|
||||||
#include <rtems/score/wkspace.h>
|
#include <rtems/score/wkspace.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -22,13 +23,15 @@
|
|||||||
* This routine performs the initialization necessary for this handler.
|
* This routine performs the initialization necessary for this handler.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void _User_extensions_Handler_initialization (
|
void _User_extensions_Handler_initialization(void)
|
||||||
uint32_t number_of_extensions,
|
|
||||||
User_extensions_Table *initial_extensions
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
User_extensions_Control *extension;
|
User_extensions_Control *extension;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
|
uint32_t number_of_extensions;
|
||||||
|
User_extensions_Table *initial_extensions;
|
||||||
|
|
||||||
|
number_of_extensions = Configuration.number_of_initial_extensions;
|
||||||
|
initial_extensions = Configuration.User_extension_table;
|
||||||
|
|
||||||
_Chain_Initialize_empty( &_User_extensions_List );
|
_Chain_Initialize_empty( &_User_extensions_List );
|
||||||
_Chain_Initialize_empty( &_User_extensions_Switches_list );
|
_Chain_Initialize_empty( &_User_extensions_Switches_list );
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <rtems/system.h>
|
#include <rtems/system.h>
|
||||||
|
#include <rtems/config.h>
|
||||||
#include <rtems/score/wkspace.h>
|
#include <rtems/score/wkspace.h>
|
||||||
#include <rtems/score/interr.h>
|
#include <rtems/score/interr.h>
|
||||||
#include <rtems/config.h>
|
#include <rtems/config.h>
|
||||||
@@ -25,12 +26,14 @@
|
|||||||
/*
|
/*
|
||||||
* _Workspace_Handler_initialization
|
* _Workspace_Handler_initialization
|
||||||
*/
|
*/
|
||||||
void _Workspace_Handler_initialization(
|
void _Workspace_Handler_initialization(void)
|
||||||
void *starting_address,
|
|
||||||
size_t size
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
uint32_t memory_available;
|
uint32_t memory_available;
|
||||||
|
void *starting_address;
|
||||||
|
size_t size;
|
||||||
|
|
||||||
|
starting_address = Configuration.work_space_start;
|
||||||
|
size = Configuration.work_space_size;
|
||||||
|
|
||||||
if ( !starting_address || !_Addresses_Is_aligned( starting_address ) )
|
if ( !starting_address || !_Addresses_Is_aligned( starting_address ) )
|
||||||
_Internal_error_Occurred(
|
_Internal_error_Occurred(
|
||||||
|
|||||||
Reference in New Issue
Block a user