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>
|
||||
|
||||
* itron/include/rtems/itron/config.h,
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* + get ID of user extension set
|
||||
* + delete user extension set
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2007.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
void _Extension_Manager_initialization(
|
||||
uint32_t maximum_extensions
|
||||
);
|
||||
void _Extension_Manager_initialization(void);
|
||||
|
||||
/*
|
||||
* rtems_extension_create
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
void _IO_Manager_initialization(
|
||||
rtems_driver_address_table *driver_table,
|
||||
uint32_t drivers_in_table,
|
||||
uint32_t number_of_drivers
|
||||
);
|
||||
void _IO_Manager_initialization(void);
|
||||
|
||||
/*
|
||||
* 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
|
||||
* from the Workspace because it is not initialized.
|
||||
*/
|
||||
_Workspace_Handler_initialization(
|
||||
Configuration.work_space_start,
|
||||
Configuration.work_space_size
|
||||
);
|
||||
|
||||
_User_extensions_Handler_initialization(
|
||||
Configuration.number_of_initial_extensions,
|
||||
Configuration.User_extension_table
|
||||
);
|
||||
_Workspace_Handler_initialization();
|
||||
|
||||
_User_extensions_Handler_initialization();
|
||||
_ISR_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;
|
||||
_Objects_Handler_initialization();
|
||||
|
||||
/*
|
||||
* 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_Allocate( &_RTEMS_Allocator_Mutex );
|
||||
|
||||
_Priority_Handler_initialization();
|
||||
|
||||
_Watchdog_Handler_initialization();
|
||||
_TOD_Handler_initialization();
|
||||
|
||||
_TOD_Handler_initialization( Configuration.microseconds_per_tick );
|
||||
|
||||
_Thread_Handler_initialization(
|
||||
Configuration.ticks_per_timeslice,
|
||||
Configuration.maximum_extensions
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
,
|
||||
_Configuration_MP_table->maximum_proxies
|
||||
#endif
|
||||
);
|
||||
_Thread_Handler_initialization();
|
||||
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
_MPCI_Handler_initialization(
|
||||
_Configuration_MP_table->User_mpci_table,
|
||||
RTEMS_TIMEOUT
|
||||
);
|
||||
_MPCI_Handler_initialization( RTEMS_TIMEOUT );
|
||||
#endif
|
||||
|
||||
/* MANAGERS */
|
||||
|
||||
_RTEMS_API_Initialize();
|
||||
|
||||
_Extension_Manager_initialization( Configuration.maximum_extensions );
|
||||
_Extension_Manager_initialization();
|
||||
|
||||
_IO_Manager_initialization(
|
||||
Configuration.Device_driver_table,
|
||||
Configuration.number_of_device_drivers,
|
||||
Configuration.maximum_drivers
|
||||
);
|
||||
_IO_Manager_initialization();
|
||||
|
||||
#ifdef RTEMS_POSIX_API
|
||||
_POSIX_API_Initialize();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Extension Manager
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2007.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -16,6 +16,7 @@
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/score/thread.h>
|
||||
@@ -27,21 +28,18 @@
|
||||
*
|
||||
* This routine initializes all extension manager related data structures.
|
||||
*
|
||||
* Input parameters:
|
||||
* maximum_extensions - number of extensions to initialize
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*/
|
||||
|
||||
void _Extension_Manager_initialization(
|
||||
uint32_t maximum_extensions
|
||||
)
|
||||
void _Extension_Manager_initialization(void)
|
||||
{
|
||||
_Objects_Initialize_information(
|
||||
&_Extension_Information,
|
||||
OBJECTS_CLASSIC_API, /* object API */
|
||||
OBJECTS_RTEMS_EXTENSIONS,
|
||||
maximum_extensions,
|
||||
Configuration.maximum_extensions,
|
||||
sizeof( Extension_Control ),
|
||||
false, /* true if the name is a string */
|
||||
RTEMS_MAXIMUM_NAME_LENGTH /* maximum length of an object name */
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Input/Output Manager - Initialize Device Driver Subsystem
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2007.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -16,6 +16,7 @@
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/io.h>
|
||||
#include <rtems/score/isr.h>
|
||||
#include <rtems/score/thread.h>
|
||||
@@ -32,13 +33,16 @@
|
||||
*
|
||||
*/
|
||||
|
||||
void _IO_Manager_initialization(
|
||||
rtems_driver_address_table *driver_table,
|
||||
uint32_t drivers_in_table,
|
||||
uint32_t number_of_drivers
|
||||
)
|
||||
void _IO_Manager_initialization(void)
|
||||
{
|
||||
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
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-2006.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -197,15 +197,11 @@ SCORE_EXTERN MPCI_Packet_processor
|
||||
/**
|
||||
* 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
|
||||
* blocking threads when they timeout on a remote operation.
|
||||
*/
|
||||
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)
|
||||
|
||||
#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.
|
||||
*/
|
||||
void _Objects_Handler_initialization(void);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
void _Thread_Handler_initialization (
|
||||
uint32_t ticks_per_timeslice,
|
||||
uint32_t maximum_extensions
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
,
|
||||
uint32_t maximum_proxies
|
||||
#endif
|
||||
);
|
||||
void _Thread_Handler_initialization(void);
|
||||
|
||||
/**
|
||||
* This routine creates the idle thread.
|
||||
*
|
||||
* @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
|
||||
|
||||
@@ -144,9 +144,7 @@ SCORE_EXTERN Timestamp_Control _TOD_Uptime;
|
||||
*
|
||||
* This routine performs the initialization necessary for this handler.
|
||||
*/
|
||||
void _TOD_Handler_initialization(
|
||||
uint32_t microseconds_per_tick
|
||||
);
|
||||
void _TOD_Handler_initialization(void);
|
||||
|
||||
/** @brief _TOD_Set
|
||||
*
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-2006.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* 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
|
||||
*
|
||||
* 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 (
|
||||
uint32_t number_of_extensions,
|
||||
User_extensions_Table *initial_extensions
|
||||
);
|
||||
void _User_extensions_Handler_initialization(void);
|
||||
|
||||
/** @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).
|
||||
*
|
||||
* 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
|
||||
*
|
||||
* 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 *starting_address,
|
||||
size_t size
|
||||
);
|
||||
void _Workspace_Handler_initialization(void);
|
||||
|
||||
/** @brief Allocate Memory from Workspace
|
||||
*
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Time of Day (TOD) Handler
|
||||
*/
|
||||
|
||||
/* COPYRIGHT (c) 1989-2007.
|
||||
/* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -28,15 +28,12 @@
|
||||
*
|
||||
* This routine initializes the time of day handler.
|
||||
*
|
||||
* Input parameters:
|
||||
* microseconds_per_tick - microseconds between clock ticks
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*/
|
||||
|
||||
void _TOD_Handler_initialization(
|
||||
uint32_t microseconds_per_tick
|
||||
)
|
||||
void _TOD_Handler_initialization(void)
|
||||
{
|
||||
/* POSIX format TOD (timespec) */
|
||||
_Timestamp_Set( &_TOD_Now, TOD_SECONDS_1970_THROUGH_1988, 0 );
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Multiprocessing Communications Interface (MPCI) Handler
|
||||
*
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2007.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <rtems/score/mpci.h>
|
||||
#include <rtems/score/mppkt.h>
|
||||
#endif
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/score/cpu.h>
|
||||
#include <rtems/score/interr.h>
|
||||
#include <rtems/score/states.h>
|
||||
@@ -46,11 +47,13 @@ CORE_semaphore_Control _MPCI_Semaphore;
|
||||
*/
|
||||
|
||||
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 )
|
||||
_Internal_error_Occurred(
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Object Handler
|
||||
*
|
||||
*
|
||||
* COPYRIGHT (c) 1989-2007.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -17,6 +17,7 @@
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/score/address.h>
|
||||
#include <rtems/score/chain.h>
|
||||
#include <rtems/score/object.h>
|
||||
@@ -34,24 +35,22 @@
|
||||
*
|
||||
* This routine initializes the object handler.
|
||||
*
|
||||
* Input parameters:
|
||||
* node - local node
|
||||
* maximum_nodes - number of nodes in the system
|
||||
* maximum_global_objects - number of configured global objects
|
||||
* Input 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)
|
||||
#endif
|
||||
{
|
||||
#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 )
|
||||
_Internal_error_Occurred(
|
||||
INTERNAL_ERROR_CORE,
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/score/apiext.h>
|
||||
#include <rtems/score/context.h>
|
||||
#include <rtems/score/interr.h>
|
||||
@@ -37,24 +38,25 @@
|
||||
*
|
||||
* This routine initializes all thread manager related data structures.
|
||||
*
|
||||
* Input parameters:
|
||||
* ticks_per_timeslice - clock ticks per quantum
|
||||
* maximum_proxies - number of proxies to initialize
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*/
|
||||
|
||||
void _Thread_Handler_initialization(
|
||||
uint32_t ticks_per_timeslice,
|
||||
uint32_t maximum_extensions
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
,
|
||||
uint32_t maximum_proxies
|
||||
#endif
|
||||
)
|
||||
void _Thread_Handler_initialization(void)
|
||||
{
|
||||
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.
|
||||
* Do not allow mixture.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-2007.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -14,6 +14,7 @@
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/score/userext.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <string.h>
|
||||
@@ -22,13 +23,15 @@
|
||||
* This routine performs the initialization necessary for this handler.
|
||||
*/
|
||||
|
||||
void _User_extensions_Handler_initialization (
|
||||
uint32_t number_of_extensions,
|
||||
User_extensions_Table *initial_extensions
|
||||
)
|
||||
void _User_extensions_Handler_initialization(void)
|
||||
{
|
||||
User_extensions_Control *extension;
|
||||
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_Switches_list );
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/score/interr.h>
|
||||
#include <rtems/config.h>
|
||||
@@ -25,12 +26,14 @@
|
||||
/*
|
||||
* _Workspace_Handler_initialization
|
||||
*/
|
||||
void _Workspace_Handler_initialization(
|
||||
void *starting_address,
|
||||
size_t size
|
||||
)
|
||||
void _Workspace_Handler_initialization(void)
|
||||
{
|
||||
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 ) )
|
||||
_Internal_error_Occurred(
|
||||
|
||||
Reference in New Issue
Block a user