From 263f4beceae0ec5602cb41e792c25ebe3ec49c97 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 7 Apr 2014 14:50:37 +0200 Subject: score: Statically initialize IO manager This simplifies the RTEMS initialization and helps to avoid a memory overhead. The workspace demands of the IO manager were not included in the workspace size estimate. This is also fixed as a side-effect. Update documentation and move "Specifying Application Defined Device Driver Table" to the section end. This sub-section is not that important for the user. Mentioning this at the beginning may lead to confusion. --- cpukit/sapi/src/io.c | 56 ---------------------------------------------------- 1 file changed, 56 deletions(-) (limited to 'cpukit/sapi/src/io.c') diff --git a/cpukit/sapi/src/io.c b/cpukit/sapi/src/io.c index 99da902ccf..c14f5e760e 100644 --- a/cpukit/sapi/src/io.c +++ b/cpukit/sapi/src/io.c @@ -19,63 +19,7 @@ #include "config.h" #endif -#include -#include #include -#include -#include -#include - -#include - -void _IO_Manager_initialization(void) -{ - uint32_t index; - rtems_driver_address_table *driver_table; - uint32_t drivers_in_table; - uint32_t number_of_drivers; - - driver_table = rtems_configuration_get_device_driver_table(); - drivers_in_table = rtems_configuration_get_number_of_device_drivers(); - number_of_drivers = rtems_configuration_get_maximum_drivers(); - - /* - * If the user claims there are less drivers than are actually in - * the table, then let's just go with the table's count. - */ - if ( number_of_drivers <= drivers_in_table ) - number_of_drivers = drivers_in_table; - - /* - * If the maximum number of driver is the same as the number in the - * table, then we do not have to copy the driver table. They can't - * register any dynamically. - */ - if ( number_of_drivers == drivers_in_table ) { - _IO_Driver_address_table = driver_table; - _IO_Number_of_drivers = number_of_drivers; - return; - } - - /* - * The application requested extra slots in the driver table, so we - * have to allocate a new driver table and copy theirs to it. - */ - - _IO_Driver_address_table = (rtems_driver_address_table *) - _Workspace_Allocate_or_fatal_error( - sizeof( rtems_driver_address_table ) * ( number_of_drivers ) - ); - _IO_Number_of_drivers = number_of_drivers; - - memset( - _IO_Driver_address_table, 0, - sizeof( rtems_driver_address_table ) * ( number_of_drivers ) - ); - - for ( index = 0 ; index < drivers_in_table ; index++ ) - _IO_Driver_address_table[index] = driver_table[index]; -} void _IO_Initialize_all_drivers( void ) { -- cgit v1.2.3