diff options
Diffstat (limited to 'cpukit/sapi')
-rw-r--r-- | cpukit/sapi/include/confdefs.h | 377 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/config.h | 94 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/extension.h | 136 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/fatal.h | 49 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/init.h | 110 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/io.h | 244 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/mptables.h | 29 | ||||
-rw-r--r-- | cpukit/sapi/inline/rtems/extension.inl | 91 | ||||
-rw-r--r-- | cpukit/sapi/macros/rtems/extension.inl | 58 | ||||
-rw-r--r-- | cpukit/sapi/src/debug.c | 62 | ||||
-rw-r--r-- | cpukit/sapi/src/exinit.c | 285 | ||||
-rw-r--r-- | cpukit/sapi/src/extension.c | 165 | ||||
-rw-r--r-- | cpukit/sapi/src/fatal.c | 38 | ||||
-rw-r--r-- | cpukit/sapi/src/io.c | 345 | ||||
-rw-r--r-- | cpukit/sapi/src/rtemsapi.c | 89 |
15 files changed, 0 insertions, 2172 deletions
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h deleted file mode 100644 index 83f6c3ccd1..0000000000 --- a/cpukit/sapi/include/confdefs.h +++ /dev/null @@ -1,377 +0,0 @@ -/* confdefs.h - * - * This include file contains the configuration table template that will - * be used by the single processor tests to define its default configuration - * parameters. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __CONFIGURATION_TEMPLATE_h -#define __CONFIGURATION_TEMPLATE_h - -#ifdef __cplusplus -extern "C" { -#endif - - -extern rtems_initialization_tasks_table Initialization_tasks[]; -extern rtems_driver_address_table Device_drivers[]; -extern rtems_configuration_table Configuration; -extern rtems_multiprocessing_table Multiprocessing_configuration; - -/* - * Default User Initialization Task Table. This table guarantees that - * one user initialization table is defined. - */ - -#ifndef CONFIGURE_HAS_OWN_INIT_TASK_TABLE - -#ifndef CONFIGURE_INIT_TASK_NAME -#define CONFIGURE_INIT_TASK_NAME rtems_build_name( 'U', 'I', '1', ' ' ) -#endif - -#ifndef CONFIGURE_INIT_TASK_STACK_SIZE -#define CONFIGURE_INIT_TASK_STACK_SIZE RTEMS_MINIMUM_STACK_SIZE -#endif - -#ifndef CONFIGURE_INIT_TASK_PRIORITY -#define CONFIGURE_INIT_TASK_PRIORITY 1 -#endif - -#ifndef CONFIGURE_INIT_TASK_ATTRIBUTES -#define CONFIGURE_INIT_TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES -#endif - -#ifndef CONFIGURE_INIT_TASK_ENTRY_POINT -#define CONFIGURE_INIT_TASK_ENTRY_POINT Init -#endif - -#ifndef CONFIGURE_INIT_TASK_INITIAL_MODES -#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_NO_PREEMPT -#endif - -#ifndef CONFIGURE_INIT_TASK_ARGUMENTS -#define CONFIGURE_INIT_TASK_ARGUMENTS 0 -#endif - -#ifdef CONFIGURE_INIT -rtems_initialization_tasks_table Initialization_tasks[] = { - { CONFIGURE_INIT_TASK_NAME, - CONFIGURE_INIT_TASK_STACK_SIZE, - CONFIGURE_INIT_TASK_PRIORITY, - CONFIGURE_INIT_TASK_ATTRIBUTES, - CONFIGURE_INIT_TASK_ENTRY_POINT, - CONFIGURE_INIT_TASK_INITIAL_MODES, - CONFIGURE_INIT_TASK_ARGUMENTS - } -}; -#endif - -#endif - -/* - * Default Device Driver Table. Each driver needed by the test is explicitly - * choosen by that test. There is always a null driver entry. - */ - -#define NULL_DRIVER_TABLE_ENTRY \ - { NULL, NULL, NULL, NULL, NULL, NULL } - -#ifdef CONFIGURE_TEST_NEEDS_TIMER_DRIVER -#include <timerdrv.h> -#endif - -#ifdef CONFIGURE_TEST_NEEDS_STUB_DRIVER -#include <stubdrv.h> -#endif - -#ifndef CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE - -#ifdef CONFIGURE_INIT -rtems_driver_address_table Device_drivers[] = { -#ifdef CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER - CONSOLE_DRIVER_TABLE_ENTRY, -#endif -#ifdef CONFIGURE_TEST_NEEDS_CLOCK_DRIVER - CLOCK_DRIVER_TABLE_ENTRY, -#endif -#ifdef CONFIGURE_TEST_NEEDS_STUB_DRIVER - STUB_DRIVER_TABLE_ENTRY, -#endif - NULL_DRIVER_TABLE_ENTRY -}; -#endif - -#endif /* CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE */ - -/* - * Default the number of devices per device driver. This value may be - * overridden by the user. - */ - -#ifndef CONFIGURE_HAS_OWN_NUMBER_OF_DEVICES - -#ifndef CONFIGURE_MAXIMUM_DEVICES -#define CONFIGURE_MAXIMUM_DEVICES 20 -#endif - -#endif /* CONFIGURE_HAS_OWN_NUMBER_OF_DEVICES */ - -/* - * Default Configuration Table. This table contains the most values set in - * the RTEMS Test Suite. Each value may be overridden within each test to - * customize the environment. - */ - -#ifdef CONFIGURE_MPTEST -#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE - -#ifndef CONFIGURE_MP_NODE_NUMBER -#define CONFIGURE_MP_NODE_NUMBER NODE_NUMBER -#endif - -#ifndef CONFIGURE_MP_MAXIMUM_NODES -#define CONFIGURE_MP_MAXIMUM_NODES 2 -#endif - -#ifndef CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS -#define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS 32 -#endif - -#ifndef CONFIGURE_MP_MAXIMUM_PROXIES -#define CONFIGURE_MP_MAXIMUM_PROXIES 32 -#endif - -#ifndef CONFIGURE_MP_MPCI_TABLE_POINTER -#include <mpci.h> -#define CONFIGURE_MP_MPCI_TABLE_POINTER &MPCI_table -#endif - -#ifdef CONFIGURE_INIT -rtems_multiprocessing_table Multiprocessing_configuration = { - CONFIGURE_MP_NODE_NUMBER, /* local node number */ - CONFIGURE_MP_MAXIMUM_NODES, /* maximum # nodes in system */ - CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS, /* maximum # global objects */ - CONFIGURE_MP_MAXIMUM_PROXIES, /* maximum # proxies */ - CONFIGURE_MP_MPCI_TABLE_POINTER /* pointer to MPCI config table */ -}; -#endif - -#define CONFIGURE_MULTIPROCESSING_TABLE &Multiprocessing_configuration - -#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */ - -#else - -#define CONFIGURE_MULTIPROCESSING_TABLE NULL - -#endif /* CONFIGURE_MPTEST */ - -/* - * Default Configuration Table. This table contains the most values set in - * the RTEMS Test Suite. Each value may be overridden within each test to - * customize the environment. - */ - -#ifndef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE - -#ifndef CONFIGURE_EXECUTIVE_RAM_WORK_AREA -#define CONFIGURE_EXECUTIVE_RAM_WORK_AREA NULL -#endif - -#ifndef CONFIGURE_MAXIMUM_TASKS -#define CONFIGURE_MAXIMUM_TASKS 10 -#endif - -#ifndef CONFIGURE_MAXIMUM_TIMERS -#define CONFIGURE_MAXIMUM_TIMERS 0 -#endif - -#ifndef CONFIGURE_MAXIMUM_SEMAPHORES -#define CONFIGURE_MAXIMUM_SEMAPHORES 0 -#endif - -#ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES -#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 0 -#endif - -#ifndef CONFIGURE_MAXIMUM_PARTITIONS -#define CONFIGURE_MAXIMUM_PARTITIONS 0 -#endif - -#ifndef CONFIGURE_MAXIMUM_REGIONS -#define CONFIGURE_MAXIMUM_REGIONS 0 -#endif - -#ifndef CONFIGURE_MAXIMUM_PORTS -#define CONFIGURE_MAXIMUM_PORTS 0 -#endif - -#ifndef CONFIGURE_MAXIMUM_PERIODS -#define CONFIGURE_MAXIMUM_PERIODS 0 -#endif - -#ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS -#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 0 -#endif - -#ifndef CONFIGURE_MICROSECONDS_PER_TICK -#define CONFIGURE_MICROSECONDS_PER_TICK RTEMS_MILLISECONDS_TO_MICROSECONDS(10) -#endif - -#ifndef CONFIGURE_TICKS_PER_TIMESLICE -#define CONFIGURE_TICKS_PER_TIMESLICE 50 -#endif - -#ifndef CONFIGURE_INITIAL_EXTENSIONS -#define CONFIGURE_INITIAL_EXTENSIONS NULL -#endif - -/* - * Calculate the RAM size based on the maximum number of objects configured. - * The model is to estimate the memory required for each configured item, - * sum the memory requirements and insure that there is at least 32K greater - * than that for things not directly addressed such as: - * - * + stacks greater than minimum size - * + FP contexts - * + API areas (should be optional) - * + messages - * + object name and local pointer table overhead - * + per node memory requirements - * + executive fixed requirements (including at least internal threads - * and the Ready chains) - * - * NOTE: Eventually this should take into account some of the above. - * Basically, this is a "back of the envelope" estimate for - * memory requirements. It could be more accurate. - */ - -#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE - -#define CONFIGURE_OBJECT_TABLE_STUFF \ - ( sizeof(Objects_Control *) + sizeof(rtems_name *) + sizeof(rtems_name) ) - -#define CONFIGURE_MEMORY_FOR_TASKS(_tasks) \ - ((_tasks) * \ - ((sizeof(Thread_Control) + CONTEXT_FP_SIZE + \ - STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \ - CONFIGURE_OBJECT_TABLE_STUFF)) \ - ) - -#define CONFIGURE_MEMORY_FOR_TIMERS(_timers) \ - ((_timers) * ( sizeof(Timer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \ - ((_semaphores) * \ - ( sizeof(Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \ - ( (_queues) * \ - ( sizeof(Message_queue_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \ - ( (_partitions) * \ - ( sizeof(Partition_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_REGIONS(_regions) \ - ( (_regions) * \ - ( sizeof(Region_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_PORTS(_ports) \ - ( (_ports) * \ - ( sizeof(Dual_ported_memory_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_PERIODS(_periods) \ - ( (_periods) * \ - ( sizeof(Rate_monotonic_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \ - ( (_extensions) * \ - ( sizeof(Extension_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) ) - -#define CONFIGURE_MEMORY_FOR_DEVICES(_devices) \ - (((_devices) + 1) * ( sizeof(rtems_driver_name_t) ) ) - -#ifdef CONFIGURE_MPTEST - -#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE - -#define CONFIGURE_MEMORY_FOR_PROXIES(_proxies) \ - ( ((_proxies) + 1) * ( sizeof(Thread_Proxy_control) ) ) - -#define CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \ - ((_global_objects) * ( sizeof(Objects_MP_Control) ) ) - -#define CONFIGURE_MEMORY_FOR_MP \ - ( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \ - CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) \ - ) - -#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */ - -#else - -#define CONFIGURE_MEMORY_FOR_MP 0 - -#endif -#define CONFIGURE_EXECUTIVE_RAM_SIZE \ -(( CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS) + \ - CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \ - CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES) + \ - CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES) + \ - CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS) + \ - CONFIGURE_MEMORY_FOR_REGIONS(CONFIGURE_MAXIMUM_REGIONS) + \ - CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS) + \ - CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS) + \ - CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(CONFIGURE_MAXIMUM_USER_EXTENSIONS) + \ - CONFIGURE_MEMORY_FOR_DEVICES(CONFIGURE_MAXIMUM_DEVICES) + \ - CONFIGURE_MEMORY_FOR_MP + \ - (96*1024) \ -) & 0xffff8000) -#endif - -#ifdef CONFIGURE_INIT -rtems_configuration_table Configuration = { - CONFIGURE_EXECUTIVE_RAM_WORK_AREA, - CONFIGURE_EXECUTIVE_RAM_SIZE, - CONFIGURE_MAXIMUM_TASKS, - CONFIGURE_MAXIMUM_TIMERS, - CONFIGURE_MAXIMUM_SEMAPHORES, - CONFIGURE_MAXIMUM_MESSAGE_QUEUES, - CONFIGURE_MAXIMUM_PARTITIONS, - CONFIGURE_MAXIMUM_REGIONS, - CONFIGURE_MAXIMUM_PORTS, - CONFIGURE_MAXIMUM_PERIODS, - CONFIGURE_MAXIMUM_USER_EXTENSIONS, - CONFIGURE_MICROSECONDS_PER_TICK, - CONFIGURE_TICKS_PER_TIMESLICE, - sizeof (Initialization_tasks)/ - sizeof(rtems_initialization_tasks_table), /* number of init tasks */ - Initialization_tasks, /* init task(s) table */ - sizeof (Device_drivers)/ - sizeof(rtems_driver_address_table), /* number of device drivers */ - CONFIGURE_MAXIMUM_DEVICES, - Device_drivers, /* pointer to driver table */ - CONFIGURE_INITIAL_EXTENSIONS, /* pointer to initial extensions */ - CONFIGURE_MULTIPROCESSING_TABLE /* ptr to MP config table */ -}; -#endif - -#endif /* CONFIGURE_HAS_OWN_CONFIGURATION_TABLE */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h deleted file mode 100644 index 29f6005f58..0000000000 --- a/cpukit/sapi/include/rtems/config.h +++ /dev/null @@ -1,94 +0,0 @@ -/* config.h - * - * This include file contains the table of user defined configuration - * parameters. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_CONFIGURATION_h -#define __RTEMS_CONFIGURATION_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include <rtems/rtems/status.h> -#include <rtems/extension.h> -#include <rtems/io.h> -#include <rtems/score/mpci.h> -#include <rtems/rtems/types.h> -#include <rtems/rtems/tasks.h> - -/* - * The following records define the Multiprocessor Configuration - * Table. This table defines the multiprocessor system - * characteristics which must be known by RTEMS in a multiprocessor - * system. - */ - -typedef struct { - unsigned32 node; /* local node number */ - unsigned32 maximum_nodes; /* maximum # nodes in system */ - unsigned32 maximum_global_objects; /* maximum # global objects */ - unsigned32 maximum_proxies; /* maximum # proxies */ - MPCI_Control *User_mpci_table; /* pointer to MPCI table */ -} rtems_multiprocessing_table; - -/* - * The following records define the Configuration Table. The - * information contained in this table is required in all - * RTEMS systems, whether single or multiprocessor. This - * table primarily defines the following: - * - * + location and size of the RTEMS Workspace - * + required number of each object type - * + microseconds per clock tick - * + clock ticks per task timeslice - */ - -typedef struct { - void *work_space_start; - unsigned32 work_space_size; - unsigned32 maximum_tasks; - unsigned32 maximum_timers; - unsigned32 maximum_semaphores; - unsigned32 maximum_message_queues; - unsigned32 maximum_partitions; - unsigned32 maximum_regions; - unsigned32 maximum_ports; - unsigned32 maximum_periods; - unsigned32 maximum_extensions; - unsigned32 microseconds_per_tick; - unsigned32 ticks_per_timeslice; - unsigned32 number_of_initialization_tasks; - rtems_initialization_tasks_table *User_initialization_tasks_table; - unsigned32 number_of_device_drivers; - unsigned32 maximum_devices; - rtems_driver_address_table *Device_driver_table; - rtems_extensions_table *User_extension_table; - rtems_multiprocessing_table *User_multiprocessing_table; -} rtems_configuration_table; - -/* - * The following are provided strictly for the convenience of - * the user. They are not used in RTEMS itself. - */ - -EXTERN rtems_configuration_table *_Configuration_Table; -EXTERN rtems_multiprocessing_table *_Configuration_MP_table; - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/extension.h b/cpukit/sapi/include/rtems/extension.h deleted file mode 100644 index 8f46ed80dd..0000000000 --- a/cpukit/sapi/include/rtems/extension.h +++ /dev/null @@ -1,136 +0,0 @@ -/* extension.h - * - * This include file contains all the constants, structures, and - * prototypes associated with the User Extension Manager. This manager - * provides a mechanism for manipulating sets of user-defined extensions. - * - * Directives provided are: - * - * + create user extension set - * + get ID of user extension set - * + delete user extension set - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_EXTENSION_MANAGER_h -#define __RTEMS_EXTENSION_MANAGER_h - -#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 */ - -/* - * Extension related types - */ - -typedef User_extensions_routine rtems_extension; -typedef User_extensions_thread_create_extension rtems_task_create_extension; -typedef User_extensions_thread_delete_extension rtems_task_delete_extension; -typedef User_extensions_thread_start_extension rtems_task_start_extension; -typedef User_extensions_thread_restart_extension rtems_task_restart_extension; -typedef User_extensions_thread_switch_extension rtems_task_switch_extension; -typedef User_extensions_thread_begin_extension rtems_task_begin_extension; -typedef User_extensions_thread_exitted_extension rtems_task_exitted_extension; -typedef User_extensions_fatal_extension rtems_fatal_extension; - -typedef User_extensions_Table rtems_extensions_table; - -/* - * The following defines the information control block used to manage - * this class of objects. - */ - -EXTERN Objects_Information _Extension_Information; - -/* - * The following records define the control block used to manage - * each extension. - */ - -typedef struct { - Objects_Control Object; - User_extensions_Control Extension; -} Extension_Control; - -/* - * _Extension_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -); - -/* - * rtems_extension_create - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_create directive. The - * extension will have the name name. The entry points of the - * routines which constitute this extension set are in EXTENSION_TABLE. - * It returns the id of the created extension in ID. - */ - -rtems_status_code rtems_extension_create( - rtems_name name, - rtems_extensions_table *extension_table, - Objects_Id *id -); - -/* - * rtems_extension_ident - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_ident directive. - * This directive returns the extension ID associated with name. - * If more than one extension is named name, then the extension - * to which the ID belongs is arbitrary. - */ - -rtems_status_code rtems_extension_ident( - rtems_name name, - Objects_Id *id -); - -/* - * rtems_extension_delete - * - * DESCRIPTION: - * - * This routine implements the rtems_extension_delete directive. The - * extension indicated by ID is deleted. - */ - -rtems_status_code rtems_extension_delete( - Objects_Id id -); - -#ifndef __RTEMS_APPLICATION__ -#include <rtems/extension.inl> -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/fatal.h b/cpukit/sapi/include/rtems/fatal.h deleted file mode 100644 index f61b4183f3..0000000000 --- a/cpukit/sapi/include/rtems/fatal.h +++ /dev/null @@ -1,49 +0,0 @@ -/* fatal.h - * - * This include file contains constants and prototypes related - * to the Fatal Error Manager. This manager processes all fatal or - * irrecoverable errors. - * - * This manager provides directives to: - * - * + announce a fatal error has occurred - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_FATAL_h -#define __RTEMS_FATAL_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * rtems_fatal_error_occurred - * - * DESCRIPTION: - * - * This is the routine which implements the rtems_fatal_error_occurred - * directive. It is invoked when the application or RTEMS - * determines that a fatal error has occurred. - */ - -void volatile rtems_fatal_error_occurred( - unsigned32 the_error -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/init.h b/cpukit/sapi/include/rtems/init.h deleted file mode 100644 index e008c45ebc..0000000000 --- a/cpukit/sapi/include/rtems/init.h +++ /dev/null @@ -1,110 +0,0 @@ -/* init.h - * - * This include file contains all the constants and structures associated - * with the Initialization Manager. This manager is responsible for - * initializing RTEMS, creating and starting all configured initialization - * tasks, invoking the initialization routine for each user-supplied device - * driver, and initializing the optional multiprocessor layer. - * - * This manager provides directives to: - * - * + initialize the RTEMS executive - * + shutdown the RTEMS executive - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_INIT_h -#define __RTEMS_INIT_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include <rtems/rtems/types.h> -#include <rtems/config.h> -#include <rtems/rtems/intr.h> - -/* - * The following defines the default Multiprocessing Configuration - * Table. This table is used in a single processor system. - */ - -extern const rtems_multiprocessing_table - _Initialization_Default_multiprocessing_table; - -/* - * rtems_initialize_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_initialize_executive directive. This - * directive is invoked at system startup to initialize the RTEMS - * multitasking environment. - */ - -void rtems_initialize_executive( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_early - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -rtems_interrupt_level rtems_initialize_executive_early( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -); - -/* - * rtems_initialize_executive_late - * - * DESCRIPTION: - * - * This routine implements the early portion of rtems_initialize_executive - * directive up to the pretasking hook. This directive is invoked at system - * startup to initialize the RTEMS multitasking environment. - */ - -void rtems_initialize_executive_late( - rtems_interrupt_level bsp_level -); - -/* - * rtems_shutdown_executive - * - * DESCRIPTION: - * - * This routine implements the rtems_shutdown_executive directive. The - * invocation of this directive results in the RTEMS environment being - * shutdown and multitasking halted. From the application's perspective, - * invocation of this directive results in the rtems_initialize_executive - * directive exitting to the startup code which invoked it. - */ - -void rtems_shutdown_executive( - unsigned32 result -); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/io.h b/cpukit/sapi/include/rtems/io.h deleted file mode 100644 index a7af4df792..0000000000 --- a/cpukit/sapi/include/rtems/io.h +++ /dev/null @@ -1,244 +0,0 @@ -/* io.h - * - * This include file contains all the constants and structures associated - * with the Input/Output Manager. This manager provides a well defined - * mechanism for accessing device drivers and a structured methodology for - * organizing device drivers. - * - * Directives provided are: - * - * + initialize a device driver - * + open a device driver - * + close a device driver - * + read from a device driver - * + write to a device driver - * + special device services - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_IO_h -#define __RTEMS_IO_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include <rtems/rtems/status.h> - -/* - * - * The following defines the types for: - * - * + major and minor numbers - * + the return type of a device driver entry - * + a pointer to a device driver entry - * + an entry in the the Device Driver Address Table. Each entry in this - * table corresponds to an application provided device driver and - * defines the entry points for that device driver. - */ - -typedef unsigned32 rtems_device_major_number; -typedef unsigned32 rtems_device_minor_number; - -typedef rtems_status_code rtems_device_driver; - -typedef rtems_device_driver ( *rtems_device_driver_entry )( - rtems_device_major_number, - rtems_device_minor_number, - void * - ); - -typedef struct { - rtems_device_driver_entry initialization; /* initialization procedure */ - rtems_device_driver_entry open; /* open request procedure */ - rtems_device_driver_entry close; /* close request procedure */ - rtems_device_driver_entry read; /* read request procedure */ - rtems_device_driver_entry write; /* write request procedure */ - rtems_device_driver_entry control; /* special functions procedure */ -} rtems_driver_address_table; - -/* - * Table for the io device names - */ - -typedef struct { - char *device_name; - unsigned32 device_name_length; - rtems_device_major_number major; - rtems_device_minor_number minor; -} rtems_driver_name_t; - -/* - * This is the table of device names. - */ - -/* - * The following declare the data required to manage the Driver - * Address Table and Device Name Table. - */ - -EXTERN unsigned32 _IO_Number_of_drivers; -EXTERN rtems_driver_address_table *_IO_Driver_address_table; -EXTERN unsigned32 _IO_Number_of_devices; -EXTERN rtems_driver_name_t *_IO_Driver_name_table; - -/* - * _IO_Manager_initialization - * - * DESCRIPTION: - * - * This routine performs the initialization necessary for this manager. - */ - -void _IO_Manager_initialization( - rtems_driver_address_table *driver_table, - unsigned32 number_of_drivers, - unsigned32 number_of_devices -); - -/* - * rtems_io_register_name - * - * DESCRIPTION: - * - * Associate a name with a driver. - * - */ - -rtems_status_code rtems_io_register_name( - char *device_name, - rtems_device_major_number major, - rtems_device_minor_number minor -); - - -/* - * rtems_io_lookup_name - * - * DESCRIPTION: - * - * Find what driver "owns" this name - */ - -rtems_status_code rtems_io_lookup_name( - const char *name, - rtems_driver_name_t **device_info -); - - -/* - * rtems_io_initialize - * - * DESCRIPTION: - * - * This routine implements the rtems_io_initialize directive. It is invoked - * to initialize a device driver or an individual device. - */ - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -); - -/* - * rtems_io_open - * - * DESCRIPTION: - * - * This routine implements the rtems_io_open directive. It is invoked - * to open a device. - */ - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -); - -/* - * rtems_io_close - * - * DESCRIPTION: - * - * This routine implements the rtems_io_close directive. It is invoked - * to close a device. - */ - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -); - -/* - * rtems_io_read - * - * DESCRIPTION: - * - * This routine implements the rtems_io_read directive. It is invoked - * to read from a device. - */ - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -); - -/* - * rtems_io_write - * - * DESCRIPTION: - * - * This routine implements the rtems_io_write directive. It is invoked - * to write to a device. - */ - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -); - -/* - * rtems_io_control - * - * DESCRIPTION: - * - * This routine implements the rtems_io_control directive. It is invoked - * to perform a device specific operation on a device. - */ - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -); - -/* - * _IO_Initialize_all_drivers - * - * DESCRIPTION: - * - * This routine initializes all of the device drivers configured - * in the Device Driver Address Table. - */ - -void _IO_Initialize_all_drivers( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/include/rtems/mptables.h b/cpukit/sapi/include/rtems/mptables.h deleted file mode 100644 index b8e4c6de43..0000000000 --- a/cpukit/sapi/include/rtems/mptables.h +++ /dev/null @@ -1,29 +0,0 @@ -/* mptables.h - * - * This include file contains the executive's pre-initialized tables - * used in a multiprocessor configuration. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __RTEMS_MPTABLES_h -#define __RTEMS_MPTABLES_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/cpukit/sapi/inline/rtems/extension.inl b/cpukit/sapi/inline/rtems/extension.inl deleted file mode 100644 index c7757ff280..0000000000 --- a/cpukit/sapi/inline/rtems/extension.inl +++ /dev/null @@ -1,91 +0,0 @@ -/* extension.inl - * - * This file contains the static inline implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_MANAGER_inl -#define __EXTENSION_MANAGER_inl - -/*PAGE - * - * _Extension_Allocate - * - * DESCRIPTION: - * - * This function allocates a extension control block from - * the inactive chain of free extension control blocks. - */ - -STATIC INLINE Extension_Control *_Extension_Allocate( void ) -{ - return (Extension_Control *) _Objects_Allocate( &_Extension_Information ); -} - -/*PAGE - * - * _Extension_Free - * - * DESCRIPTION: - * - * This routine frees a extension control block to the - * inactive chain of free extension control blocks. - */ - -STATIC INLINE void _Extension_Free ( - Extension_Control *the_extension -) -{ - _Objects_Free( &_Extension_Information, &the_extension->Object ); -} - -/*PAGE - * - * _Extension_Get - * - * DESCRIPTION: - * - * This function maps extension IDs to extension control blocks. - * If ID corresponds to a local extension, then it returns - * the extension control pointer which maps to ID and location - * is set to OBJECTS_LOCAL. Otherwise, location is set - * to OBJECTS_ERROR and the returned value is undefined. - */ - -STATIC INLINE Extension_Control *_Extension_Get ( - Objects_Id id, - Objects_Locations *location -) -{ - return (Extension_Control *) - _Objects_Get( &_Extension_Information, id, location ); -} - -/*PAGE - * - * _Extension_Is_null - * - * DESCRIPTION: - * - * This function returns TRUE if the_extension is NULL and FALSE otherwise. - */ - -STATIC INLINE boolean _Extension_Is_null ( - Extension_Control *the_extension -) -{ - return ( the_extension == NULL ); -} - -#endif -/* end of include file */ diff --git a/cpukit/sapi/macros/rtems/extension.inl b/cpukit/sapi/macros/rtems/extension.inl deleted file mode 100644 index 96fb9d1b3e..0000000000 --- a/cpukit/sapi/macros/rtems/extension.inl +++ /dev/null @@ -1,58 +0,0 @@ -/* extension.inl - * - * This file contains the macro implementation of the inlined routines - * from the Extension Manager. - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#ifndef __EXTENSION_inl -#define __EXTENSION_inl - -/*PAGE - * - * _Extension_Allocate - * - */ - -#define _Extension_Allocate() \ - (Extension_Control *) _Objects_Allocate( &_Extension_Information ) - -/*PAGE - * - * _Extension_Free - * - */ - -#define _Extension_Free( _the_extension ) \ - _Objects_Free( &_Extension_Information, &(_the_extension)->Object ) - -/*PAGE - * - * _Extension_Get - * - */ - -#define _Extension_Get( _id, _location ) \ - (Extension_Control *) \ - _Objects_Get( &_Extension_Information, (_id), (_location) ) - -/*PAGE - * - * _Extension_Is_null - * - */ - -#define _Extension_Is_null( _the_extension ) \ - ( (_the_extension) == NULL ) - -#endif -/* end of include file */ diff --git a/cpukit/sapi/src/debug.c b/cpukit/sapi/src/debug.c deleted file mode 100644 index 5c42fa92f6..0000000000 --- a/cpukit/sapi/src/debug.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Debug Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include <rtems/system.h> -#include <rtems/debug.h> - -/*PAGE - * - * _Debug_Manager_initialization - */ - -void _Debug_Manager_initialization( void ) -{ - rtems_debug_disable( RTEMS_DEBUG_ALL_MASK ); -} - -/*PAGE - * - * rtems_debug_enable - */ - -void rtems_debug_enable ( - rtems_debug_control to_be_enabled -) -{ - _Debug_Level |= to_be_enabled; -} - -/*PAGE - * - * rtems_debug_disable - */ - -void rtems_debug_disable ( - rtems_debug_control to_be_disabled -) -{ - _Debug_Level &= ~to_be_disabled; -} - -/*PAGE - * - * _Debug_Is_enabled - */ - -boolean _Debug_Is_enabled( - rtems_debug_control level -) -{ - return (_Debug_Level & level); -} diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c deleted file mode 100644 index 2ffd9f4839..0000000000 --- a/cpukit/sapi/src/exinit.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Initialization Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -/* - * INIT is defined so all of the data will be included in this - * file. - */ - -#define INIT - -#include <rtems/system.h> -#include <rtems/config.h> -#include <rtems/debug.h> -#include <rtems/extension.h> -#include <rtems/fatal.h> -#include <rtems/init.h> -#include <rtems/io.h> -#include <rtems/score/sysstate.h> - -#include <rtems/score/apiext.h> -#include <rtems/score/copyrt.h> -#include <rtems/score/heap.h> -#include <rtems/score/interr.h> -#include <rtems/score/isr.h> -#include <rtems/score/mpci.h> -#include <rtems/score/priority.h> -#include <rtems/score/thread.h> -#include <rtems/score/tod.h> -#include <rtems/score/userext.h> -#include <rtems/score/watchdog.h> -#include <rtems/score/wkspace.h> - -#include <rtems/directives.h> -#include <rtems/sptables.h> - -#include <rtems/rtems/rtemsapi.h> - -/*PAGE - * - * rtems_initialize_executive - * - * This directive initializes all the kernels data structures - * to the states necessary for the kernel to begin execution. All - * include files that contain global variable definitions should be - * included in this file. The system threads and initialization threads - * are created and started by this routine. This routine then - * initiates multithreading. - * - * Input parameters: - * configuration_table - pointer to the user's configuration table - * cpu_table - pointer to the user's CPU configuration table - * - * Output parameters: NONE - */ - -void rtems_initialize_executive( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -) -{ - rtems_interrupt_level bsp_level; - - bsp_level = rtems_initialize_executive_early(configuration_table, cpu_table); - rtems_initialize_executive_late( bsp_level ); -} - -rtems_interrupt_level rtems_initialize_executive_early( - rtems_configuration_table *configuration_table, - rtems_cpu_table *cpu_table -) -{ - rtems_interrupt_level bsp_level; - rtems_multiprocessing_table *multiprocessing_table; - - /* - * Dispatching and interrupts are disabled until the end of the - * initialization sequence. This prevents an inadvertent context - * switch before the executive is initialized. - */ - - _ISR_Disable( bsp_level ); - - if ( cpu_table == NULL ) - _Internal_error_Occurred( - INTERNAL_ERROR_CORE, - TRUE, - INTERNAL_ERROR_NO_CONFIGURATION_TABLE - ); - - /* - * Initialize the system state based on whether this is an MP system. - */ - - multiprocessing_table = configuration_table->User_multiprocessing_table; - - _System_state_Handler_initialization( - (multiprocessing_table) ? TRUE : FALSE - ); - - /* - * Provided just for user convenience. - */ - - _Configuration_Table = configuration_table; - _Configuration_MP_table = multiprocessing_table; - - /* - * Internally we view single processor systems as a very restricted - * multiprocessor system. - */ - - if ( multiprocessing_table == NULL ) - multiprocessing_table = - (void *)&_Initialization_Default_multiprocessing_table; - - if ( cpu_table == NULL ) - _Internal_error_Occurred( - INTERNAL_ERROR_CORE, - TRUE, - INTERNAL_ERROR_NO_CPU_TABLE - ); - - _CPU_Initialize( cpu_table, _Thread_Dispatch ); - - /* - * Do this as early as possible to insure no debugging output - * is even attempted to be printed. - */ - - _Debug_Manager_initialization(); - - _API_extensions_Initialization(); - - _Thread_Dispatch_initialization(); - - _User_extensions_Handler_initialization( - configuration_table->User_extension_table - ); - - _Workspace_Handler_initialization( - (void *)configuration_table->work_space_start, - configuration_table->work_space_size - ); - - _ISR_Handler_initialization(); - - _Objects_Handler_initialization( - multiprocessing_table->node, - multiprocessing_table->maximum_nodes, - multiprocessing_table->maximum_global_objects - ); - - _Priority_Handler_initialization(); - - _Watchdog_Handler_initialization(); - - _TOD_Handler_initialization( configuration_table->microseconds_per_tick ); - - _Thread_Handler_initialization( - configuration_table->ticks_per_timeslice, - configuration_table->maximum_extensions, - multiprocessing_table->maximum_proxies - ); - - _MPCI_Handler_initialization( - multiprocessing_table->User_mpci_table, - RTEMS_TIMEOUT - ); - -/* MANAGERS */ - - _Extension_Manager_initialization( configuration_table->maximum_extensions ); - - _IO_Manager_initialization( - configuration_table->Device_driver_table, - configuration_table->number_of_device_drivers, - configuration_table->maximum_devices - ); - - _RTEMS_API_Initialize( configuration_table ); - - _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING ); - - if ( cpu_table->pretasking_hook ) - (*cpu_table->pretasking_hook)(); - - /* - * No threads should be created before this point!!! - * - * At this point all API extensions are in place. After the call to - * _Thread_Create_idle() _Thread_Executing will be set. - * and _Thread_Heir are not set yet. - */ - - _Thread_Create_idle(); - - _MPCI_Create_server(); - - /* - * Run the API and BSPs predriver hook. - */ - - _API_extensions_Run_predriver(); - - if ( _CPU_Table.predriver_hook ) - (*_CPU_Table.predriver_hook)(); - - /* - * Initialize all the device drivers and initialize the MPCI layer. - * - * NOTE: The MPCI may be build upon a device driver. - */ - - _IO_Initialize_all_drivers(); - - if ( _System_state_Is_multiprocessing ) { - _MPCI_Initialization(); - _MPCI_Internal_packets_Send_process_packet( - MPCI_PACKETS_SYSTEM_VERIFY - ); - } - - /* - * Run the APIs and BSPs postdriver hooks. - * - * The API extensions are supposed to create user initialization tasks. - */ - - _API_extensions_Run_postdriver(); - - if ( _CPU_Table.postdriver_hook ) - (*_CPU_Table.postdriver_hook)(); - - return bsp_level; -} - -void rtems_initialize_executive_late( - rtems_interrupt_level bsp_level -) -{ - - _System_state_Set( SYSTEM_STATE_BEGIN_MULTITASKING ); - - _Thread_Start_multitasking(); - - /* - * Restore the interrupt level to what the BSP had. Technically, - * this is unnecessary since the BSP should have all interrupts - * disabled when rtems_initialize_executive is invoked. But this keeps - * the ISR Disable/Enable calls paired. - */ - - _ISR_Enable( bsp_level ); -} - -/*PAGE - * - * rtems_shutdown_executive - * - * This kernel routine shutdowns the executive. It halts multitasking - * and returns control to the application execution "thread" which - * initialially invoked the rtems_initialize_executive directive. - * - * Input parameters: NONE - * - * Output parameters: NONE - */ - -void rtems_shutdown_executive( - unsigned32 result -) -{ - _Thread_Stop_multitasking(); -} diff --git a/cpukit/sapi/src/extension.c b/cpukit/sapi/src/extension.c deleted file mode 100644 index 6df116bc69..0000000000 --- a/cpukit/sapi/src/extension.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Extension Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include <rtems/system.h> -#include <rtems/rtems/support.h> -#include <rtems/score/object.h> -#include <rtems/score/thread.h> -#include <rtems/extension.h> - -/*PAGE - * - * _Extension_Manager_initialization - * - * This routine initializes all extension manager related data structures. - * - * Input parameters: - * maximum_extensions - number of extensions to initialize - * - * Output parameters: NONE - */ - -void _Extension_Manager_initialization( - unsigned32 maximum_extensions -) -{ - _Objects_Initialize_information( - &_Extension_Information, - OBJECTS_RTEMS_EXTENSIONS, - FALSE, - maximum_extensions, - sizeof( Extension_Control ), - FALSE, - RTEMS_MAXIMUM_NAME_LENGTH, - FALSE - ); -} - -/*PAGE - * - * rtems_extension_create - * - * This directive creates a extension and performs some initialization. - * - * Input parameters: - * name - extension name - * extension_table - pointer to extension set information - * id - pointer to extension id - * - * Output parameters: - * id - extension id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_create( - rtems_name name, - rtems_extensions_table *extension_table, - Objects_Id *id -) -{ - Extension_Control *the_extension; - - if ( !rtems_is_name_valid( name ) ) - return RTEMS_INVALID_NAME; - - _Thread_Disable_dispatch(); /* to prevent deletion */ - - the_extension = _Extension_Allocate(); - - if ( !the_extension ) { - _Thread_Enable_dispatch(); - return RTEMS_TOO_MANY; - } - - _User_extensions_Add_set( &the_extension->Extension, extension_table ); - - _Objects_Open( &_Extension_Information, &the_extension->Object, &name ); - - *id = the_extension->Object.id; - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * rtems_extension_ident - * - * This directive returns the system ID associated with - * the extension name. - * - * Input parameters: - * name - user defined message queue name - * id - pointer to extension id - * - * Output parameters: - * *id - message queue id - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_ident( - rtems_name name, - Objects_Id *id -) -{ - Objects_Name_to_id_errors status; - - status = _Objects_Name_to_id( - &_Extension_Information, - &name, - OBJECTS_SEARCH_LOCAL_NODE, - id - ); - - return _Status_Object_name_errors_to_status[ status ]; -} - -/*PAGE - * - * rtems_extension_delete - * - * This directive allows a thread to delete a extension. - * - * Input parameters: - * id - extension id - * - * Output parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_extension_delete( - Objects_Id id -) -{ - Extension_Control *the_extension; - Objects_Locations location; - - the_extension = _Extension_Get( id, &location ); - switch ( location ) { - case OBJECTS_ERROR: - case OBJECTS_REMOTE: /* should never return this */ - return RTEMS_INVALID_ID; - case OBJECTS_LOCAL: - _User_extensions_Remove_set( &the_extension->Extension ); - _Objects_Close( &_Extension_Information, &the_extension->Object ); - _Extension_Free( the_extension ); - _Thread_Enable_dispatch(); - return RTEMS_SUCCESSFUL; - } - - return RTEMS_INTERNAL_ERROR; /* unreached - only to remove warnings */ -} diff --git a/cpukit/sapi/src/fatal.c b/cpukit/sapi/src/fatal.c deleted file mode 100644 index b2599e3ae2..0000000000 --- a/cpukit/sapi/src/fatal.c +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Fatal Error Manager - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include <rtems/system.h> -#include <rtems/fatal.h> -#include <rtems/score/interr.h> - -/*PAGE - * - * rtems_fatal_error_occurred - * - * This directive will invoke the internal fatal error handler. - * - * Input parameters: - * the_error - fatal error status code - * - * Output parameters: NONE - */ - -void volatile rtems_fatal_error_occurred( - unsigned32 the_error -) -{ - _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, FALSE, the_error ); - -/* will not return from this routine */ -} diff --git a/cpukit/sapi/src/io.c b/cpukit/sapi/src/io.c deleted file mode 100644 index b326a96987..0000000000 --- a/cpukit/sapi/src/io.c +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Input/Output Manager - * - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include <rtems/system.h> -#include <rtems/io.h> -#include <rtems/score/isr.h> -#include <rtems/score/thread.h> -#include <rtems/score/wkspace.h> - -#include <string.h> - -/*PAGE - * - * _IO_Manager_initialization - * - */ - -void _IO_Manager_initialization( - rtems_driver_address_table *driver_table, - unsigned32 number_of_drivers, - unsigned32 number_of_devices -) -{ - void *tmp; - unsigned32 index; - rtems_driver_name_t *np; - - _IO_Driver_address_table = driver_table; - _IO_Number_of_drivers = number_of_drivers; - _IO_Number_of_devices = number_of_devices; - - tmp = _Workspace_Allocate_or_fatal_error( - sizeof( rtems_driver_name_t ) * ( number_of_devices + 1 ) - ); - - _IO_Driver_name_table = (rtems_driver_name_t *) tmp; - - for( index=0, np = _IO_Driver_name_table ; - index < _IO_Number_of_devices ; - index++, np++ ) { - np->device_name = 0; - np->device_name_length = 0; - np->major = 0; - np->minor = 0; - } -} - -/*PAGE - * - * _IO_Initialize_all_drivers - * - * This routine initializes all device drivers - * - * Input Paramters: NONE - * - * Output Parameters: NONE - */ - -void _IO_Initialize_all_drivers( void ) -{ - rtems_device_major_number major; - - for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) - (void) rtems_io_initialize( major, 0, NULL); -} - -/*PAGE - * - * rtems_io_register_name - * - * Associate a name with a driver - * - * Input Paramters: - * device_name - pointer to name string to associate with device - * major - device major number to receive name - * minor - device minor number to receive name - * - * Output Parameters: - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_io_register_name( - char *device_name, - rtems_device_major_number major, - rtems_device_minor_number minor - ) -{ - rtems_driver_name_t *np; - unsigned32 level; - unsigned32 index; - - /* find an empty slot */ - for( index=0, np = _IO_Driver_name_table ; - index < _IO_Number_of_devices ; - index++, np++ ) - { - - _ISR_Disable(level); - if (np->device_name == 0) - { - np->device_name = device_name; - np->device_name_length = strlen(device_name); - np->major = major; - np->minor = minor; - _ISR_Enable(level); - - return RTEMS_SUCCESSFUL; - } - _ISR_Enable(level); - } - - return RTEMS_TOO_MANY; -} - -/*PAGE - * - * rtems_io_lookup_name - * - * Find what driver "owns" this name - * - * Input Paramters: - * name - name to lookup the associated device - * - * Output Parameters: - * device_info - device associate with name - * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful - */ - -rtems_status_code rtems_io_lookup_name( - const char *name, - rtems_driver_name_t **device_info -) -{ - rtems_driver_name_t *np; - unsigned32 index; - - for( index=0, np = _IO_Driver_name_table ; - index < _IO_Number_of_devices ; - index++, np++ ) - if (np->device_name) - if (strncmp(np->device_name, name, np->device_name_length) == 0) - { - *device_info = np; - return RTEMS_SUCCESSFUL; - } - - *device_info = 0; - return RTEMS_UNSATISFIED; -} - - -/*PAGE - * - * rtems_io_initialize - * - * This routine is the initialization directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * - * Output Parameters: - * returns - return code - */ - -rtems_status_code rtems_io_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -) -{ - rtems_device_driver_entry callout; - - if ( major >= _IO_Number_of_drivers ) - return RTEMS_INVALID_NUMBER; - - callout = _IO_Driver_address_table[major].initialization; - return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * rtems_io_open - * - * This routine is the open directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * - * Output Parameters: - * returns - return code - */ - -rtems_status_code rtems_io_open( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -) -{ - rtems_device_driver_entry callout; - - if ( major >= _IO_Number_of_drivers ) - return RTEMS_INVALID_NUMBER; - - callout = _IO_Driver_address_table[major].open; - return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * rtems_io_close - * - * This routine is the close directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * - * Output Parameters: - * returns - return code - */ - -rtems_status_code rtems_io_close( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -) -{ - rtems_device_driver_entry callout; - - if ( major >= _IO_Number_of_drivers ) - return RTEMS_INVALID_NUMBER; - - callout = _IO_Driver_address_table[major].close; - return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * rtems_io_read - * - * This routine is the read directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * - * Output Parameters: - * returns - return code - */ - -rtems_status_code rtems_io_read( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -) -{ - rtems_device_driver_entry callout; - - if ( major >= _IO_Number_of_drivers ) - return RTEMS_INVALID_NUMBER; - - callout = _IO_Driver_address_table[major].read; - return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * rtems_io_write - * - * This routine is the write directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * - * Output Parameters: - * returns - return code - */ - -rtems_status_code rtems_io_write( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -) -{ - rtems_device_driver_entry callout; - - if ( major >= _IO_Number_of_drivers ) - return RTEMS_INVALID_NUMBER; - - callout = _IO_Driver_address_table[major].write; - return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; -} - -/*PAGE - * - * rtems_io_control - * - * This routine is the control directive of the IO manager. - * - * Input Paramters: - * major - device driver number - * minor - device number - * argument - pointer to argument(s) - * - * Output Parameters: - * returns - return code - */ - -rtems_status_code rtems_io_control( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *argument -) -{ - rtems_device_driver_entry callout; - - if ( major >= _IO_Number_of_drivers ) - return RTEMS_INVALID_NUMBER; - - callout = _IO_Driver_address_table[major].control; - return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; -} - diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c deleted file mode 100644 index b6ecb6c37c..0000000000 --- a/cpukit/sapi/src/rtemsapi.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * RTEMS API Support - * - * NOTE: - * - * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. - * On-Line Applications Research Corporation (OAR). - * All rights assigned to U.S. Government, 1994. - * - * This material may be reproduced by or for the U.S. Government pursuant - * to the copyright license under the clause at DFARS 252.227-7013. This - * notice must appear in all copies of this file and its derivatives. - * - * $Id$ - */ - -#include <rtems/system.h> -#include <rtems/rtems/status.h> -#include <rtems/rtems/rtemsapi.h> - -#define INIT - -#include <rtems/rtems/intr.h> -#include <rtems/rtems/clock.h> -#include <rtems/rtems/tasks.h> -#include <rtems/rtems/dpmem.h> -#include <rtems/rtems/event.h> -#include <rtems/rtems/message.h> -#include <rtems/rtems/mp.h> -#include <rtems/rtems/part.h> -#include <rtems/rtems/ratemon.h> -#include <rtems/rtems/region.h> -#include <rtems/rtems/sem.h> -#include <rtems/rtems/signal.h> -#include <rtems/rtems/timer.h> - -/*PAGE - * - * _RTEMS_API_Initialize - * - * XXX - */ - -void _RTEMS_API_Initialize( - rtems_configuration_table *configuration_table -) -{ - _Attributes_Handler_initialization(); - - _Interrupt_Manager_initialization(); - - _Multiprocessing_Manager_initialization(); - - _RTEMS_tasks_Manager_initialization( - configuration_table->maximum_tasks, - configuration_table->number_of_initialization_tasks, - configuration_table->User_initialization_tasks_table - ); - - _Timer_Manager_initialization( configuration_table->maximum_timers ); - - _Signal_Manager_initialization(); - - _Event_Manager_initialization(); - - _Message_queue_Manager_initialization( - configuration_table->maximum_message_queues - ); - - _Semaphore_Manager_initialization( - configuration_table->maximum_semaphores - ); - - _Partition_Manager_initialization( - configuration_table->maximum_partitions - ); - - _Region_Manager_initialization( configuration_table->maximum_regions ); - - _Dual_ported_memory_Manager_initialization( - configuration_table->maximum_ports - ); - - _Rate_monotonic_Manager_initialization( - configuration_table->maximum_periods - ); -} - -/* end of file */ |