summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems')
-rw-r--r--cpukit/rtems/Makefile.am55
-rw-r--r--cpukit/rtems/include/rtems.h192
-rw-r--r--cpukit/rtems/include/rtems/rtems/asr.h156
-rw-r--r--cpukit/rtems/include/rtems/rtems/asrimpl.h99
-rw-r--r--cpukit/rtems/include/rtems/rtems/attr.h191
-rw-r--r--cpukit/rtems/include/rtems/rtems/attrimpl.h263
-rw-r--r--cpukit/rtems/include/rtems/rtems/barrier.h173
-rw-r--r--cpukit/rtems/include/rtems/rtems/barrierimpl.h92
-rw-r--r--cpukit/rtems/include/rtems/rtems/cache.h370
-rw-r--r--cpukit/rtems/include/rtems/rtems/clock.h318
-rw-r--r--cpukit/rtems/include/rtems/rtems/config.h142
-rw-r--r--cpukit/rtems/include/rtems/rtems/dpmem.h179
-rw-r--r--cpukit/rtems/include/rtems/rtems/dpmemimpl.h85
-rw-r--r--cpukit/rtems/include/rtems/rtems/event.h526
-rw-r--r--cpukit/rtems/include/rtems/rtems/eventimpl.h146
-rw-r--r--cpukit/rtems/include/rtems/rtems/eventmp.h101
-rw-r--r--cpukit/rtems/include/rtems/rtems/intr.h373
-rw-r--r--cpukit/rtems/include/rtems/rtems/message.h270
-rw-r--r--cpukit/rtems/include/rtems/rtems/messageimpl.h120
-rw-r--r--cpukit/rtems/include/rtems/rtems/modes.h132
-rw-r--r--cpukit/rtems/include/rtems/rtems/modesimpl.h146
-rw-r--r--cpukit/rtems/include/rtems/rtems/mp.h54
-rw-r--r--cpukit/rtems/include/rtems/rtems/msgmp.h211
-rw-r--r--cpukit/rtems/include/rtems/rtems/object.h370
-rw-r--r--cpukit/rtems/include/rtems/rtems/options.h83
-rw-r--r--cpukit/rtems/include/rtems/rtems/optionsimpl.h67
-rw-r--r--cpukit/rtems/include/rtems/rtems/part.h174
-rw-r--r--cpukit/rtems/include/rtems/rtems/partimpl.h223
-rw-r--r--cpukit/rtems/include/rtems/rtems/partmp.h144
-rw-r--r--cpukit/rtems/include/rtems/rtems/ratemon.h430
-rw-r--r--cpukit/rtems/include/rtems/rtems/ratemonimpl.h158
-rw-r--r--cpukit/rtems/include/rtems/rtems/region.h298
-rw-r--r--cpukit/rtems/include/rtems/rtems/regionimpl.h142
-rw-r--r--cpukit/rtems/include/rtems/rtems/sem.h278
-rw-r--r--cpukit/rtems/include/rtems/rtems/semimpl.h120
-rw-r--r--cpukit/rtems/include/rtems/rtems/semmp.h171
-rw-r--r--cpukit/rtems/include/rtems/rtems/signal.h83
-rw-r--r--cpukit/rtems/include/rtems/rtems/signalimpl.h51
-rw-r--r--cpukit/rtems/include/rtems/rtems/signalmp.h98
-rw-r--r--cpukit/rtems/include/rtems/rtems/smp.h78
-rw-r--r--cpukit/rtems/include/rtems/rtems/status.h263
-rw-r--r--cpukit/rtems/include/rtems/rtems/statusimpl.h64
-rw-r--r--cpukit/rtems/include/rtems/rtems/support.h170
-rw-r--r--cpukit/rtems/include/rtems/rtems/taskmp.h132
-rw-r--r--cpukit/rtems/include/rtems/rtems/tasks.h716
-rw-r--r--cpukit/rtems/include/rtems/rtems/tasksimpl.h131
-rw-r--r--cpukit/rtems/include/rtems/rtems/timer.h384
-rw-r--r--cpukit/rtems/include/rtems/rtems/timerimpl.h209
-rw-r--r--cpukit/rtems/include/rtems/rtems/types.h235
-rw-r--r--cpukit/rtems/mainpage.h927
-rw-r--r--cpukit/rtems/preinstall.am222
51 files changed, 0 insertions, 10815 deletions
diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am
index da6e302e2e..b8694b8022 100644
--- a/cpukit/rtems/Makefile.am
+++ b/cpukit/rtems/Makefile.am
@@ -6,63 +6,9 @@ librtems_a_CPPFLAGS = $(AM_CPPFLAGS)
# include
-include_HEADERS = include/rtems.h
-
# include/rtems/rtems
-include_rtems_rtemsdir = $(includedir)/rtems/rtems
-include_rtems_rtems_HEADERS =
-
-include_rtems_rtems_HEADERS += include/rtems/rtems/asr.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/asrimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/attr.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/attrimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/barrier.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/barrierimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/cache.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/clock.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/config.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/dpmem.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/dpmemimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/event.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/eventimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/intr.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/message.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/messageimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/modes.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/modesimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/object.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/options.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/optionsimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/part.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/partimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/ratemon.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/ratemonimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/region.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/regionimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/sem.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/semimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/signal.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/signalimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/smp.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/status.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/statusimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/support.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/tasks.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/tasksimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/timer.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/timerimpl.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/types.h
-include_rtems_rtems_HEADERS += mainpage.h
-
if HAS_MP
## We only build multiprocessing related files if HAS_MP was defined
-include_rtems_rtems_HEADERS += include/rtems/rtems/eventmp.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/mp.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/msgmp.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/partmp.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/semmp.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/signalmp.h
-include_rtems_rtems_HEADERS += include/rtems/rtems/taskmp.h
endif
## src
@@ -252,5 +198,4 @@ librtems_a_SOURCES += src/signalmp.c
librtems_a_SOURCES += src/taskmp.c
endif
-include $(srcdir)/preinstall.am
include $(top_srcdir)/automake/local.am
diff --git a/cpukit/rtems/include/rtems.h b/cpukit/rtems/include/rtems.h
deleted file mode 100644
index 8e536b449a..0000000000
--- a/cpukit/rtems/include/rtems.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
- * @file
- *
- * @defgroup ClassicRTEMS RTEMS Classic API
- *
- * @brief RTEMS Classic API
- *
- * the Public Interface to the RTEMS Classic API
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_H
-#define _RTEMS_H
-
-/**
- * @defgroup ClassicRTEMS RTEMS Classic API
- *
- * RTEMS Classic API definitions and modules.
- */
-/**@{*/
-
-#include <rtems/system.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/types.h>
-
-#include <rtems/config.h>
-#include <rtems/init.h>
-#include <rtems/rtems/options.h>
-#include <rtems/rtems/tasks.h>
-#include <rtems/rtems/intr.h>
-#include <rtems/rtems/barrier.h>
-#include <rtems/rtems/cache.h>
-#include <rtems/rtems/clock.h>
-#include <rtems/extension.h>
-#include <rtems/rtems/timer.h>
-#include <rtems/rtems/sem.h>
-#include <rtems/rtems/message.h>
-#include <rtems/rtems/event.h>
-#include <rtems/rtems/signal.h>
-#include <rtems/rtems/event.h>
-#include <rtems/rtems/object.h>
-#include <rtems/rtems/part.h>
-#include <rtems/rtems/region.h>
-#include <rtems/rtems/dpmem.h>
-#include <rtems/io.h>
-#include <rtems/fatal.h>
-#include <rtems/rtems/ratemon.h>
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/mp.h>
-#endif
-#include <rtems/rtems/smp.h>
-
-#include <rtems/rtems/support.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Returns the pointer to the RTEMS version string.
- */
-const char *rtems_get_version_string(void);
-
-/**
- * @brief Indicates whether this processor variant has hardware floating point
- * support.
- */
-#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
-
-/**********************************************************************
- * CONSTANTS WHICH MAY BE USED IN OBJECT NAME TO ID SEARCHES
- **********************************************************************/
-
-/**
- * @brief Indicates that a search is across all nodes.
- */
-#define RTEMS_SEARCH_ALL_NODES OBJECTS_SEARCH_ALL_NODES
-
-/**
- * @brief Indicates that a search is across all nodes except the one the call
- * is made from.
- */
-#define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
-
-/**
- * @brief Indicates that the search is to be restricted to the local node.
- */
-#define RTEMS_SEARCH_LOCAL_NODE OBJECTS_SEARCH_LOCAL_NODE
-
-/**
- * @brief Indicates that the caller wants to obtain the name of the currently
- * executing thread.
- *
- * This constant is only meaningful when obtaining the name of a task.
- */
-#define RTEMS_WHO_AM_I OBJECTS_WHO_AM_I
-
-/**********************************************************************
- * Parameters and return Id's for _Objects_Get_next
- **********************************************************************/
-
-/**
- * @brief Lowest valid index value for the index portion of an object
- * identifier.
- */
-#define RTEMS_OBJECT_ID_INITIAL_INDEX OBJECTS_ID_INITIAL_INDEX
-
-/**
- * @brief Maximum valid index value for the index portion of an object
- * identifier.
- */
-#define RTEMS_OBJECT_ID_FINAL_INDEX OBJECTS_ID_FINAL_INDEX
-
-/**
- * @brief Returns the identifier of the object with the lowest valid index
- * value.
- *
- * The object is specified by the API @a _api, the object class @a _class and
- * the node @a _node where the object resides.
- */
-#define RTEMS_OBJECT_ID_INITIAL(_api, _class, _node) \
- OBJECTS_ID_INITIAL(_api, _class, _node)
-
-/**
- * @brief Maximum valid object identifier.
- */
-#define RTEMS_OBJECT_ID_FINAL OBJECTS_ID_FINAL
-
-/**
- * @brief Minimum stack size which every thread must exceed.
- *
- * It is the minimum stack size recommended for use on this processor. This
- * value is selected by the RTEMS developers conservatively to minimize the
- * risk of blown stacks for most user applications. Using this constant when
- * specifying the task stack size, indicates that the stack size will be at
- * least RTEMS_MINIMUM_STACK_SIZE bytes in size. If the user configured minimum
- * stack size is larger than the recommended minimum, then it will be used.
- */
-#define RTEMS_MINIMUM_STACK_SIZE STACK_MINIMUM_SIZE
-
-/**
- * @brief Specifies that the task should be created with the configured minimum
- * stack size.
- *
- * Using this constant when specifying the task stack size indicates that this
- * task is to be created with a stack size of the minimum stack size that was
- * configured by the application. If not explicitly configured by the
- * application, the default configured minimum stack size is the processor
- * dependent value RTEMS_MINIMUM_STACK_SIZE. Since this uses the configured
- * minimum stack size value, you may get a stack size that is smaller or larger
- * than the recommended minimum. This can be used to provide large stacks for
- * all tasks on complex applications or small stacks on applications that are
- * trying to conserve memory.
- */
-#define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE 0
-
-/**
- * @brief Constant for indefinite wait.
- *
- * This is actually an illegal interval value.
- */
-#define RTEMS_NO_TIMEOUT ((rtems_interval) WATCHDOG_NO_TIMEOUT)
-
-/**
- * @brief An MPCI must support packets of at least this size.
- */
-#define RTEMS_MINIMUM_PACKET_SIZE MP_PACKET_MINIMUM_PACKET_SIZE
-
-/**
- * @brief Defines the count of @c uint32_t numbers in a packet which must be
- * converted to native format in a heterogeneous system.
- *
- * In packets longer than this value, some of the extra data may be a user
- * message buffer which is not automatically endian swapped.
- */
-#define RTEMS_MINIMUN_HETERO_CONVERSION MP_PACKET_MINIMUN_HETERO_CONVERSION
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/asr.h b/cpukit/rtems/include/rtems/rtems/asr.h
deleted file mode 100644
index edd5e2fe62..0000000000
--- a/cpukit/rtems/include/rtems/rtems/asr.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * @file rtems/rtems/asr.h
- *
- * @defgroup ClassicASR ASR Support
- *
- * @ingroup ClassicRTEMS
- * @brief Asynchronous Signal Handler
- *
- * This include file contains all the constants and structures associated
- * with the Asynchronous Signal Handler. This Handler provides the low-level
- * support required by the Signal Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_ASR_H
-#define _RTEMS_RTEMS_ASR_H
-
-#include <rtems/rtems/modes.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicASR ASR Support
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Signal
- * Manager.
- */
-/**@{*/
-
-/**
- * The following type defines the control block used to manage
- * each signal set.
- */
-typedef uint32_t rtems_signal_set;
-
-/**
- * Return type for ASR Handler
- */
-typedef void rtems_asr;
-
-/**
- * The following type corresponds to the applications asynchronous
- * signal processing routine.
- */
-typedef rtems_asr ( *rtems_asr_entry )(
- rtems_signal_set
- );
-
-/**
- * The following defines the control structure used to manage
- * signals. Each thread has a copy of this record.
- */
-typedef struct {
- /** This field indicates if are ASRs enabled currently. */
- bool is_enabled;
- /** This field indicates if address of the signal handler function. */
- rtems_asr_entry handler;
- /** This field indicates if the task mode the signal will run with. */
- Modes_Control mode_set;
- /** This field indicates the signal set that is posted. */
- rtems_signal_set signals_posted;
- /** This field indicates the signal set that is pending. */
- rtems_signal_set signals_pending;
- /** This field indicates if nest level of signals being processed */
- uint32_t nest_level;
-} ASR_Information;
-
-/*
- * The following constants define the individual signals which may
- * be used to compose a signal set.
- */
-
-/** This defines the bit in the signal set associated with signal 0. */
-#define RTEMS_SIGNAL_0 0x00000001
-/** This defines the bit in the signal set associated with signal 1. */
-#define RTEMS_SIGNAL_1 0x00000002
-/** This defines the bit in the signal set associated with signal 2. */
-#define RTEMS_SIGNAL_2 0x00000004
-/** This defines the bit in the signal set associated with signal 3. */
-#define RTEMS_SIGNAL_3 0x00000008
-/** This defines the bit in the signal set associated with signal 4. */
-#define RTEMS_SIGNAL_4 0x00000010
-/** This defines the bit in the signal set associated with signal 5. */
-#define RTEMS_SIGNAL_5 0x00000020
-/** This defines the bit in the signal set associated with signal 6. */
-#define RTEMS_SIGNAL_6 0x00000040
-/** This defines the bit in the signal set associated with signal 7. */
-#define RTEMS_SIGNAL_7 0x00000080
-/** This defines the bit in the signal set associated with signal 8. */
-#define RTEMS_SIGNAL_8 0x00000100
-/** This defines the bit in the signal set associated with signal 9. */
-#define RTEMS_SIGNAL_9 0x00000200
-/** This defines the bit in the signal set associated with signal 10. */
-#define RTEMS_SIGNAL_10 0x00000400
-/** This defines the bit in the signal set associated with signal 11. */
-#define RTEMS_SIGNAL_11 0x00000800
-/** This defines the bit in the signal set associated with signal 12. */
-#define RTEMS_SIGNAL_12 0x00001000
-/** This defines the bit in the signal set associated with signal 13. */
-#define RTEMS_SIGNAL_13 0x00002000
-/** This defines the bit in the signal set associated with signal 14. */
-#define RTEMS_SIGNAL_14 0x00004000
-/** This defines the bit in the signal set associated with signal 15. */
-#define RTEMS_SIGNAL_15 0x00008000
-/** This defines the bit in the signal set associated with signal 16. */
-#define RTEMS_SIGNAL_16 0x00010000
-/** This defines the bit in the signal set associated with signal 17. */
-#define RTEMS_SIGNAL_17 0x00020000
-/** This defines the bit in the signal set associated with signal 18. */
-#define RTEMS_SIGNAL_18 0x00040000
-/** This defines the bit in the signal set associated with signal 19. */
-#define RTEMS_SIGNAL_19 0x00080000
-/** This defines the bit in the signal set associated with signal 20. */
-#define RTEMS_SIGNAL_20 0x00100000
-/** This defines the bit in the signal set associated with signal 21. */
-#define RTEMS_SIGNAL_21 0x00200000
-/** This defines the bit in the signal set associated with signal 22. */
-#define RTEMS_SIGNAL_22 0x00400000
-/** This defines the bit in the signal set associated with signal 23. */
-#define RTEMS_SIGNAL_23 0x00800000
-/** This defines the bit in the signal set associated with signal 24. */
-#define RTEMS_SIGNAL_24 0x01000000
-/** This defines the bit in the signal set associated with signal 25. */
-#define RTEMS_SIGNAL_25 0x02000000
-/** This defines the bit in the signal set associated with signal 26. */
-#define RTEMS_SIGNAL_26 0x04000000
-/** This defines the bit in the signal set associated with signal 27. */
-#define RTEMS_SIGNAL_27 0x08000000
-/** This defines the bit in the signal set associated with signal 28. */
-#define RTEMS_SIGNAL_28 0x10000000
-/** This defines the bit in the signal set associated with signal 29. */
-#define RTEMS_SIGNAL_29 0x20000000
-/** This defines the bit in the signal set associated with signal 30. */
-#define RTEMS_SIGNAL_30 0x40000000
-/** This defines the bit in the signal set associated with signal 31. */
-#define RTEMS_SIGNAL_31 0x80000000
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/asrimpl.h b/cpukit/rtems/include/rtems/rtems/asrimpl.h
deleted file mode 100644
index 141c34d4bb..0000000000
--- a/cpukit/rtems/include/rtems/rtems/asrimpl.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicASRImpl
- *
- * @brief Classic ASR Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_ASRIMPL_H
-#define _RTEMS_RTEMS_ASRIMPL_H
-
-#include <rtems/rtems/asr.h>
-
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicASRImpl Classic ASR Implementation
- *
- * @ingroup ClassicASR
- *
- * @{
- */
-
-/**
- * @brief ASR_Initialize
- *
- * This routine initializes the given RTEMS_ASR information record.
- */
-RTEMS_INLINE_ROUTINE void _ASR_Initialize (
- ASR_Information *asr
-)
-{
- memset(asr, 0, sizeof(*asr));
-}
-
-/**
- * @brief ASR_Is_null_handler
- *
- * This function returns TRUE if the given asr_handler is NULL and
- * FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _ASR_Is_null_handler (
- rtems_asr_entry asr_handler
-)
-{
- return asr_handler == NULL;
-}
-
-RTEMS_INLINE_ROUTINE rtems_signal_set _ASR_Swap_signals( ASR_Information *asr )
-{
- rtems_signal_set new_signals_posted;
-
- new_signals_posted = asr->signals_pending;
- asr->signals_pending = asr->signals_posted;
- asr->signals_posted = new_signals_posted;
-
- return new_signals_posted;
-}
-
-RTEMS_INLINE_ROUTINE void _ASR_Post_signals(
- rtems_signal_set signals,
- rtems_signal_set *signal_set
-)
-{
- *signal_set |= signals;
-}
-
-RTEMS_INLINE_ROUTINE rtems_signal_set _ASR_Get_posted_signals(
- ASR_Information *asr
-)
-{
- rtems_signal_set signal_set;
-
- signal_set = asr->signals_posted;
- asr->signals_posted = 0;
-
- return signal_set;
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/attr.h b/cpukit/rtems/include/rtems/rtems/attr.h
deleted file mode 100644
index 7e8fa4818a..0000000000
--- a/cpukit/rtems/include/rtems/rtems/attr.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * @file rtems/rtems/attr.h
- *
- * @defgroup ClassicAttributes Attributes
- *
- * @ingroup ClassicRTEMS
- * @brief Object Attributes Handler
- *
- * This include file contains all information about the Object Attributes
- * Handler.
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_ATTR_H
-#define _RTEMS_RTEMS_ATTR_H
-
-#include <rtems/score/basedefs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicAttributes Attributes
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality which defines and manages the
- * set of Classic API object attributes.
- */
-/**@{*/
-
-/**
- * This defines the type used to contain Classic API attributes. These
- * are primarily used when creating objects.
- */
-typedef uint32_t rtems_attribute;
-
-/** This is the default value for an attribute set. */
-
-#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000
-
-/**
- * This is the attribute constant to indicate local resource.
- */
-#define RTEMS_LOCAL 0x00000000
-
-/**
- * This is the attribute constant to indicate global resource.
- */
-#define RTEMS_GLOBAL 0x00000002
-
-/**
- * This is the attribute constant which reflects that blocking
- * tasks will be managed using FIFO discipline.
- */
-#define RTEMS_FIFO 0x00000000
-
-/**
- * This is the attribute constant which reflects that blocking
- * tasks will be managed using task priority discipline.
- */
-#define RTEMS_PRIORITY 0x00000004
-
-/******************** RTEMS Task Specific Attributes *********************/
-
-/**
- * This attribute constant indicates that the task will not use the
- * floating point hardware. If the architecture permits it, then
- * the FPU will be disabled when the task is executing.
- */
-#define RTEMS_NO_FLOATING_POINT 0x00000000
-
-/**
- * This attribute constant indicates that the task will use the
- * floating point hardware. There will be a floating point
- * context associated with this task.
- */
-#define RTEMS_FLOATING_POINT 0x00000001
-
-/***************** RTEMS Semaphore Specific Attributes ********************/
-
-/**
- * This is the mask for the attribute bits associated with the
- * Classic API Semaphore Manager.
- */
-#define RTEMS_SEMAPHORE_CLASS 0x00000030
-
-/**
- * This attribute constant indicates that the Classic API Semaphore
- * instance created will be a counting semaphore.
- */
-#define RTEMS_COUNTING_SEMAPHORE 0x00000000
-
-/**
- * This attribute constant indicates that the Classic API Semaphore
- * instance created will be a proper binary semaphore or mutex.
- */
-#define RTEMS_BINARY_SEMAPHORE 0x00000010
-
-/**
- * This attribute constant indicates that the Classic API Semaphore
- * instance created will be a simple binary semaphore.
- */
-#define RTEMS_SIMPLE_BINARY_SEMAPHORE 0x00000020
-
-/**
- * This attribute constant indicates that the Classic API Semaphore
- * instance created will NOT use the Priority Inheritance Protocol.
- */
-#define RTEMS_NO_INHERIT_PRIORITY 0x00000000
-
-/**
- * This attribute constant indicates that the Classic API Semaphore
- * instance created will use the Priority Inheritance Protocol.
- *
- * @note The semaphore instance must be a binary semaphore.
- */
-#define RTEMS_INHERIT_PRIORITY 0x00000040
-
-/**
- * This attribute constant indicates that the Classic API Semaphore
- * instance created will NOT use the Priority Ceiling Protocol.
- */
-#define RTEMS_NO_PRIORITY_CEILING 0x00000000
-
-/**
- * This attribute constant indicates that the Classic API Semaphore
- * instance created will use the Priority Ceiling Protocol.
- *
- * @note The semaphore instance must be a binary semaphore.
- */
-#define RTEMS_PRIORITY_CEILING 0x00000080
-
-/**
- * This attribute constant indicates that the Classic API Semaphore instance
- * created will NOT use the Multiprocessor Resource Sharing Protocol.
- */
-#define RTEMS_NO_MULTIPROCESSOR_RESOURCE_SHARING 0x00000000
-
-/**
- * This attribute constant indicates that the Classic API Semaphore instance
- * created will use the Multiprocessor Resource Sharing Protocol.
- *
- * @note The semaphore instance must be a binary semaphore.
- */
-#define RTEMS_MULTIPROCESSOR_RESOURCE_SHARING 0x00000100
-
-/******************** RTEMS Barrier Specific Attributes ********************/
-
-/**
- * This attribute constant indicates that the Classic API Barrier
- * instance created will use an automatic release protocol.
- */
-#define RTEMS_BARRIER_AUTOMATIC_RELEASE 0x00000010
-
-/**
- * This attribute constant indicates that the Classic API Barrier
- * instance created will use the manual release protocol.
- */
-#define RTEMS_BARRIER_MANUAL_RELEASE 0x00000000
-
-/**************** RTEMS Internal Task Specific Attributes ****************/
-
-/**
- * This attribute constant indicates that the task was created
- * by the application using normal Classic API methods.
- */
-#define RTEMS_APPLICATION_TASK 0x00000000
-
-/**
- * This attribute constant indicates that the task was created
- * by RTEMS as a support task.
- */
-#define RTEMS_SYSTEM_TASK 0x00008000
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/attrimpl.h b/cpukit/rtems/include/rtems/rtems/attrimpl.h
deleted file mode 100644
index bb8e5f8f58..0000000000
--- a/cpukit/rtems/include/rtems/rtems/attrimpl.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicAttributesImpl
- *
- * @brief Classic Attributes Implementation
- */
-
-/*
- * COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_ATTR_INL
-#define _RTEMS_RTEMS_ATTR_INL
-
-#include <rtems/rtems/attr.h>
-#include <rtems/score/cpu.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicAttributesImpl Classic Attributes Implementation
- *
- * @ingroup ClassicAttributes
- *
- * @{
- */
-
-/****************** Forced Attributes in Configuration ****************/
-
-/**
- * This attribute constant indicates the attributes that are not
- * supportable given the hardware configuration.
- */
-#define ATTRIBUTES_NOT_SUPPORTED 0
-
-/**
- * This attribute constant indicates the attributes that are
- * required given the hardware configuration.
- */
-#if ( CPU_ALL_TASKS_ARE_FP == TRUE )
-#define ATTRIBUTES_REQUIRED RTEMS_FLOATING_POINT
-#else
-#define ATTRIBUTES_REQUIRED 0
-#endif
-
-/**
- * @brief Sets the requested new_attributes in the attribute_set passed in.
- *
- * This function sets the requested new_attributes in the attribute_set
- * passed in. The result is returned to the user.
- */
-RTEMS_INLINE_ROUTINE rtems_attribute _Attributes_Set (
- rtems_attribute new_attributes,
- rtems_attribute attribute_set
-)
-{
- return attribute_set | new_attributes;
-}
-
-/**
- * @brief Clears the requested new_attributes in the attribute_set
- * passed in.
- *
- * This function clears the requested new_attributes in the attribute_set
- * passed in. The result is returned to the user.
- */
-RTEMS_INLINE_ROUTINE rtems_attribute _Attributes_Clear (
- rtems_attribute attribute_set,
- rtems_attribute mask
-)
-{
- return attribute_set & ~mask;
-}
-
-/**
- * @brief Checks if the floating point attribute is
- * enabled in the attribute_set.
- *
- * This function returns TRUE if the floating point attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_floating_point(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_FLOATING_POINT ) ? true : false;
-}
-
-#if defined(RTEMS_MULTIPROCESSING)
-/**
- * @brief Checks if the global object attribute is enabled in
- * the attribute_set.
- *
- * This function returns TRUE if the global object attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_global(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_GLOBAL ) ? true : false;
-}
-#endif
-
-/**
- * @brief Checks if the priority attribute is enabled in the attribute_set.
- *
- * This function returns TRUE if the priority attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_priority(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_PRIORITY ) ? true : false;
-}
-
-/**
- * @brief Checks if the binary semaphore attribute is
- * enabled in the attribute_set.
- *
- * This function returns TRUE if the binary semaphore attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore(
- rtems_attribute attribute_set
-)
-{
- return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE);
-}
-
-/**
- * @brief Checks if the simple binary semaphore attribute is
- * enabled in the attribute_set
- *
- * This function returns TRUE if the simple binary semaphore attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_simple_binary_semaphore(
- rtems_attribute attribute_set
-)
-{
- return
- ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_SIMPLE_BINARY_SEMAPHORE);
-}
-
-/**
- * @brief Checks if the counting semaphore attribute is
- * enabled in the attribute_set
- *
- * This function returns TRUE if the counting semaphore attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore(
- rtems_attribute attribute_set
-)
-{
- return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE);
-}
-
-/**
- * @brief Checks if the priority inheritance attribute
- * is enabled in the attribute_set
- *
- * This function returns TRUE if the priority inheritance attribute
- * is enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_inherit_priority(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_INHERIT_PRIORITY ) ? true : false;
-}
-
-/**
- * @brief Returns true if the attribute set has at most one protocol, and false
- * otherwise.
- *
- * The protocols are RTEMS_INHERIT_PRIORITY, RTEMS_PRIORITY_CEILING and
- * RTEMS_MULTIPROCESSOR_RESOURCE_SHARING.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Has_at_most_one_protocol(
- rtems_attribute attribute_set
-)
-{
- attribute_set &= RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY_CEILING
- | RTEMS_MULTIPROCESSOR_RESOURCE_SHARING;
-
- return ( attribute_set & ( attribute_set - 1 ) ) == 0;
-}
-
-/**
- * @brief Checks if the priority ceiling attribute
- * is enabled in the attribute_set
- *
- * This function returns TRUE if the priority ceiling attribute
- * is enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_priority_ceiling(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_PRIORITY_CEILING ) ? true : false;
-}
-
-/**
- * @brief Checks if the Multiprocessor Resource Sharing Protocol attribute
- * is enabled in the attribute_set
- *
- * This function returns TRUE if the Multiprocessor Resource Sharing Protocol
- * attribute is enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_multiprocessor_resource_sharing(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_MULTIPROCESSOR_RESOURCE_SHARING ) != 0;
-}
-
-/**
- * @brief Checks if the barrier automatic release
- * attribute is enabled in the attribute_set
- *
- * This function returns TRUE if the barrier automatic release
- * attribute is enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_barrier_automatic(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_BARRIER_AUTOMATIC_RELEASE ) ? true : false;
-}
-
-/**
- * @brief Checks if the system task attribute
- * is enabled in the attribute_set.
- *
- * This function returns TRUE if the system task attribute
- * is enabled in the attribute_set and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Attributes_Is_system_task(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_SYSTEM_TASK ) ? true : false;
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/barrier.h b/cpukit/rtems/include/rtems/rtems/barrier.h
deleted file mode 100644
index 2eea90fa41..0000000000
--- a/cpukit/rtems/include/rtems/rtems/barrier.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/**
- * @file rtems/rtems/barrier.h
- *
- * @defgroup ClassicBarrier Barriers
- *
- * @ingroup ClassicRTEMS
- * @brief Classic API Barrier Manager
- *
- * This include file contains all the constants and structures associated
- * with the Barrier Manager.
- *
- * Directives provided are:
- *
- * - create a barrier
- * - get an ID of a barrier
- * - delete a barrier
- * - wait for a barrier
- * - signal a barrier
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_BARRIER_H
-#define _RTEMS_RTEMS_BARRIER_H
-
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/attr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/corebarrier.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicBarrier Barriers
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality which implements the Classic API
- * Barrier Manager.
- */
-/**@{*/
-
-/**
- * This type defines the control block used to manage each barrier.
- */
-typedef struct {
- /** This is used to manage a barrier as an object. */
- Objects_Control Object;
- /** This is used to implement the barrier. */
- CORE_barrier_Control Barrier;
- /** This is used to specify the attributes of a barrier. */
- rtems_attribute attribute_set;
-} Barrier_Control;
-
-/**
- * @brief RTEMS Create Barrier
- *
- * Barrier Manager -- Create a Barrier Instance
- *
- * This routine implements the rtems_barrier_create directive. The
- * barrier will have the name name. The starting count for
- * the barrier is count. The attribute_set determines if
- * the barrier is global or local and the thread queue
- * discipline. It returns the id of the created barrier in ID.
- *
- * @param[in] name is the name of this barrier instance.
- * @param[in] attribute_set specifies the attributes of this barrier instance.
- * @param[in] maximum_waiters is the maximum number of threads which will
- * be allowed to concurrently wait at the barrier.
- * @param[out] id will contain the id of this barrier.
- *
- * @retval a status code indicating success or the reason for failure.
- */
-rtems_status_code rtems_barrier_create(
- rtems_name name,
- rtems_attribute attribute_set,
- uint32_t maximum_waiters,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Barrier name to Id
- *
- * This routine implements the rtems_barrier_ident directive.
- * This directive returns the barrier ID associated with name.
- * If more than one barrier is named name, then the barrier
- * to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the barrier named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the name of this barrier instance.
- * @param[out] id will contain the id of this barrier.
- *
- * @retval a status code indicating success or the reason for failure.
- */
-rtems_status_code rtems_barrier_ident(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Delete Barrier
- *
- * This routine implements the rtems_barrier_delete directive. The
- * barrier indicated by @a id is deleted. The barrier is freed back to the
- * inactive barrier chain.
- *
- *
- * @param[in] id indicates the barrier to delete
- *
- * @retval a status code indicating success or the reason for failure.
- */
-rtems_status_code rtems_barrier_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Barrier Wait
- *
- * This routine implements the rtems_barrier_wait directive. It
- * attempts to wait at the barrier associated with @a id. The calling task
- * may block waiting for the barrier with an optional timeout of @a timeout
- * clock ticks.
- *
- * @param[in] id indicates the barrier to wait at.
- * @param[in] timeout is the maximum length of time in ticks the calling
- * thread is willing to block.
- *
- * @retval a status code indicating success or the reason for failure.
- */
-rtems_status_code rtems_barrier_wait(
- rtems_id id,
- rtems_interval timeout
-);
-
-/**
- * @brief RTEMS Barrier Release
- *
- * Barrier Manager -- Release Tasks Waitng at a Barrier
- *
- * This routine implements the rtems_barrier_release directive. It
- * unblocks all of the threads waiting on the barrier associated with
- * @a id. The number of threads unblocked is returned in @a released.
- *
- *
- * @param[in] id indicates the barrier to wait at.
- * @param[out] released will contain the number of threads unblocked.
- *
- * @retval a status code indicating success or the reason for failure.
- */
-rtems_status_code rtems_barrier_release(
- rtems_id id,
- uint32_t *released
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/barrierimpl.h b/cpukit/rtems/include/rtems/rtems/barrierimpl.h
deleted file mode 100644
index f0b53e0cab..0000000000
--- a/cpukit/rtems/include/rtems/rtems/barrierimpl.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * @file rtems/rtems/barrier.inl
- *
- * @defgroup ClassicBarrier Barriers
- *
- * @ingroup ClassicRTEMS
- * @brief Inline Implementation from Barrier Manager
- *
- * This file contains the static inlin implementation of the inlined
- * routines from the Barrier Manager.
- */
-
-/*
- * COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_BARRIERIMPL_H
-#define _RTEMS_RTEMS_BARRIERIMPL_H
-
-#include <rtems/rtems/barrier.h>
-#include <rtems/score/corebarrierimpl.h>
-#include <rtems/score/objectimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicBarrierImpl Classic Barrier Implementation
- *
- * @ingroup ClassicBarrier
- *
- * @{
- */
-
-/**
- * The following defines the information control block used to manage
- * this class of objects.
- */
-extern Objects_Information _Barrier_Information;
-
-/**
- * @brief _Barrier_Allocate
- *
- * This function allocates a barrier control block from
- * the inactive chain of free barrier control blocks.
- */
-RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Allocate( void )
-{
- return (Barrier_Control *) _Objects_Allocate( &_Barrier_Information );
-}
-
-/**
- * @brief _Barrier_Free
- *
- * This routine frees a barrier control block to the
- * inactive chain of free barrier control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Barrier_Free (
- Barrier_Control *the_barrier
-)
-{
- _CORE_barrier_Destroy( &the_barrier->Barrier );
- _Objects_Free( &_Barrier_Information, &the_barrier->Object );
-}
-
-RTEMS_INLINE_ROUTINE Barrier_Control *_Barrier_Get(
- Objects_Id id,
- Thread_queue_Context *queue_context
-)
-{
- _Thread_queue_Context_initialize( queue_context );
- return (Barrier_Control *) _Objects_Get(
- id,
- &queue_context->Lock_context.Lock_context,
- &_Barrier_Information
- );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/cache.h b/cpukit/rtems/include/rtems/rtems/cache.h
deleted file mode 100644
index f1dc9bf03d..0000000000
--- a/cpukit/rtems/include/rtems/rtems/cache.h
+++ /dev/null
@@ -1,370 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicCache
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_CACHE_H
-#define _RTEMS_RTEMS_CACHE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/system.h>
-#include <sys/types.h>
-
-/**
- * @defgroup ClassicCache Cache
- *
- * @ingroup ClassicRTEMS
- *
- * @brief The Cache Manager provides functions to perform maintenance
- * operations for data and instruction caches.
- *
- * The actual actions of the Cache Manager operations depend on the hardware
- * and the implementation provided by the CPU architecture port or a board
- * support package. Cache implementations tend to be highly hardware
- * dependent.
- *
- * @{
- */
-
-/**
- * @brief Returns the data cache line size in bytes.
- *
- * For multi-level caches this is the maximum of the cache line sizes of all
- * levels.
- *
- * @retval 0 No data cache is present.
- * @retval positive The data cache line size in bytes.
- */
-size_t rtems_cache_get_data_line_size( void );
-
-/**
- * @brief Returns the instruction cache line size in bytes.
- *
- * For multi-level caches this is the maximum of the cache line sizes of all
- * levels.
- *
- * @retval 0 No instruction cache is present.
- * @retval positive The instruction cache line size in bytes.
- */
-size_t rtems_cache_get_instruction_line_size( void );
-
-/**
- * @brief Returns the maximal cache line size of all cache kinds in bytes.
- *
- * Returns computed or obtained maximal cache line size of all
- * all caches in the system.
- *
- * @retval 0 No cache is present
- * @retval positive The maximal cache line size in bytes.
- */
-size_t rtems_cache_get_maximal_line_size( void );
-
-/**
- * @brief Returns the data cache size in bytes.
- *
- * @param[in] level The cache level of interest. The cache level zero
- * specifies the entire data cache.
- *
- * @returns The data cache size in bytes of the specified level.
- */
-size_t rtems_cache_get_data_cache_size( uint32_t level );
-
-/**
- * @brief Returns the instruction cache size in bytes.
- *
- * @param[in] level The cache level of interest. The cache level zero
- * specifies the entire instruction cache.
- *
- * @returns The instruction cache size in bytes of the specified level.
- */
-size_t rtems_cache_get_instruction_cache_size( uint32_t level );
-
-/**
- * @brief Flushes multiple data cache lines.
- *
- * Dirty cache lines covering the area are transfered to memory. Depending on
- * the cache implementation this may mark the lines as invalid.
- *
- * @param[in] addr The start address of the area to flush.
- * @param[in] size The size in bytes of the area to flush.
- */
-void rtems_cache_flush_multiple_data_lines( const void *addr, size_t size );
-
-/**
- * @brief Invalidates multiple data cache lines.
- *
- * The cache lines covering the area are marked as invalid. A later read
- * access in the area will load the data from memory.
- *
- * In case the area is not aligned on cache line boundaries, then this
- * operation may destroy unrelated data.
- *
- * @param[in] addr The start address of the area to invalidate.
- * @param[in] size The size in bytes of the area to invalidate.
- */
-void rtems_cache_invalidate_multiple_data_lines(
- const void *addr,
- size_t size
-);
-
-/**
- * @brief Invalidates multiple instruction cache lines.
- *
- * The cache lines covering the area are marked as invalid. A later
- * instruction fetch from the area will result in a load from memory.
- * In SMP mode, on processors without instruction cache snooping, this
- * operation will invalidate the instruction cache lines on all processors.
- * It should not be called from interrupt context in such case.
- *
- * @param[in] addr The start address of the area to invalidate.
- * @param[in] size The size in bytes of the area to invalidate.
- */
-void rtems_cache_invalidate_multiple_instruction_lines(
- const void *addr,
- size_t size
-);
-
-
-/**
- * @brief Ensure necessary synchronization required after code changes
- *
- * When code is loaded or modified then many Harvard cache equipped
- * systems require synchronization of main memory and or updated
- * code in data cache to ensure visibility of change in all
- * connected CPUs instruction memory view. This operation
- * should be used by run time loader for example.
- *
- * @param[in] addr The start address of the area to invalidate.
- * @param[in] size The size in bytes of the area to invalidate.
- */
-void rtems_cache_instruction_sync_after_code_change(
- const void * code_addr,
- size_t n_bytes
-);
-
-/**
- * @brief Flushes the entire data cache.
- *
- * @see rtems_cache_flush_multiple_data_lines().
- */
-void rtems_cache_flush_entire_data( void );
-
-/**
- * @brief Invalidates the entire instruction cache.
- *
- * @see rtems_cache_invalidate_multiple_instruction_lines().
- */
-void rtems_cache_invalidate_entire_instruction( void );
-
-/**
- * This function is responsible for performing a data cache
- * invalidate. It invalidates the entire cache.
- */
-void rtems_cache_invalidate_entire_data( void );
-
-/**
- * This function freezes the data cache.
- */
-void rtems_cache_freeze_data( void );
-
-/**
- * This function unfreezes the data cache.
- */
-void rtems_cache_unfreeze_data( void );
-
-/**
- * This function enables the data cache.
- */
-void rtems_cache_enable_data( void );
-
-/**
- * This function disables the data cache.
- */
-void rtems_cache_disable_data( void );
-
-/**
- * This function freezes the instruction cache.
- */
-void rtems_cache_freeze_instruction( void );
-
-/**
- * This function unfreezes the instruction cache.
- */
-void rtems_cache_unfreeze_instruction( void );
-
-/**
- * This function enables the instruction cache.
- */
-void rtems_cache_enable_instruction( void );
-
-/**
- * This function disables the instruction cache.
- */
-void rtems_cache_disable_instruction( void );
-
-/**
- * This function is used to allocate storage that spans an
- * integral number of cache blocks.
- */
-void *rtems_cache_aligned_malloc ( size_t nbytes );
-
-/**
- * @brief Allocates a memory area of size @a size bytes from cache coherent
- * memory.
- *
- * A size value of zero will return a unique address which may be freed with
- * rtems_cache_coherent_free().
- *
- * The memory allocated by this function can be released with a call to
- * rtems_cache_coherent_free().
- *
- * By default the C program heap allocator is used. In case special memory
- * areas must be used, then the BSP or the application must add cache coherent
- * memory areas for the allocator via rtems_cache_coherent_add_area().
- *
- * This function must be called from driver initialization or task context
- * only.
- *
- * @param[in] alignment If the alignment parameter is not equal to zero, the
- * allocated memory area will begin at an address aligned by this value.
- * @param[in] boundary If the boundary parameter is not equal to zero, the
- * allocated memory area will comply with a boundary constraint. The
- * boundary value specifies the set of addresses which are aligned by the
- * boundary value. The interior of the allocated memory area will not
- * contain an element of this set. The begin or end address of the area may
- * be a member of the set.
- *
- * @retval NULL If no memory is available or the parameters are inconsistent.
- * @retval other A pointer to the begin of the allocated memory area.
- */
-void *rtems_cache_coherent_allocate(
- size_t size,
- uintptr_t alignment,
- uintptr_t boundary
-);
-
-/**
- * @brief Frees memory allocated by rtems_cache_coherent_allocate().
- *
- * This function must be called from driver initialization or task context
- * only.
- *
- * @param[in] ptr A pointer returned by rtems_cache_coherent_allocate().
- */
-void rtems_cache_coherent_free( void *ptr );
-
-/**
- * @brief Adds a cache coherent memory area to the cache coherent allocator.
- *
- * This function must be called from BSP initialization, driver initialization
- * or task context only.
- *
- * @param[in] area_begin The area begin address.
- * @param[in] area_size The area size in bytes.
- *
- * @see rtems_cache_coherent_allocate().
- */
-void rtems_cache_coherent_add_area(
- void *area_begin,
- uintptr_t area_size
-);
-
-#if defined( RTEMS_SMP )
-
-/**
- * @brief Flushes multiple data cache lines for a set of processors
- *
- * Dirty cache lines covering the area are transferred to memory.
- * Depending on the cache implementation this may mark the lines as invalid.
- *
- * This operation should not be called from interrupt context.
- *
- * @param[in] addr The start address of the area to flush.
- * @param[in] size The size in bytes of the area to flush.
- * @param[in] setsize The size of the processor set.
- * @param[in] set The target processor set.
- */
-void rtems_cache_flush_multiple_data_lines_processor_set(
- const void *addr,
- size_t size,
- const size_t setsize,
- const cpu_set_t *set
-);
-
-/**
- * @brief Invalidates multiple data cache lines for a set of processors
- *
- * The cache lines covering the area are marked as invalid. A later read
- * access in the area will load the data from memory.
- *
- * In case the area is not aligned on cache line boundaries, then this
- * operation may destroy unrelated data.
- *
- * This operation should not be called from interrupt context.
- *
- * @param[in] addr The start address of the area to invalidate.
- * @param[in] size The size in bytes of the area to invalidate.
- * @param[in] setsize The size of the processor set.
- * @param[in] set The target processor set.
- */
-void rtems_cache_invalidate_multiple_data_lines_processor_set(
- const void *addr,
- size_t size,
- const size_t setsize,
- const cpu_set_t *set
-);
-
-/**
- * @brief Flushes the entire data cache for a set of processors
- *
- * This operation should not be called from interrupt context.
- *
- * @see rtems_cache_flush_multiple_data_lines().
- *
- * @param[in] setsize The size of the processor set.
- * @param[in] set The target processor set.
- */
-void rtems_cache_flush_entire_data_processor_set(
- const size_t setsize,
- const cpu_set_t *set
-);
-
-/**
- * @brief Invalidates the entire cache for a set of processors
- *
- * This function is responsible for performing a data cache
- * invalidate. It invalidates the entire cache for a set of
- * processors.
- *
- * This operation should not be called from interrupt context.
- *
- * @param[in] setsize The size of the processor set.
- * @param[in] set The target processor set.
- */
-void rtems_cache_invalidate_entire_data_processor_set(
- const size_t setsize,
- const cpu_set_t *set
-);
-
-#endif
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/clock.h b/cpukit/rtems/include/rtems/rtems/clock.h
deleted file mode 100644
index a837b88700..0000000000
--- a/cpukit/rtems/include/rtems/rtems/clock.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/**
- * @file rtems/rtems/clock.h
- *
- * @defgroup ClassicClock Clocks
- *
- * @ingroup ClassicRTEMS
- * @brief Clock Manager API
- *
- * This include file contains all the constants and structures associated
- * with the Clock Manager. This manager provides facilities to set, obtain,
- * and continually update the current date and time.
- *
- * This manager provides directives to:
- *
- * - set the current date and time
- * - obtain the current date and time
- * - announce a clock tick
- * - obtain the system uptime
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_CLOCK_H
-#define _RTEMS_RTEMS_CLOCK_H
-
-#include <rtems/score/watchdog.h>
-#include <rtems/score/tod.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/types.h>
-#include <rtems/config.h>
-#include <rtems/score/timecounterimpl.h>
-
-#include <sys/time.h> /* struct timeval */
-
-/**
- * @defgroup ClassicClock Clocks
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Clock
- * Manager.
- */
-/**@{*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Obtain Current Time of Day (Classic TOD)
- *
- * This routine implements the rtems_clock_get_tod directive. It returns
- * the current time of day in the format defined by RTEID.
- *
- * Clock Manager - rtems_clock_get_tod
- *
- * @param[in] time_buffer points to the time of day structure
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the time_buffer will
- * be filled in with the current time of day.
- */
-rtems_status_code rtems_clock_get_tod(
- rtems_time_of_day *time_buffer
-);
-
-/**
- * @brief Obtain TOD in struct timeval Format
- *
- * This routine implements the rtems_clock_get_tod_timeval
- * directive.
- *
- * @param[in] time points to the struct timeval variable to fill in
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the time will
- * be filled in with the current time of day.
- */
-rtems_status_code rtems_clock_get_tod_timeval(
- struct timeval *time
-);
-
-/**
- * @brief Obtain Seconds Since Epoch
- *
- * This routine implements the rtems_clock_get_seconds_since_epoch
- * directive.
- *
- * @param[in] the_interval points to the interval variable to fill in
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the time_buffer will
- * be filled in with the current time of day.
- */
-rtems_status_code rtems_clock_get_seconds_since_epoch(
- rtems_interval *the_interval
-);
-
-/**
- * @brief Gets the current ticks counter value.
- *
- * @return The current tick counter value. With a 1ms clock tick, this counter
- * overflows after 50 days since boot.
- */
-RTEMS_INLINE_ROUTINE rtems_interval rtems_clock_get_ticks_since_boot(void)
-{
- return _Watchdog_Ticks_since_boot;
-}
-
-/**
- * @brief Returns the ticks counter value delta ticks in the future.
- *
- * @param[in] delta The ticks delta value.
- *
- * @return The tick counter value delta ticks in the future.
- */
-RTEMS_INLINE_ROUTINE rtems_interval rtems_clock_tick_later(
- rtems_interval delta
-)
-{
- return _Watchdog_Ticks_since_boot + delta;
-}
-
-/**
- * @brief Returns the ticks counter value at least delta microseconds in the
- * future.
- *
- * @param[in] delta_in_usec The delta value in microseconds.
- *
- * @return The tick counter value at least delta microseconds in the future.
- */
-RTEMS_INLINE_ROUTINE rtems_interval rtems_clock_tick_later_usec(
- rtems_interval delta_in_usec
-)
-{
- rtems_interval us_per_tick = rtems_configuration_get_microseconds_per_tick();
-
- /*
- * Add one additional tick, since we don't know the time to the clock next
- * tick.
- */
- return _Watchdog_Ticks_since_boot
- + (delta_in_usec + us_per_tick - 1) / us_per_tick + 1;
-}
-
-/**
- * @brief Returns true if the current ticks counter value indicates a time
- * before the time specified by the tick value and false otherwise.
- *
- * @param[in] tick The tick value.
- *
- * This can be used to write busy loops with a timeout.
- *
- * @code
- * status busy( void )
- * {
- * rtems_interval timeout = rtems_clock_tick_later_usec( 10000 );
- *
- * do {
- * if ( ok() ) {
- * return success;
- * }
- * } while ( rtems_clock_tick_before( timeout ) );
- *
- * return timeout;
- * }
- * @endcode
- *
- * @retval true The current ticks counter value indicates a time before the
- * time specified by the tick value.
- * @retval false Otherwise.
- */
-RTEMS_INLINE_ROUTINE bool rtems_clock_tick_before(
- rtems_interval tick
-)
-{
- return (int32_t) ( tick - _Watchdog_Ticks_since_boot ) > 0;
-}
-
-/**
- * @brief Obtain Ticks Per Seconds
- *
- * This routine implements the rtems_clock_get_ticks_per_second
- * directive.
- *
- * @retval This method returns the number of ticks per second. It cannot
- * fail since RTEMS is always configured to know the number of
- * ticks per second.
- */
-rtems_interval rtems_clock_get_ticks_per_second(void);
-
-/* Optimized variant for C/C++ without function call overhead */
-#define rtems_clock_get_ticks_per_second() ( _Watchdog_Ticks_per_second )
-
-/**
- * @brief Set the Current TOD
- *
- * This routine implements the rtems_clock_set directive. It sets
- * the current time of day to that in the time_buffer record.
- *
- * @param[in] time_buffer points to the new TOD
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- *
- * @note Activities scheduled based upon the current time of day
- * may be executed immediately if the time is moved forward.
- */
-rtems_status_code rtems_clock_set(
- const rtems_time_of_day *time_buffer
-);
-
-/**
- * @brief Announce a Clock Tick
- *
- * This routine implements the rtems_clock_tick directive. It is invoked
- * to inform RTEMS of the occurrence of a clock tick.
- *
- * @retval This directive always returns RTEMS_SUCCESSFUL.
- *
- * @note This method is typically called from an ISR and is the basis
- * for all timeouts and delays. This routine only works for leap-years
- * through 2099.
- */
-rtems_status_code rtems_clock_tick( void );
-
-/**
- * @brief Obtain the System Uptime
- *
- * This directive returns the system uptime.
- *
- * @param[in] uptime is a pointer to the time structure
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the @a uptime will be
- * filled in.
- */
-rtems_status_code rtems_clock_get_uptime(
- struct timespec *uptime
-);
-
-/**
- * @brief Gets the System Uptime in the Struct Timeval Format
- *
- * @param[out] uptime is a pointer to a struct timeval structure.
- *
- * @retval This methods returns the system uptime.
- *
- * @note Pointer must not be NULL.
- */
-void rtems_clock_get_uptime_timeval( struct timeval *uptime );
-
-/**
- * @brief Returns the system uptime in seconds.
- *
- * @retval The system uptime in seconds.
- */
-RTEMS_INLINE_ROUTINE time_t rtems_clock_get_uptime_seconds( void )
-{
- return _Timecounter_Time_uptime - 1;
-}
-
-/**
- * @brief Returns the system uptime in nanoseconds.
- *
- * @retval The system uptime in nanoseconds.
- */
-uint64_t rtems_clock_get_uptime_nanoseconds( void );
-
-/**
- * @brief TOD Validate
- *
- * This support function returns true if @a the_tod contains
- * a valid time of day, and false otherwise.
- *
- * @param[in] the_tod is the TOD structure to validate
- *
- * @retval This method returns true if the TOD is valid and false otherwise.
- *
- * @note This routine only works for leap-years through 2099.
- */
-bool _TOD_Validate(
- const rtems_time_of_day *the_tod
-);
-
-/**
- * @brief TOD to Seconds
- *
- * This function returns the number seconds between the epoch and @a the_tod.
- *
- * @param[in] the_tod is the TOD structure to convert to seconds
- *
- * @retval This method returns the number of seconds since epoch represented
- * by @a the_tod
- */
-Watchdog_Interval _TOD_To_seconds(
- const rtems_time_of_day *the_tod
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/config.h b/cpukit/rtems/include/rtems/rtems/config.h
deleted file mode 100644
index 77ee798d74..0000000000
--- a/cpukit/rtems/include/rtems/rtems/config.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * @file rtems/rtems/config.h
- *
- * @defgroup ClassicConfig Configuration
- *
- * @ingroup ClassicRTEMS
- * @brief Configuration Table
- *
- * This include file contains the table of user defined configuration
- * parameters specific for the RTEMS API.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_CONFIG_H
-#define _RTEMS_RTEMS_CONFIG_H
-
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/tasks.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicConfig Configuration
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the application's configuration
- * of the Classic API including the maximum number of each class of objects.
- */
-/**@{*/
-
-/**
- * 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:
- *
- * + required number of each object type
- */
-typedef struct {
- /**
- * This field contains the maximum number of Classic API
- * Tasks which are configured for this application.
- */
- uint32_t maximum_tasks;
-
- /**
- * This field contains the maximum number of Classic API
- * Timers which are configured for this application.
- */
- uint32_t maximum_timers;
-
- /**
- * This field contains the maximum number of Classic API
- * Semaphores which are configured for this application.
- */
- uint32_t maximum_semaphores;
-
- /**
- * This field contains the maximum number of Classic API
- * Message Queues which are configured for this application.
- */
- uint32_t maximum_message_queues;
-
- /**
- * This field contains the maximum number of Classic API
- * Partitions which are configured for this application.
- */
- uint32_t maximum_partitions;
-
- /**
- * This field contains the maximum number of Classic API
- * Regions which are configured for this application.
- */
- uint32_t maximum_regions;
-
- /**
- * This field contains the maximum number of Classic API
- * Dual Ported Memory Areas which are configured for this
- * application.
- */
- uint32_t maximum_ports;
-
- /**
- * This field contains the maximum number of Classic API
- * Rate Monotonic Periods which are configured for this
- * application.
- */
- uint32_t maximum_periods;
-
- /**
- * This field contains the maximum number of Classic API
- * Barriers which are configured for this application.
- */
- uint32_t maximum_barriers;
-
- /**
- * This field contains the number of Classic API Initialization
- * Tasks which are configured for this application.
- */
- uint32_t number_of_initialization_tasks;
-
- /**
- * This field is the set of Classic API Initialization
- * Tasks which are configured for this application.
- */
- rtems_initialization_tasks_table *User_initialization_tasks_table;
-} rtems_api_configuration_table;
-
-/**
- * @brief RTEMS API Configuration Table
- *
- * This is the RTEMS API Configuration Table expected to be generated
- * by confdefs.h.
- */
-extern rtems_api_configuration_table Configuration_RTEMS_API;
-
-/**@}*/
-
-/**
- * This macro returns the number of Classic API semaphores configured.
- */
-#define rtems_configuration_get_maximum_semaphores() \
- rtems_configuration_get_rtems_api_configuration()->maximum_semaphores
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/dpmem.h b/cpukit/rtems/include/rtems/rtems/dpmem.h
deleted file mode 100644
index e582d2d359..0000000000
--- a/cpukit/rtems/include/rtems/rtems/dpmem.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * @file rtems/rtems/dpmem.h
- *
- * @defgroup ClassicDPMEM Dual Ported Memory
- *
- * @ingroup ClassicRTEMS
- * @brief Dual Ported Memory Manager
- *
- * This include file contains all the constants and structures associated
- * with the Dual Ported Memory Manager. This manager provides a mechanism
- * for converting addresses between internal and external representations
- * for multiple dual-ported memory areas.
- *
- * Directives provided are:
- *
- * - create a port
- * - get ID of a port
- * - delete a port
- * - convert external to internal address
- * - convert internal to external address
- *
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_DPMEM_H
-#define _RTEMS_RTEMS_DPMEM_H
-
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/status.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicDPMEM Dual Ported Memory
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the
- * Classic API Dual Ported Memory Manager.
- */
-/**@{*/
-
-/**
- * The following structure defines the port control block. Each port
- * has a control block associated with it. This control block contains
- * all information required to support the port related operations.
- */
-typedef struct {
- /** This field is the object management portion of a Port instance. */
- Objects_Control Object;
- /** This field is the base internal address of the port. */
- void *internal_base;
- /** This field is the base external address of the port. */
- void *external_base;
- /** This field is the length of dual-ported area of the port. */
- uint32_t length;
-} Dual_ported_memory_Control;
-
-/**
- * @brief Creates a port into a dual-ported memory area.
- *
- * This routine implements the rtems_port_create directive. The port
- * will have the name @a name. The port maps onto an area of dual ported
- * memory of length bytes which has internal_start and external_start
- * as the internal and external starting addresses, respectively.
- * It returns the id of the created port in ID.
- *
- * @param[in] name is the user defined port name
- * @param[in] internal_start is the internal start address of port
- * @param[in] external_start is the external start address of port
- * @param[in] length is the physical length in bytes
- * @param[out] id is the address of port id to set
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the port id.
- */
-rtems_status_code rtems_port_create(
- rtems_name name,
- void *internal_start,
- void *external_start,
- uint32_t length,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Port Name to Id
- *
- * This routine implements the rtems_port_ident directive. This directive
- * returns the port ID associated with name. If more than one port is
- * named name, then the port to which the ID belongs is arbitrary.
- *
- * @param[in] name is the user defined port name
- * @param[out] id is the pointer to port id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_port_ident(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Delete Port
- *
- * This routine implements the rtems_port_delete directive. It deletes
- * the port associated with ID.
- *
- * @param[in] id is the dual-ported memory area id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_port_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Port External to Internal
- *
- * This routine implements the rtems_port_external_to_internal directive.
- * It returns the internal port address which maps to the provided
- * external port address for the specified port ID. If the given external
- * address is an invalid dual-ported address, then the internal address is
- * set to the given external address.
- *
- * @param[in] id is the id of dp memory object
- * @param[in] external is the external address
- * @param[out] internal is the pointer of internal address to set
- *
- * @retval RTEMS_SUCCESSFUL
- */
-rtems_status_code rtems_port_external_to_internal(
- rtems_id id,
- void *external,
- void **internal
-);
-
-/**
- * @brief RTEMS Port Internal to External
- *
- * This routine implements the Port_internal_to_external directive.
- * It returns the external port address which maps to the provided
- * internal port address for the specified port ID. If the given
- * internal address is an invalid dual-ported address, then the
- * external address is set to the given internal address.
- *
- * @param[in] id is the id of dual-ported memory object
- * @param[in] internal is the internal address to set
- * @param[in] external is the pointer to external address
- *
- * @retval RTEMS_SUCCESSFUL and the external will be filled in
- * with the external addresses
- */
-rtems_status_code rtems_port_internal_to_external(
- rtems_id id,
- void *internal,
- void **external
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/dpmemimpl.h b/cpukit/rtems/include/rtems/rtems/dpmemimpl.h
deleted file mode 100644
index 52ac48c8dc..0000000000
--- a/cpukit/rtems/include/rtems/rtems/dpmemimpl.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicDPMEMImpl
- *
- * @brief Dual Ported Memory Manager Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_DPMEM_INL
-#define _RTEMS_RTEMS_DPMEM_INL
-
-#include <rtems/rtems/dpmem.h>
-#include <rtems/score/objectimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicDPMEMImpl Dual Ported Memory Manager Implementation
- *
- * @ingroup ClassicDPMEM
- *
- * @{
- */
-
-/**
- * @brief Define the internal Dual Ported Memory information
- * The following define the internal Dual Ported Memory information.
- */
-extern Objects_Information _Dual_ported_memory_Information;
-
-/**
- * @brief Allocates a port control block from the inactive chain
- * of free port control blocks.
- *
- * This routine allocates a port control block from the inactive chain
- * of free port control blocks.
- */
-RTEMS_INLINE_ROUTINE Dual_ported_memory_Control
- *_Dual_ported_memory_Allocate ( void )
-{
- return (Dual_ported_memory_Control *)
- _Objects_Allocate( &_Dual_ported_memory_Information );
-}
-
-/**
- * @brief Frees a port control block to the inactive chain
- * of free port control blocks.
- *
- * This routine frees a port control block to the inactive chain
- * of free port control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free (
- Dual_ported_memory_Control *the_port
-)
-{
- _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object );
-}
-
-RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get(
- Objects_Id id,
- ISR_lock_Context *lock_context
-)
-{
- return (Dual_ported_memory_Control *)
- _Objects_Get( id, lock_context, &_Dual_ported_memory_Information );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RTEMS_RTEMS_DPMEM_INL */
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/event.h b/cpukit/rtems/include/rtems/rtems/event.h
deleted file mode 100644
index 1cd64c0cfa..0000000000
--- a/cpukit/rtems/include/rtems/rtems/event.h
+++ /dev/null
@@ -1,526 +0,0 @@
-/**
- * @file rtems/rtems/event.h
- *
- * @defgroup ClassicEvent Events
- *
- * @ingroup ClassicRTEMS
- * @brief Information Related to Event Manager
- *
- * This include file contains the information pertaining to the Event
- * Manager. This manager provides a high performance method of communication
- * and synchronization.
- *
- * Directives provided are:
- *
- * - send an event set to a task
- * - receive event condition
- *
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_EVENT_H
-#define _RTEMS_RTEMS_EVENT_H
-
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/options.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicEventSet Event Set
- *
- * @ingroup ClassicEvent
- *
- * @{
- */
-
-/**
- * @brief Integer type to hold an event set of up to 32 events represented as
- * a bit field.
- */
-typedef uint32_t rtems_event_set;
-
-/**
- * @brief Constant used to send or receive all events.
- */
-#define RTEMS_ALL_EVENTS 0xFFFFFFFF
-
-/** @brief Defines the bit in the event set associated with event 0. */
-#define RTEMS_EVENT_0 0x00000001
-/** @brief Defines the bit in the event set associated with event 1. */
-#define RTEMS_EVENT_1 0x00000002
-/** @brief Defines the bit in the event set associated with event 2. */
-#define RTEMS_EVENT_2 0x00000004
-/** @brief Defines the bit in the event set associated with event 3. */
-#define RTEMS_EVENT_3 0x00000008
-/** @brief Defines the bit in the event set associated with event 4. */
-#define RTEMS_EVENT_4 0x00000010
-/** @brief Defines the bit in the event set associated with event 5. */
-#define RTEMS_EVENT_5 0x00000020
-/** @brief Defines the bit in the event set associated with event 6. */
-#define RTEMS_EVENT_6 0x00000040
-/** @brief Defines the bit in the event set associated with event 7. */
-#define RTEMS_EVENT_7 0x00000080
-/** @brief Defines the bit in the event set associated with event 8. */
-#define RTEMS_EVENT_8 0x00000100
-/** @brief Defines the bit in the event set associated with event 9. */
-#define RTEMS_EVENT_9 0x00000200
-/** @brief Defines the bit in the event set associated with event 10. */
-#define RTEMS_EVENT_10 0x00000400
-/** @brief Defines the bit in the event set associated with event 11. */
-#define RTEMS_EVENT_11 0x00000800
-/** @brief Defines the bit in the event set associated with event 12. */
-#define RTEMS_EVENT_12 0x00001000
-/** @brief Defines the bit in the event set associated with event 13. */
-#define RTEMS_EVENT_13 0x00002000
-/** @brief Defines the bit in the event set associated with event 14. */
-#define RTEMS_EVENT_14 0x00004000
-/** @brief Defines the bit in the event set associated with event 15. */
-#define RTEMS_EVENT_15 0x00008000
-/** @brief Defines the bit in the event set associated with event 16. */
-#define RTEMS_EVENT_16 0x00010000
-/** @brief Defines the bit in the event set associated with event 17. */
-#define RTEMS_EVENT_17 0x00020000
-/** @brief Defines the bit in the event set associated with event 18. */
-#define RTEMS_EVENT_18 0x00040000
-/** @brief Defines the bit in the event set associated with event 19. */
-#define RTEMS_EVENT_19 0x00080000
-/** @brief Defines the bit in the event set associated with event 20. */
-#define RTEMS_EVENT_20 0x00100000
-/** @brief Defines the bit in the event set associated with event 21. */
-#define RTEMS_EVENT_21 0x00200000
-/** @brief Defines the bit in the event set associated with event 22. */
-#define RTEMS_EVENT_22 0x00400000
-/** @brief Defines the bit in the event set associated with event 23. */
-#define RTEMS_EVENT_23 0x00800000
-/** @brief Defines the bit in the event set associated with event 24. */
-#define RTEMS_EVENT_24 0x01000000
-/** @brief Defines the bit in the event set associated with event 25. */
-#define RTEMS_EVENT_25 0x02000000
-/** @brief Defines the bit in the event set associated with event 26. */
-#define RTEMS_EVENT_26 0x04000000
-/** @brief Defines the bit in the event set associated with event 27. */
-#define RTEMS_EVENT_27 0x08000000
-/** @brief Defines the bit in the event set associated with event 29. */
-#define RTEMS_EVENT_28 0x10000000
-/** @brief Defines the bit in the event set associated with event 29. */
-#define RTEMS_EVENT_29 0x20000000
-/** @brief Defines the bit in the event set associated with event 30. */
-#define RTEMS_EVENT_30 0x40000000
-/** @brief Defines the bit in the event set associated with event 31. */
-#define RTEMS_EVENT_31 0x80000000
-
-/** @} */
-
-/**
- * @defgroup ClassicEvent Events
- *
- * @ingroup ClassicRTEMS
- *
- * @brief The event manager provides a high performance method of intertask
- * communication and synchronization.
- *
- * An event flag is used by a task (or ISR) to inform another task of the
- * occurrence of a significant situation. Thirty-two event flags are
- * associated with each task. A collection of one or more event flags is
- * referred to as an event set. The data type rtems_event_set is used to
- * manage event sets.
- *
- * The application developer should remember the following key characteristics
- * of event operations when utilizing the event manager:
- *
- * - Events provide a simple synchronization facility.
- * - Events are aimed at tasks.
- * - Tasks can wait on more than one event simultaneously.
- * - Events are independent of one another.
- * - Events do not hold or transport data.
- * - Events are not queued. In other words, if an event is sent more than once
- * to a task before being received, the second and subsequent send
- * operations to that same task have no effect.
- *
- * An event set is posted when it is directed (or sent) to a task. A pending
- * event is an event that has been posted but not received. An event condition
- * is used to specify the event set which the task desires to receive and the
- * algorithm which will be used to determine when the request is satisfied. An
- * event condition is satisfied based upon one of two algorithms which are
- * selected by the user. The @ref RTEMS_EVENT_ANY algorithm states that an
- * event condition is satisfied when at least a single requested event is
- * posted. The @ref RTEMS_EVENT_ALL algorithm states that an event condition
- * is satisfied when every requested event is posted.
- *
- * An event set or condition is built by a bitwise or of the desired events.
- * The set of valid events is @ref RTEMS_EVENT_0 through @ref RTEMS_EVENT_31.
- * If an event is not explicitly specified in the set or condition, then it is
- * not present. Events are specifically designed to be mutually exclusive,
- * therefore bitwise or and addition operations are equivalent as long as each
- * event appears exactly once in the event set list.
- *
- * For example, when sending the event set consisting of @ref RTEMS_EVENT_6,
- * @ref RTEMS_EVENT_15, and @ref RTEMS_EVENT_31, the event parameter to the
- * rtems_event_send() directive should be @ref RTEMS_EVENT_6 |
- * @ref RTEMS_EVENT_15 | @ref RTEMS_EVENT_31.
- *
- * @{
- */
-
-/**
- * @brief Constant used to receive the set of currently pending events in
- * rtems_event_receive().
- */
-#define RTEMS_PENDING_EVENTS 0
-
-/**
- * @brief Sends an Event Set to the Target Task
- *
- * This directive sends an event set @a event_in to the task specified by
- * @a id.
- *
- * Based upon the state of the target task, one of the following situations
- * applies. The target task is
- * - blocked waiting for events.
- * If the waiting task's input event condition is
- * - satisfied, then the task is made ready for execution.
- * - not satisfied, then the event set is posted but left pending and the
- * task remains blocked.
- * - not waiting for events.
- * - The event set is posted and left pending.
- *
- * Identical events sent to a task are not queued. In other words, the second,
- * and subsequent, posting of an event to a task before it can perform an
- * rtems_event_receive() has no effect.
- *
- * The calling task will be preempted if it has preemption enabled and a
- * higher priority task is unblocked as the result of this directive.
- *
- * Sending an event set to a global task which does not reside on the local
- * node will generate a request telling the remote node to send the event set
- * to the appropriate task.
- *
- * @param[in] id Identifier of the target task. Specifying @ref RTEMS_SELF
- * results in the event set being sent to the calling task.
- * @param[in] event_in Event set sent to the target task.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ID Invalid task identifier.
- */
-rtems_status_code rtems_event_send (
- rtems_id id,
- rtems_event_set event_in
-);
-
-/**
- * @brief Receives pending events.
- *
- * This directive attempts to receive the event condition specified in
- * @a event_in. If @a event_in is set to @ref RTEMS_PENDING_EVENTS, then the
- * current pending events are returned in @a event_out and left pending. The
- * @ref RTEMS_WAIT and @ref RTEMS_NO_WAIT options in the @a option_set
- * parameter are used to specify whether or not the task is willing to wait
- * for the event condition to be satisfied. The @ref RTEMS_EVENT_ANY and @ref
- * RTEMS_EVENT_ALL are used in the @a option_set parameter to specify whether
- * at least a single event or the complete event set is necessary to satisfy
- * the event condition. The @a event_out parameter is returned to the calling
- * task with the value that corresponds to the events in @a event_in that were
- * satisfied.
- *
- * A task can determine the pending event set by using a value of
- * @ref RTEMS_PENDING_EVENTS for the input event set @a event_in. The pending
- * events are returned to the calling task but the event set is left
- * unaltered.
- *
- * A task can receive all of the currently pending events by using the a value
- * of @ref RTEMS_ALL_EVENTS for the input event set @a event_in and
- * @ref RTEMS_NO_WAIT | @ref RTEMS_EVENT_ANY for the option set @a option_set.
- * The pending events are returned to the calling task and the event set is
- * cleared. If no events are pending then the @ref RTEMS_UNSATISFIED status
- * code will be returned.
- *
- * If pending events satisfy the event condition, then @a event_out is set to
- * the satisfied events and the pending events in the event condition are
- * cleared. If the event condition is not satisfied and @ref RTEMS_NO_WAIT is
- * specified, then @a event_out is set to the currently satisfied events. If
- * the calling task chooses to wait, then it will block waiting for the event
- * condition.
- *
- * If the calling task must wait for the event condition to be satisfied, then
- * the timeout parameter is used to specify the maximum interval to wait. If
- * it is set to @ref RTEMS_NO_TIMEOUT, then the calling task will wait forever.
- *
- * This directive only affects the events specified in @a event_in. Any
- * pending events that do not correspond to any of the events specified in
- * @a event_in will be left pending.
- *
- * A clock tick is required to support the wait with time out functionality of
- * this directive.
- *
- * @param[in] event_in Set of requested events (input events).
- * @param[in] option_set Use a bitwise or of the following options
- * - @ref RTEMS_WAIT - task will wait for event (default),
- * - @ref RTEMS_NO_WAIT - task should not wait,
- * - @ref RTEMS_EVENT_ALL - return after all events (default), and
- * - @ref RTEMS_EVENT_ANY - return after any events.
- * @param[in] ticks Time out in ticks. Use @ref RTEMS_NO_TIMEOUT to wait
- * without a time out (potentially forever).
- * @param[out] event_out Set of received events (output events).
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_UNSATISFIED Input events not satisfied (only with the
- * @ref RTEMS_NO_WAIT option).
- * @retval RTEMS_INVALID_ADDRESS The @a event_out pointer is @c NULL.
- * @retval RTEMS_TIMEOUT Timed out waiting for events.
- */
-rtems_status_code rtems_event_receive (
- rtems_event_set event_in,
- rtems_option option_set,
- rtems_interval ticks,
- rtems_event_set *event_out
-);
-
-/** @} */
-
-/**
- * @defgroup ClassicEventSystem System Events
- *
- * @ingroup ClassicEvent
- *
- * System events are similar to normal events. They offer a second set of
- * events. These events are intended for internal RTEMS use and should not be
- * used by applications (with the exception of the transient system event).
- *
- * The event @ref RTEMS_EVENT_SYSTEM_TRANSIENT is used for transient usage.
- * See also @ref ClassicEventTransient. This event may be used by every entity
- * that fulfils its usage pattern.
- */
-/**@{**/
-
-/**
- * @brief Reserved system event for network SBWAIT usage.
- */
-#define RTEMS_EVENT_SYSTEM_NETWORK_SBWAIT RTEMS_EVENT_24
-
-/**
- * @brief Reserved system event for network SOSLEEP usage.
- */
-#define RTEMS_EVENT_SYSTEM_NETWORK_SOSLEEP RTEMS_EVENT_25
-
-/**
- * @brief Reserved system event for network socket close.
- */
-#define RTEMS_EVENT_SYSTEM_NETWORK_CLOSE RTEMS_EVENT_26
-
-/**
- * @brief Reserved system event to resume server threads, e.g timer or
- * interrupt server.
- */
-#define RTEMS_EVENT_SYSTEM_SERVER_RESUME RTEMS_EVENT_29
-
-/**
- * @brief Reserved system event for the server threads, e.g timer or interrupt
- * server.
- */
-#define RTEMS_EVENT_SYSTEM_SERVER RTEMS_EVENT_30
-
-/**
- * @brief Reserved system event for transient usage.
- */
-#define RTEMS_EVENT_SYSTEM_TRANSIENT RTEMS_EVENT_31
-
-/**
- * @brief See rtems_event_send().
- */
-rtems_status_code rtems_event_system_send(
- rtems_id id,
- rtems_event_set event_in
-);
-
-/**
- * @brief See rtems_event_receive().
- */
-rtems_status_code rtems_event_system_receive(
- rtems_event_set event_in,
- rtems_option option_set,
- rtems_interval ticks,
- rtems_event_set *event_out
-);
-
-/** @} */
-
-/**
- * @defgroup ClassicEventTransient Transient Event
- *
- * @ingroup ClassicEvent
- *
- * The transient event can be used by a client task to issue a request to
- * another task or interrupt service (server). The server can send the
- * transient event to the client task to notify about a request completion, see
- * rtems_event_transient_send(). The client task can wait for the transient
- * event reception with rtems_event_transient_receive().
- *
- * The user of the transient event must ensure that this event is not pending
- * once the request is finished or cancelled. A successful reception of the
- * transient event with rtems_event_transient_receive() will clear the
- * transient event. If a reception with timeout is used the transient event
- * state is undefined after a timeout return status. The transient event can
- * be cleared unconditionally with the non-blocking
- * rtems_event_transient_clear().
- *
- * @msc
- * hscale="1.6";
- * M [label="Main Task"], IDLE [label="Idle Task"], S [label="Server"], TIME [label="System Tick Handler"];
- * |||;
- * --- [label="sequence with request completion"];
- * M box M [label="prepare request\nissue request\nrtems_event_transient_receive()"];
- * M=>>IDLE [label="blocking operation"];
- * IDLE=>>S [label="request completion"];
- * S box S [label="rtems_event_transient_send()"];
- * S=>>M [label="task is ready again"];
- * M box M [label="finish request"];
- * |||;
- * --- [label="sequence with early request completion"];
- * M box M [label="prepare request\nissue request"];
- * M=>>S [label="request completion"];
- * S box S [label="rtems_event_transient_send()"];
- * S=>>M [label="transient event is now pending"];
- * M box M [label="rtems_event_transient_receive()\nfinish request"];
- * |||;
- * --- [label="sequence with timeout event"];
- * M box M [label="prepare request\nissue request\nrtems_event_transient_receive()"];
- * M=>>IDLE [label="blocking operation"];
- * IDLE=>>TIME [label="timeout expired"];
- * TIME box TIME [label="cancel blocking operation"];
- * TIME=>>M [label="task is ready again"];
- * M box M [label="cancel request\nrtems_event_transient_clear()"];
- * @endmsc
- *
- * Suppose you have a task that wants to issue a certain request and then waits
- * for request completion. It can create a request structure and store its
- * task identifier there. Now it can place the request on a work queue of
- * another task (or interrupt handler). Afterwards the task waits for the
- * reception of the transient event. Once the server task is finished with the
- * request it can send the transient event to the waiting task and wake it up.
- *
- * @code
- * #include <assert.h>
- * #include <rtems.h>
- *
- * typedef struct {
- * rtems_id task_id;
- * bool work_done;
- * } request;
- *
- * void server(rtems_task_argument arg)
- * {
- * rtems_status_code sc;
- * request *req = (request *) arg;
- *
- * req->work_done = true;
- *
- * sc = rtems_event_transient_send(req->task_id);
- * assert(sc == RTEMS_SUCCESSFUL);
- *
- * sc = rtems_task_delete(RTEMS_SELF);
- * assert(sc == RTEMS_SUCCESSFUL);
- * }
- *
- * void issue_request_and_wait_for_completion(void)
- * {
- * rtems_status_code sc;
- * rtems_id id;
- * request req;
- *
- * req.task_id = rtems_task_self();
- * req.work_done = false;
- *
- * sc = rtems_task_create(
- * rtems_build_name('S', 'E', 'R', 'V'),
- * 1,
- * RTEMS_MINIMUM_STACK_SIZE,
- * RTEMS_DEFAULT_MODES,
- * RTEMS_DEFAULT_ATTRIBUTES,
- * &id
- * );
- * assert(sc == RTEMS_SUCCESSFUL);
- *
- * sc = rtems_task_start(id, server, (rtems_task_argument) &req);
- * assert(sc == RTEMS_SUCCESSFUL);
- *
- * sc = rtems_event_transient_receive(RTEMS_WAIT, RTEMS_NO_TIMEOUT);
- * assert(sc == RTEMS_SUCCESSFUL);
- *
- * assert(req.work_done);
- * }
- * @endcode
- */
-/**@{**/
-
-/**
- * @brief See rtems_event_system_send().
- *
- * The system event @ref RTEMS_EVENT_SYSTEM_TRANSIENT will be sent.
- */
-RTEMS_INLINE_ROUTINE rtems_status_code rtems_event_transient_send(
- rtems_id id
-)
-{
- return rtems_event_system_send( id, RTEMS_EVENT_SYSTEM_TRANSIENT );
-}
-
-/**
- * @brief See rtems_event_system_receive().
- *
- * The system event @ref RTEMS_EVENT_SYSTEM_TRANSIENT will be received.
- */
-RTEMS_INLINE_ROUTINE rtems_status_code rtems_event_transient_receive(
- rtems_option option_set,
- rtems_interval ticks
-)
-{
- rtems_event_set event_out;
-
- return rtems_event_system_receive(
- RTEMS_EVENT_SYSTEM_TRANSIENT,
- RTEMS_EVENT_ALL | option_set,
- ticks,
- &event_out
- );
-}
-
-/**
- * @brief See rtems_event_system_receive().
- *
- * The system event @ref RTEMS_EVENT_SYSTEM_TRANSIENT will be cleared.
- */
-RTEMS_INLINE_ROUTINE void rtems_event_transient_clear( void )
-{
- rtems_event_set event_out;
-
- rtems_event_system_receive(
- RTEMS_EVENT_SYSTEM_TRANSIENT,
- RTEMS_EVENT_ALL | RTEMS_NO_WAIT,
- 0,
- &event_out
- );
-}
-
-/** @} */
-
-typedef struct {
- rtems_event_set pending_events;
-} Event_Control;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/eventimpl.h b/cpukit/rtems/include/rtems/rtems/eventimpl.h
deleted file mode 100644
index 933ea0fe2b..0000000000
--- a/cpukit/rtems/include/rtems/rtems/eventimpl.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicEventImpl
- *
- * @brief Classic Event Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_EVENTIMPL_H
-#define _RTEMS_RTEMS_EVENTIMPL_H
-
-#include <rtems/rtems/event.h>
-#include <rtems/score/thread.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicEventImpl Classic Event Implementation
- *
- * @ingroup ClassicEvent
- *
- * @{
- */
-
-/**
- * This constant is passed as the event_in to the
- * rtems_event_receive directive to determine which events are pending.
- */
-#define EVENT_CURRENT 0
-
-/**
- * The following constant is the value of an event set which
- * has no events pending.
- */
-#define EVENT_SETS_NONE_PENDING 0
-
-rtems_status_code _Event_Seize(
- rtems_event_set event_in,
- rtems_option option_set,
- rtems_interval ticks,
- rtems_event_set *event_out,
- Thread_Control *executing,
- Event_Control *event,
- Thread_Wait_flags wait_class,
- States_Control block_state,
- ISR_lock_Context *lock_context
-);
-
-rtems_status_code _Event_Surrender(
- Thread_Control *the_thread,
- rtems_event_set event_in,
- Event_Control *event,
- Thread_Wait_flags wait_class,
- ISR_lock_Context *lock_context
-);
-
-/**
- * @brief Timeout Event
- */
-void _Event_Timeout(
- Objects_Id id,
- void *arg
-);
-
-RTEMS_INLINE_ROUTINE void _Event_Initialize( Event_Control *event )
-{
- event->pending_events = EVENT_SETS_NONE_PENDING;
-}
-
-/**
- * @brief Checks if on events are posted in the event_set.
- *
- * This function returns TRUE if on events are posted in the event_set,
- * and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Event_sets_Is_empty(
- rtems_event_set the_event_set
-)
-{
- return ( the_event_set == 0 );
-}
-
-/**
- * @brief Posts the given new_events into the event_set passed in.
- *
- * This routine posts the given new_events into the event_set
- * passed in. The result is returned to the user in event_set.
- */
-RTEMS_INLINE_ROUTINE void _Event_sets_Post(
- rtems_event_set the_new_events,
- rtems_event_set *the_event_set
-)
-{
- *the_event_set |= the_new_events;
-}
-
-/**
- * @brief Returns the events in event_condition that are set in event_set.
- *
- * This function returns the events in event_condition which are
- * set in event_set.
- */
-RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Get(
- rtems_event_set the_event_set,
- rtems_event_set the_event_condition
-)
-{
- return ( the_event_set & the_event_condition );
-}
-
-/**
- * @brief Removes the events in mask from the event_set passed in.
- *
- * This function removes the events in mask from the event_set
- * passed in. The result is returned to the user in event_set.
- */
-RTEMS_INLINE_ROUTINE rtems_event_set _Event_sets_Clear(
- rtems_event_set the_event_set,
- rtems_event_set the_mask
-)
-{
- return ( the_event_set & ~(the_mask) );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/eventmp.h>
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/eventmp.h b/cpukit/rtems/include/rtems/rtems/eventmp.h
deleted file mode 100644
index a80e60c4e0..0000000000
--- a/cpukit/rtems/include/rtems/rtems/eventmp.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * @file rtems/rtems/eventmp.h
- *
- * @defgroup ClassicEventMP Event MP Support
- *
- * @ingroup ClassicRTEMS
- * @brief Event Manager MP Support
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Event Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_EVENTMP_H
-#define _RTEMS_RTEMS_EVENTMP_H
-
-#ifndef _RTEMS_RTEMS_EVENTIMPL_H
-# error "Never use <rtems/rtems/eventmp.h> directly; include <rtems/rtems/eventimpl.h> instead."
-#endif
-
-#include <rtems/score/mpciimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicEventMP Event MP Support
- *
- * @ingroup ClassicMP
- *
- * This encapsulates functionality related to the transparent multiprocessing
- * support within the Classic API Event Manager.
- */
-/**@{*/
-
-/*
- * @brief Event_MP_Send_process_packet
- *
- * This routine performs a remote procedure call so that a
- * process operation can be performed on another node.
- *
- * @note This routine is not needed since there are no process
- * packets to be sent by this manager.
- */
-
-/**
- * @brief Issues a remote rtems_event_send() request.
- */
-rtems_status_code _Event_MP_Send(
- rtems_id id,
- rtems_event_set event_in
-);
-
-/**
- * @brief Event MP Packet Process
- *
- * This routine performs the actions specific to this package for
- * the request from another node.
- */
-void _Event_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-);
-
-/*
- * @brief Event_MP_Send_object_was_deleted
- *
- * This routine is invoked indirectly by the thread queue
- * when a proxy has been removed from the thread queue and
- * the remote node must be informed of this.
- *
- * This routine is not needed since there are no objects
- * deleted by this manager.
- */
-
-/*
- * @brief Event_MP_Send_extract_proxy
- *
- * This routine is invoked when a task is deleted and it
- * has a proxy which must be removed from a thread queue and
- * the remote node must be informed of this.
- *
- * This routine is not needed since there are no objects
- * deleted by this manager.
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/intr.h b/cpukit/rtems/include/rtems/rtems/intr.h
deleted file mode 100644
index 7f99d93883..0000000000
--- a/cpukit/rtems/include/rtems/rtems/intr.h
+++ /dev/null
@@ -1,373 +0,0 @@
-/**
- * @file rtems/rtems/intr.h
- *
- * @defgroup ClassicINTR Interrupts
- *
- * @ingroup ClassicRTEMS
- * @brief Header file for Interrupt Manager
- *
- * This include file contains all the constants and structures associated with
- * the Interrupt Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_INTR_H
-#define _RTEMS_RTEMS_INTR_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/rtems/status.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/isrlock.h>
-
-/**
- * @defgroup ClassicINTR Interrupts
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Interrupt
- * Manager.
- */
-/**@{*/
-
-/**
- * @brief Interrupt level type.
- */
-typedef ISR_Level rtems_interrupt_level;
-
-/**
- * @brief Control block type used to manage the vectors.
- */
-typedef ISR_Vector_number rtems_vector_number;
-
-/**
- * @brief Return type for interrupt handler.
- */
-typedef ISR_Handler rtems_isr;
-
-#if (CPU_SIMPLE_VECTORED_INTERRUPTS == FALSE)
-
-typedef ISR_Handler_entry rtems_isr_entry;
-
-#else
-/**
- * @brief Interrupt handler type.
- *
- * @see rtems_interrupt_catch()
- */
-typedef rtems_isr ( *rtems_isr_entry )(
- rtems_vector_number
- );
-
-/**
- * @brief RTEMS Interrupt Catch
- *
- * This directive installs @a new_isr_handler as the RTEMS interrupt service
- * routine for the interrupt vector with number @a vector. The previous RTEMS
- * interrupt service routine is returned in @a old_isr_handler.
- *
- * @param[in] new_isr_handler is the address of interrupt service routine
- * @param[in] vector is the interrupt vector number
- * @param[in] old_isr_handler address at which to store previous ISR address
- *
- * @retval RTEMS_SUCCESSFUL and *old_isr_handler filled with previous ISR
- * address
- */
-rtems_status_code rtems_interrupt_catch(
- rtems_isr_entry new_isr_handler,
- rtems_vector_number vector,
- rtems_isr_entry *old_isr_handler
-);
-#endif
-
-#if !defined(RTEMS_SMP)
-
-/**
- * @brief Disable RTEMS Interrupt
- *
- * @note The interrupt level shall be of type @ref rtems_interrupt_level.
- *
- * This macro is only available on uni-processor configurations. The macro
- * rtems_interrupt_local_disable() is available on all configurations.
- */
-#define rtems_interrupt_disable( _isr_cookie ) \
- _ISR_Local_disable(_isr_cookie)
-
-/**
- * @brief Enable RTEMS Interrupt
- *
- * @note The interrupt level shall be of type @ref rtems_interrupt_level.
- *
- * This macro is only available on uni-processor configurations. The macro
- * rtems_interrupt_local_enable() is available on all configurations.
- */
-#define rtems_interrupt_enable( _isr_cookie ) \
- _ISR_Local_enable(_isr_cookie)
-
-/**
- * @brief Flash RTEMS Interrupt
- *
- * @note The interrupt level shall be of type @ref rtems_interrupt_level.
- *
- * This macro is only available on uni-processor configurations. The macro
- * rtems_interrupt_local_disable() and rtems_interrupt_local_enable() is
- * available on all configurations.
- */
-#define rtems_interrupt_flash( _isr_cookie ) \
- _ISR_Local_flash(_isr_cookie)
-
-#endif /* RTEMS_SMP */
-
-/**
- * @brief This macro disables the interrupts on the current processor.
- *
- * On SMP configurations this will not ensure system wide mutual exclusion.
- * Use interrupt locks instead.
- *
- * @param[in] _isr_cookie The previous interrupt level is returned. The type
- * of this variable must be rtems_interrupt_level.
- *
- * @see rtems_interrupt_local_enable().
- */
-#define rtems_interrupt_local_disable( _isr_cookie ) \
- _ISR_Local_disable( _isr_cookie )
-
-/**
- * @brief This macro restores the previous interrupt level on the current
- * processor.
- *
- * @param[in] _isr_cookie The previous interrupt level returned by
- * rtems_interrupt_local_disable().
- */
-#define rtems_interrupt_local_enable( _isr_cookie ) \
- _ISR_Local_enable( _isr_cookie )
-
-/**
- * @brief RTEMS Interrupt Is in Progress
- *
- * A return value of true indicates that the caller is an interrupt service
- * routine and @b not a thread. The directives available to an interrupt
- * service routine are restricted.
- */
-#define rtems_interrupt_is_in_progress() \
- _ISR_Is_in_progress()
-
-/**
- * @brief This routine generates an interrupt.
- *
- * @note No implementation.
- */
-#define rtems_interrupt_cause( _interrupt_to_cause )
-
-/**
- * @brief This routine clears the specified interrupt.
- *
- * @note No implementation.
- */
-#define rtems_interrupt_clear( _interrupt_to_clear )
-
-/**
- * @defgroup ClassicINTRLocks Interrupt Locks
- *
- * @ingroup ClassicINTR
- *
- * @brief Low-level lock to protect critical sections accessed by threads and
- * interrupt service routines.
- *
- * On single processor configurations the interrupt locks degrade to simple
- * interrupt disable/enable sequences. No additional storage or objects are
- * required.
- *
- * This synchronization primitive is supported on SMP configurations. Here SMP
- * locks are used.
- * @{
- */
-
-/**
- * @brief Interrupt lock control.
- */
-typedef ISR_lock_Control rtems_interrupt_lock;
-
-/**
- * @brief Local interrupt lock context for acquire and release pairs.
- */
-typedef ISR_lock_Context rtems_interrupt_lock_context;
-
-/**
- * @brief Defines an interrupt lock member.
- *
- * Do not add a ';' after this macro.
- *
- * @param _designator The designator for the interrupt lock.
- */
-#define RTEMS_INTERRUPT_LOCK_MEMBER( _designator ) \
- ISR_LOCK_MEMBER( _designator )
-
-/**
- * @brief Declares an interrupt lock variable.
- *
- * Do not add a ';' after this macro.
- *
- * @param _qualifier The qualifier for the interrupt lock, e.g. extern.
- * @param _designator The designator for the interrupt lock.
- */
-#define RTEMS_INTERRUPT_LOCK_DECLARE( _qualifier, _designator ) \
- ISR_LOCK_DECLARE( _qualifier, _designator )
-
-/**
- * @brief Defines an interrupt lock variable.
- *
- * Do not add a ';' after this macro.
- *
- * @param _qualifier The qualifier for the interrupt lock, e.g. static.
- * @param _designator The designator for the interrupt lock.
- * @param _name The name for the interrupt lock. It must be a string. The
- * name is only used if profiling is enabled.
- */
-#define RTEMS_INTERRUPT_LOCK_DEFINE( _qualifier, _designator, _name ) \
- ISR_LOCK_DEFINE( _qualifier, _designator, _name )
-
-/**
- * @brief Defines an interrupt lock variable reference.
- *
- * Do not add a ';' after this macro.
- *
- * @param _designator The designator for the interrupt lock reference.
- * @param _target The target for the interrupt lock reference.
- */
-#define RTEMS_INTERRUPT_LOCK_REFERENCE( _designator, _target ) \
- ISR_LOCK_REFERENCE( _designator, _target )
-
-/**
- * @brief Initializer for static initialization of interrupt locks.
- *
- * @param _name The name for the interrupt lock. It must be a string. The
- * name is only used if profiling is enabled.
- */
-#define RTEMS_INTERRUPT_LOCK_INITIALIZER( _name ) ISR_LOCK_INITIALIZER( _name )
-
-/**
- * @brief Initializes an interrupt lock.
- *
- * Concurrent initialization leads to unpredictable results.
- *
- * @param[in,out] _lock The interrupt lock.
- * @param[in] _name The name for the interrupt lock. This name must be a
- * string persistent throughout the life time of this lock. The name is only
- * used if profiling is enabled.
- */
-#define rtems_interrupt_lock_initialize( _lock, _name ) \
- _ISR_lock_Initialize( _lock, _name )
-
-/**
- * @brief Destroys an interrupt lock.
- *
- * Concurrent destruction leads to unpredictable results.
- *
- * @param[in,out] _lock The interrupt lock control.
- */
-#define rtems_interrupt_lock_destroy( _lock ) \
- _ISR_lock_Destroy( _lock )
-
-/**
- * @brief Disables interrupts on the current processor.
- *
- * This function can be used in thread and interrupt context.
- *
- * @param[in,out] _lock_context The local interrupt lock context for an acquire
- * and release pair.
- *
- * @see rtems_interrupt_lock_acquire_isr().
- */
-#define rtems_interrupt_lock_interrupt_disable( _lock_context ) \
- _ISR_lock_ISR_disable( _lock_context )
-
-/**
- * @brief Acquires an interrupt lock.
- *
- * Interrupts will be disabled. On SMP configurations this function acquires
- * an SMP lock.
- *
- * This function can be used in thread and interrupt context.
- *
- * @param[in,out] _lock The interrupt lock.
- * @param[in,out] _lock_context The local interrupt lock context for an acquire
- * and release pair.
- *
- * @see rtems_interrupt_lock_release().
- */
-#define rtems_interrupt_lock_acquire( _lock, _lock_context ) \
- _ISR_lock_ISR_disable_and_acquire( _lock, _lock_context )
-
-/**
- * @brief Releases an interrupt lock.
- *
- * The interrupt status will be restored. On SMP configurations this function
- * releases an SMP lock.
- *
- * This function can be used in thread and interrupt context.
- *
- * @param[in,out] _lock The interrupt lock.
- * @param[in,out] _lock_context The local interrupt lock context for an acquire
- * and release pair.
- *
- * @see rtems_interrupt_lock_acquire().
- */
-#define rtems_interrupt_lock_release( _lock, _lock_context ) \
- _ISR_lock_Release_and_ISR_enable( _lock, _lock_context )
-
-/**
- * @brief Acquires an interrupt lock in the corresponding interrupt service
- * routine.
- *
- * The interrupt status will remain unchanged. On SMP configurations this
- * function acquires an SMP lock.
- *
- * In case the corresponding interrupt service routine can be interrupted by
- * higher priority interrupts and these interrupts enter the critical section
- * protected by this lock, then the result is unpredictable.
- *
- * @param[in,out] _lock The interrupt lock.
- * @param[in,out] _lock_context The local interrupt lock context for an acquire
- * and release pair.
- *
- * @see rtems_interrupt_lock_release_isr().
- */
-#define rtems_interrupt_lock_acquire_isr( _lock, _lock_context ) \
- _ISR_lock_Acquire( _lock, _lock_context )
-
-/**
- * @brief Releases an interrupt lock in the corresponding interrupt service
- * routine.
- *
- * The interrupt status will remain unchanged. On SMP configurations this
- * function releases an SMP lock.
- *
- * @param[in,out] _lock The interrupt lock.
- * @param[in,out] _lock_context The local interrupt lock context for an acquire
- * and release pair.
- *
- * @see rtems_interrupt_lock_acquire_isr().
- */
-#define rtems_interrupt_lock_release_isr( _lock, _lock_context ) \
- _ISR_lock_Release( _lock, _lock_context )
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/message.h b/cpukit/rtems/include/rtems/rtems/message.h
deleted file mode 100644
index 8ae9e156a1..0000000000
--- a/cpukit/rtems/include/rtems/rtems/message.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/**
- * @file rtems/rtems/message.h
- *
- * @defgroup ClassicMessageQueue Message Queues
- *
- * @ingroup ClassicRTEMS
- * @brief Message Queue Manager
- *
- * This include file contains all the constants and structures associated
- * with the Message Queue Manager. This manager provides a mechanism for
- * communication and synchronization between tasks using messages.
- *
- * Directives provided are:
- *
- * - create a queue
- * - get ID of a queue
- * - delete a queue
- * - put a message at the rear of a queue
- * - put a message at the front of a queue
- * - broadcast N messages to a queue
- * - receive message from a queue
- * - flush all messages on a queue
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_MESSAGE_H
-#define _RTEMS_RTEMS_MESSAGE_H
-
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/options.h>
-#include <rtems/rtems/attr.h>
-#include <rtems/score/object.h>
-#include <rtems/score/coremsg.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @ingroup ClassicMessageQueueImpl
- *
- * The following records define the control block used to manage
- * each message queue.
- */
-typedef struct {
- /** This field is the inherited object characteristics. */
- Objects_Control Object;
- /** This field is the instance of the SuperCore Message Queue. */
- CORE_message_queue_Control message_queue;
- /** This field is the attribute set as defined by the API. */
- rtems_attribute attribute_set;
-} Message_queue_Control;
-
-/**
- * @defgroup ClassicMessageQueue Message Queues
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Message Queue
- * Manager.
- */
-/**@{*/
-
-/**
- * @brief RTEMS Create Message Queue
- *
- * This routine implements the rtems_message_queue_create directive. The
- * message queue will have the @a name. If the @a attribute_set indicates
- * that the message queue is to be limited in the number of messages
- * that can be outstanding, then @a count indicates the maximum number of
- * messages that will be held. It returns the id of the created
- * message queue in @a id.
- *
- * @param[in] name is the user defined queue name
- * @param[in] count is the maximum message and reserved buffer count
- * @param[in] max_message_size is the maximum size of each message
- * @param[in] attribute_set is the process method
- * @param[in] id is the pointer to queue
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the @a id will
- * be filled in with the queue id.
- */
-rtems_status_code rtems_message_queue_create(
- rtems_name name,
- uint32_t count,
- size_t max_message_size,
- rtems_attribute attribute_set,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Message Queue Name to Id
- *
- * This routine implements the rtems_message_queue_ident directive.
- * This directive returns the message queue ID associated with NAME.
- * If more than one message queue is named name, then the message
- * queue to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the message queue named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the user defined message queue name
- * @param[in] node is the node(s) to be searched
- * @param[in] id is the pointer to message queue id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled with the message queue id
- */
-rtems_status_code rtems_message_queue_ident(
- rtems_name name,
- uint32_t node,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Delete Message Queue
- *
- * This routine implements the rtems_message_queue_delete directive. The
- * message queue indicated by ID is deleted.
- *
- * @param[in] id is the queue id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_message_queue_delete(
- rtems_id id
-);
-
-/**
- * @brief rtems_message_queue_send
- *
- * Message Queue Manager - rtems_message_queue_send
- *
- * This routine implements the rtems_message_queue_send directive.
- * This directive sends the message buffer to the message queue
- * indicated by ID. If one or more tasks is blocked waiting
- * to receive a message from this message queue, then one will
- * receive the message. The task selected to receive the
- * message is based on the task queue discipline algorithm in
- * use by this particular message queue. If no tasks are waiting,
- * then the message buffer will be placed at the REAR of the
- * chain of pending messages for this message queue.
- */
-rtems_status_code rtems_message_queue_send(
- rtems_id id,
- const void *buffer,
- size_t size
-);
-
-/**
- * @brief RTEMS Urgent Message Queue
- *
- * This routine implements the rtems_message_queue_urgent directive.
- * This directive has the same behavior as rtems_message_queue_send
- * except that if no tasks are waiting, the message buffer will
- * be placed at the FRONT of the chain of pending messages rather
- * than at the REAR.
- *
- * @param[in] id is the pointer to message queue
- * @param[in] buffer is the pointer to message buffer
- * @param[in] size is the size of message to send urgently
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_message_queue_urgent(
- rtems_id id,
- const void *buffer,
- size_t size
-);
-
-/**
- * @brief RTEMS Broadcast Message Queue
- *
- * This routine implements the rtems_message_queue_broadcast directive.
- * This directive sends the message buffer to all of the tasks blocked
- * waiting for a message on the message queue indicated by ID.
- * If no tasks are waiting, then the message buffer will not be queued.
- *
- * @param[in] id is the pointer to message queue
- * @param[in] buffer is the pointer to message buffer
- * @param[in] size is the size of message to broadcast
- * @param[in] count pointer to area to store number of threads made ready
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *count filled in with number of threads made ready
- */
-rtems_status_code rtems_message_queue_broadcast(
- rtems_id id,
- const void *buffer,
- size_t size,
- uint32_t *count
-);
-
-/**
- * @brief RTEMS Message Queue Receive
- *
- * This routine implements the rtems_message_queue_receive directive.
- * This directive is invoked when the calling task wishes to receive
- * a message from the message queue indicated by ID. The received
- * message is to be placed in buffer. If no messages are outstanding
- * and the option_set indicates that the task is willing to block,
- * then the task will be blocked until a message arrives or until,
- * optionally, timeout clock ticks have passed.
- *
- * @param[in] id is the queue id
- * @param[in] buffer is the pointer to message buffer
- * @param[in] size is the size of message receive
- * @param[in] option_set is the options on receive
- * @param[in] timeout is the number of ticks to wait
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_message_queue_receive(
- rtems_id id,
- void *buffer,
- size_t *size,
- rtems_option option_set,
- rtems_interval timeout
-);
-
-/**
- * @brief rtems_message_queue_flush
- *
- * This routine implements the rtems_message_queue_flush directive.
- * This directive takes all outstanding messages for the message
- * queue indicated by ID and returns them to the inactive message
- * chain. The number of messages flushed is returned in COUNT.
- *
- * Message Queue Manager
- */
-rtems_status_code rtems_message_queue_flush(
- rtems_id id,
- uint32_t *count
-);
-
-/**
- * @brief RTEMS Message Queue Get Number Pending
- *
- * Message Queue Manager
- *
- * This routine implements the rtems_message_queue_get_number_pending
- * directive. This directive returns the number of pending
- * messages for the message queue indicated by ID
- * chain. The number of messages pending is returned in COUNT.
- */
-rtems_status_code rtems_message_queue_get_number_pending(
- rtems_id id,
- uint32_t *count
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/messageimpl.h b/cpukit/rtems/include/rtems/rtems/messageimpl.h
deleted file mode 100644
index df7cea6829..0000000000
--- a/cpukit/rtems/include/rtems/rtems/messageimpl.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * @file rtems/rtems/message.inl
- *
- * This include file contains the static inline implementation of all
- * inlined routines in the Message Manager.
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_MESSAGEIMPL_H
-#define _RTEMS_RTEMS_MESSAGEIMPL_H
-
-#include <rtems/rtems/message.h>
-#include <rtems/score/objectimpl.h>
-#include <rtems/score/coremsgimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicMessageQueueImpl Classic Message Queue Implementation
- *
- * @ingroup ClassicMessageQueue
- *
- * @{
- */
-
-/**
- * The following enumerated type details the modes in which a message
- * may be submitted to a message queue. The message may be posted
- * in a send or urgent fashion.
- */
-typedef enum {
- /**
- * This value indicates the user wants to send the message using the
- * normal message insertion protocol (FIFO or priority).
- */
- MESSAGE_QUEUE_SEND_REQUEST = 0,
- /**
- * This value indicates the user considers the message to be urgent
- * and wants it inserted at the head of the pending message queue.
- */
- MESSAGE_QUEUE_URGENT_REQUEST = 1
-} Message_queue_Submit_types;
-
-/**
- * The following defines the information control block used to
- * manage this class of objects.
- */
-extern Objects_Information _Message_queue_Information;
-
-/**
- * @brief Message_queue_Submit
- *
- * This routine implements the directives rtems_message_queue_send
- * and rtems_message_queue_urgent. It processes a message that is
- * to be submitted to the designated message queue. The message will
- * either be processed as a send send message which it will be inserted
- * at the rear of the queue or it will be processed as an urgent message
- * which will be inserted at the front of the queue.
- */
-rtems_status_code _Message_queue_Submit(
- rtems_id id,
- const void *buffer,
- size_t size,
- Message_queue_Submit_types submit_type
-);
-
-/**
- * @brief Deallocates a message queue control block into
- * the inactive chain of free message queue control blocks.
- *
- * This routine deallocates a message queue control block into
- * the inactive chain of free message queue control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Message_queue_Free (
- Message_queue_Control *the_message_queue
-)
-{
- _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
-}
-
-RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get(
- Objects_Id id,
- Thread_queue_Context *queue_context
-)
-{
- _Thread_queue_Context_initialize( queue_context );
- return (Message_queue_Control *) _Objects_Get(
- id,
- &queue_context->Lock_context.Lock_context,
- &_Message_queue_Information
- );
-}
-
-RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Allocate( void )
-{
- return (Message_queue_Control *)
- _Objects_Allocate( &_Message_queue_Information );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/msgmp.h>
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/modes.h b/cpukit/rtems/include/rtems/rtems/modes.h
deleted file mode 100644
index 547ae13e05..0000000000
--- a/cpukit/rtems/include/rtems/rtems/modes.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * @file rtems/rtems/modes.h
- *
- * @defgroup ClassicModes Modes
- *
- * @ingroup ClassicRTEMS
- * @brief RTEMS thread and RTEMS_ASR modes
- *
- * This include file contains all constants and structures associated
- * with the RTEMS thread and RTEMS_ASR modes.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_MODES_H
-#define _RTEMS_RTEMS_MODES_H
-
-#include <rtems/score/cpu.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicModes Modes
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the task modes supported
- * by the Classic API Task Manager.
- */
-/**@{*/
-
-/**
- * The following type defines the control block used to manage
- * each a mode set.
- */
-typedef uint32_t Modes_Control;
-
-/**
- * The following constants define the individual modes and masks
- * which may be used to compose a mode set and to alter modes.
- */
-#define RTEMS_ALL_MODE_MASKS 0x0000ffff
-
-/**
- * This mode constant is the default mode set.
- */
-#define RTEMS_DEFAULT_MODES 0x00000000
-
-/**
- * This mode constant is used when the user wishes to obtain their
- * current execution mode.
- */
-#define RTEMS_CURRENT_MODE 0
-
-/** This mode constant corresponds to the timeslice enable/disable bit. */
-#define RTEMS_TIMESLICE_MASK 0x00000200
-
-/** This mode constant corresponds to the preemption enable/disable bit. */
-#define RTEMS_PREEMPT_MASK 0x00000100
-
-/** This mode constant corresponds to the signal enable/disable bit. */
-#define RTEMS_ASR_MASK 0x00000400
-
-/** This mode constant corresponds to the interrupt enable/disable bits. */
-#define RTEMS_INTERRUPT_MASK CPU_MODES_INTERRUPT_MASK
-
-/** This mode constant is used to indicate preemption is enabled. */
-#define RTEMS_PREEMPT 0x00000000
-/** This mode constant is used to indicate preemption is disabled. */
-#define RTEMS_NO_PREEMPT 0x00000100
-
-/** This mode constant is used to indicate timeslicing is disabled. */
-#define RTEMS_NO_TIMESLICE 0x00000000
-/** This mode constant is used to indicate timeslicing is enabled. */
-#define RTEMS_TIMESLICE 0x00000200
-
-/** This mode constant is used to indicate signal processing is enabled. */
-#define RTEMS_ASR 0x00000000
-/** This mode constant is used to indicate signal processing is disabled. */
-#define RTEMS_NO_ASR 0x00000400
-
-/**
- * @brief RTEMS_INTERRUPT_LEVEL
- *
- * This function returns the processor dependent interrupt
- * level which corresponds to the requested interrupt level.
- *
- * @note RTEMS supports 256 interrupt levels using the least
- * significant eight bits of MODES.CONTROL. On any
- * particular CPU, fewer than 256 levels may be supported.
- */
-#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \
- ( (_mode_set) & RTEMS_INTERRUPT_MASK )
-
-/**
- * @brief Interrupt Mask Variable
- *
- * This variable is used by bindings from languages other than C and C++.
- */
-extern const uint32_t rtems_interrupt_mask;
-
-/**
- * @brief Body for RTEMS_INTERRUPT_LEVEL Macro
- *
- * @param[in] level is the desired interrupt level
- *
- * @retval This methods returns a mode with the desired interrupt
- * @a level in the proper bitfield location.
- *
- * @note This variable is used by bindings from languages other than
- * C and C++.
- */
-Modes_Control rtems_interrupt_level_body(
- uint32_t level
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/modesimpl.h b/cpukit/rtems/include/rtems/rtems/modesimpl.h
deleted file mode 100644
index 8c1acc7cb9..0000000000
--- a/cpukit/rtems/include/rtems/rtems/modesimpl.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicModesImpl
- *
- * @brief Classic Modes Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_MODESIMPL_H
-#define _RTEMS_RTEMS_MODESIMPL_H
-
-#include <rtems/rtems/modes.h>
-#include <rtems/score/isrlevel.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicModesImpl Classic Modes Implementation
- *
- * @ingroup ClassicModes
- *
- * @{
- */
-
-/**
- * @brief Checks if any of the mode flags in mask are set in mode_set.
- *
- * This function returns TRUE if any of the mode flags in mask
- * are set in mode_set, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Modes_Mask_changed (
- Modes_Control mode_set,
- Modes_Control masks
-)
-{
- return ( mode_set & masks ) ? true : false;
-}
-
-/**
- * @brief Checks if mode_set says that Asynchronous Signal Processing is disabled.
- *
- * This function returns TRUE if mode_set indicates that Asynchronous
- * Signal Processing is disabled, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Modes_Is_asr_disabled (
- Modes_Control mode_set
-)
-{
- return (mode_set & RTEMS_ASR_MASK) == RTEMS_NO_ASR;
-}
-
-/**
- * @brief Checks if mode_set indicates that preemption is enabled.
- *
- * This function returns TRUE if mode_set indicates that preemption
- * is enabled, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Modes_Is_preempt (
- Modes_Control mode_set
-)
-{
- return (mode_set & RTEMS_PREEMPT_MASK) == RTEMS_PREEMPT;
-}
-
-/**
- * @brief Checks if mode_set indicates that timeslicing is enabled.
- *
- * This function returns TRUE if mode_set indicates that timeslicing
- * is enabled, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Modes_Is_timeslice (
- Modes_Control mode_set
-)
-{
- return (mode_set & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE;
-}
-
-/**
- * @brief Gets the interrupt level portion of the mode_set.
- *
- * This function returns the interrupt level portion of the mode_set.
- */
-RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level (
- Modes_Control mode_set
-)
-{
- return ( mode_set & RTEMS_INTERRUPT_MASK );
-}
-
-/**
- * @brief Sets the current interrupt level to that specified in the mode_set.
- *
- * This routine sets the current interrupt level to that specified
- * in the mode_set.
- */
-RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (
- Modes_Control mode_set
-)
-{
- _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );
-}
-
-/**
- * @brief Changes the modes in old_mode_set indicated by
- * mask to the requested values in new_mode_set.
- *
- * This routine changes the modes in old_mode_set indicated by
- * mask to the requested values in new_mode_set. The resulting
- * mode set is returned in out_mode_set and the modes that changed
- * is returned in changed.
- */
-RTEMS_INLINE_ROUTINE void _Modes_Change (
- Modes_Control old_mode_set,
- Modes_Control new_mode_set,
- Modes_Control mask,
- Modes_Control *out_mode_set,
- Modes_Control *changed
-)
-{
- Modes_Control _out_mode;
-
- _out_mode = old_mode_set;
- _out_mode &= ~mask;
- _out_mode |= new_mode_set & mask;
- *changed = _out_mode ^ old_mode_set;
- *out_mode_set = _out_mode;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/mp.h b/cpukit/rtems/include/rtems/rtems/mp.h
deleted file mode 100644
index f1b93b6751..0000000000
--- a/cpukit/rtems/include/rtems/rtems/mp.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * @file rtems/rtems/mp.h
- *
- * @defgroup ClassicMP Multiprocessing
- *
- * @ingroup ClassicRTEMS
- * @brief Multiprocessing Manager
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_MP_H
-#define _RTEMS_RTEMS_MP_H
-
-/**
- * @defgroup ClassicMP Multiprocessing
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the distributed
- * Multiprocessing support in the Classic API.
- */
-/**@{*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief RTEMS Multiprocessing Announce
- *
- * This routine implements the MULTIPROCESSING_ANNOUNCE directive.
- * It is invoked by the MPCI layer to indicate that an MPCI packet
- * has been received.
- */
-void rtems_multiprocessing_announce ( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/msgmp.h b/cpukit/rtems/include/rtems/rtems/msgmp.h
deleted file mode 100644
index 3dabd8d46b..0000000000
--- a/cpukit/rtems/include/rtems/rtems/msgmp.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * @file rtems/rtems/msgmp.h
- *
- * @brief Message Manager MP Support
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Message Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_MSGMP_H
-#define _RTEMS_RTEMS_MSGMP_H
-
-#ifndef _RTEMS_RTEMS_MESSAGEIMPL_H
-# error "Never use <rtems/rtems/msgmp.h> directly; include <rtems/rtems/messageimpl.h> instead."
-#endif
-
-#include <rtems/score/mpciimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicMsgMP Message Queue MP Support
- *
- * @ingroup ClassicMP
- *
- * This encapsulates functionality related to the transparent multiprocessing
- * support within the Classic API Message Queue Manager.
- */
-/*{*/
-
-/**
- * The following enumerated type defines the list of
- * remote message queue operations.
- */
-typedef enum {
- MESSAGE_QUEUE_MP_ANNOUNCE_CREATE = 0,
- MESSAGE_QUEUE_MP_ANNOUNCE_DELETE = 1,
- MESSAGE_QUEUE_MP_EXTRACT_PROXY = 2,
- MESSAGE_QUEUE_MP_RECEIVE_REQUEST = 3,
- MESSAGE_QUEUE_MP_RECEIVE_RESPONSE = 4,
- MESSAGE_QUEUE_MP_SEND_REQUEST = 5,
- MESSAGE_QUEUE_MP_SEND_RESPONSE = 6,
- MESSAGE_QUEUE_MP_URGENT_REQUEST = 7,
- MESSAGE_QUEUE_MP_URGENT_RESPONSE = 8,
- MESSAGE_QUEUE_MP_BROADCAST_REQUEST = 9,
- MESSAGE_QUEUE_MP_BROADCAST_RESPONSE = 10,
- MESSAGE_QUEUE_MP_FLUSH_REQUEST = 11,
- MESSAGE_QUEUE_MP_FLUSH_RESPONSE = 12,
- MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_REQUEST = 13,
- MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE = 14
-} Message_queue_MP_Remote_operations;
-
-/**
- * The following data structure defines the packet used to perform
- * remote message queue operations.
- */
-typedef struct {
- rtems_packet_prefix Prefix;
- Message_queue_MP_Remote_operations operation;
- rtems_name name;
- rtems_option option_set;
- Objects_Id proxy_id;
- uint32_t count;
- size_t size;
- uint32_t pad0;
- CORE_message_queue_Buffer Buffer;
-} Message_queue_MP_Packet;
-
-#define MESSAGE_QUEUE_MP_PACKET_SIZE \
- offsetof(Message_queue_MP_Packet, Buffer.buffer)
-
-RTEMS_INLINE_ROUTINE bool _Message_queue_MP_Is_remote( Objects_Id id )
-{
- return _Objects_MP_Is_remote( id, &_Message_queue_Information );
-}
-
-/**
- * @brief Message_queue_Core_message_queue_mp_support
- *
- * Input parameters:
- * the_thread - the remote thread the message was submitted to
- * id - id of the message queue
- *
- * Output parameters: NONE
- */
-void _Message_queue_Core_message_queue_mp_support (
- Thread_Control *the_thread,
- rtems_id id
-);
-
-/**
- * @brief _Message_queue_MP_Send_process_packet
- *
- * This routine performs a remote procedure call so that a
- * process operation can be performed on another node.
- */
-void _Message_queue_MP_Send_process_packet (
- Message_queue_MP_Remote_operations operation,
- Objects_Id message_queue_id,
- rtems_name name,
- Objects_Id proxy_id
-);
-
-/**
- * @brief Issues a remote rtems_message_queue_broadcast() request.
- */
-rtems_status_code _Message_queue_MP_Broadcast(
- rtems_id id,
- const void *buffer,
- size_t size,
- uint32_t *count
-);
-
-/**
- * @brief Issues a remote rtems_message_queue_flush() request.
- */
-rtems_status_code _Message_queue_MP_Flush(
- rtems_id id,
- uint32_t *count
-);
-
-/**
- * @brief Issues a remote rtems_message_queue_get_number_pending() request.
- */
-rtems_status_code _Message_queue_MP_Get_number_pending(
- rtems_id id,
- uint32_t *count
-);
-
-/**
- * @brief Issues a remote rtems_message_queue_receive() request.
- */
-rtems_status_code _Message_queue_MP_Receive(
- rtems_id id,
- void *buffer,
- size_t *size,
- rtems_option option_set,
- rtems_interval timeout
-);
-
-/**
- * @brief Issues a remote rtems_message_queue_send() request.
- */
-rtems_status_code _Message_queue_MP_Send(
- rtems_id id,
- const void *buffer,
- size_t size
-);
-
-/**
- * @brief Issues a remote rtems_message_queue_urgent() request.
- */
-rtems_status_code _Message_queue_MP_Urgent(
- rtems_id id,
- const void *buffer,
- size_t size
-);
-
-/**
- *
- * @brief _Message_queue_MP_Process_packet
- *
- * This routine performs the actions specific to this package for
- * the request from another node.
- */
-void _Message_queue_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-);
-
-/**
- * @brief _Message_queue_MP_Send_object_was_deleted
- *
- * This routine is invoked indirectly by the thread queue
- * when a proxy has been removed from the thread queue and
- * the remote node must be informed of this.
- */
-void _Message_queue_MP_Send_object_was_deleted (
- Thread_Control *the_proxy,
- Objects_Id mp_id
-);
-
-/**
- * @brief _Message_queue_MP_Send_extract_proxy
- *
- * This routine is invoked when a task is deleted and it
- * has a proxy which must be removed from a thread queue and
- * the remote node must be informed of this.
- */
-void _Message_queue_MP_Send_extract_proxy (
- Thread_Control *the_thread,
- Objects_Id id
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/object.h b/cpukit/rtems/include/rtems/rtems/object.h
deleted file mode 100644
index 2652915462..0000000000
--- a/cpukit/rtems/include/rtems/rtems/object.h
+++ /dev/null
@@ -1,370 +0,0 @@
-/**
- * @file rtems/rtems/object.h
- *
- * @defgroup ClassicClassInfo Object Class Information
- *
- * @ingroup ClassicRTEMS
- * @brief Classic API interfaces to Object Services
- *
- * This include file defines Classic API interfaces to Object Services.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_OBJECT_H
-#define _RTEMS_RTEMS_OBJECT_H
-
-#include <stdint.h>
-#include <rtems/score/object.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicClassInfo Object Class Information
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Object
- * Class Services.
- */
-/**@{*/
-
-/**
- * This structure is used to return information to the application
- * about the objects configured for a specific API/Class combination.
- */
-typedef struct {
- /** This field is the minimum valid object Id for this class. */
- rtems_id minimum_id;
- /** This field is the maximum valid object Id for this class. */
- rtems_id maximum_id;
- /** This field is the number of object instances configured for this class. */
- uint32_t maximum;
- /** This field indicates if the class is configured for auto-extend. */
- bool auto_extend;
- /** This field is the number of currently unallocated objects. */
- uint32_t unallocated;
-} rtems_object_api_class_information;
-
-/**
- * @brief Build Object Id
- *
- * This function returns an object id composed of the
- * specified @a api, @a class, @a node,
- * and @a index.
- *
- * @param[in] _api indicates the api to use for the Id
- * @param[in] _class indicates the class to use for the Id
- * @param[in] _node indicates the node to use for the Id
- * @param[in] _index indicates the index to use for the Id
- *
- * @retval This method returns an object Id built from the
- * specified values.
- *
- * @note A body is also provided.
- */
-#define rtems_build_id( _api, _class, _node, _index ) \
- _Objects_Build_id( _api, _class, _node, _index )
-
-/**
- * @brief Build Thirty-Two Bit Object Name
- *
- * RTEMS Object Helper -- Build an Object Id
- *
- * This function returns an object name composed of the four characters
- * C1, C2, C3, and C4.
- *
- * @param[in] _C1 is the first character of the name
- * @param[in] _C2 is the second character of the name
- * @param[in] _C3 is the third character of the name
- * @param[in] _C4 is the fourth character of the name
- *
- * @note This must be implemented as a macro for use in
- * Configuration Tables. A body is also provided.
- *
- */
-#define rtems_build_name( _C1, _C2, _C3, _C4 ) \
- _Objects_Build_name( _C1, _C2, _C3, _C4 )
-
-/**
- * @brief Obtain Name of Object
- *
- * This directive returns the name associated with the specified
- * object ID.
- *
- * @param[in] id is the Id of the object to obtain the name of.
- * @param[out] name will be set to the name of the object
- *
- * @note The object must be have a name of the 32-bit form.
- *
- * @retval @a *name will contain user defined object name
- * @retval @a RTEMS_SUCCESSFUL - if successful
- * @retval error code - if unsuccessful
- */
-rtems_status_code rtems_object_get_classic_name(
- rtems_id id,
- rtems_name *name
-);
-
-/**
- * @brief Obtain Object Name as String
- *
- * This directive returns the name associated with the specified
- * object ID.
- *
- * @param[in] id is the Id of the object to obtain the name of
- * @param[in] length is the length of the output name buffer
- * @param[out] name will be set to the name of the object
- *
- * @retval @a *name will contain user defined object name
- * @retval @a name - if successful
- * @retval @a NULL - if unsuccessful
- */
-char *rtems_object_get_name(
- rtems_id id,
- size_t length,
- char *name
-);
-
-/**
- * @brief Set Name of Object
- *
- * This method allows the caller to set the name of an
- * object. This can be used to set the name of objects
- * which do not have a naming scheme per their API.
- *
- * RTEMS Object Helper -- Set Name of Object as String
- *
- * @param[in] id is the Id of the object to obtain the name of
- * @param[out] name will be set to the name of the object
- *
- * @retval @a *name will contain user defined object name
- * @retval @a RTEMS_SUCCESSFUL - if successful
- * @retval error code - if unsuccessful
- */
-rtems_status_code rtems_object_set_name(
- rtems_id id,
- const char *name
-);
-
-/**
- * @brief Get API Portion of Object Id
- *
- * RTEMS Object Helper -- Extract API From Id
- *
- * This function returns the API portion of the Id.
- *
- * @param[in] _id is the Id of the object to obtain the API from
- *
- * @retval This method returns the API portion of the provided
- * @a _id.
- *
- * @note This method does NOT validate the @a _id provided.
- *
- * @note A body is also provided.
- */
-#define rtems_object_id_get_api( _id ) \
- _Objects_Get_API( _id )
-
-/**
- * @brief Get Class Portion of Object Id
- *
- * This function returns the class portion of the @a _id ID.
- *
- * @param[in] _id is the Id of the object to obtain the class from
- *
- * @retval This method returns the class portion of the provided
- * @a _id.
- *
- * @note This method does NOT validate the @a _id provided.
- *
- * @note A body is also provided.
- */
-#define rtems_object_id_get_class( _id ) \
- _Objects_Get_class( _id )
-
-/**
- * @brief Get Node Portion of Object Id
- *
- * This function returns the node portion of the ID.
- *
- * @param[in] _id is the Id of the object to obtain the node from
- *
- * @retval This method returns the node portion of the provided
- * @a _id.
- *
- * @note This method does NOT validate the @a _id provided.
- *
- * @note A body is also provided.
- */
-#define rtems_object_id_get_node( _id ) \
- _Objects_Get_node( _id )
-
-/**
- * @brief Get Index Portion of Object Id
- *
- * This function returns the index portion of the ID.
- *
- * @param[in] _id is the Id of the object to obtain the index from
- *
- * @retval This method returns the index portion of the provided
- * @a _id.
- *
- * @note This method does NOT validate the @a _id provided.
- *
- * @note A body is also provided.
- */
-#define rtems_object_id_get_index( _id ) \
- _Objects_Get_index( _id )
-
-/**
- * @brief Get Lowest Valid API Index
- *
- * This method returns the lowest valid value for the API
- * portion of an RTEMS object Id.
- *
- * @retval This method returns the least valid value for
- * the API portion of an RTEMS object Id.
- *
- * @note A body is also provided.
- */
-#define rtems_object_id_api_minimum() \
- OBJECTS_INTERNAL_API
-
-/**
- * @brief Get Highest Valid API Index
- *
- * This method returns the highest valid value for the API
- * portion of an RTEMS object Id.
- *
- * @retval This method returns the greatest valid value for
- * the API portion of an RTEMS object Id.
- *
- * @note A body is also provided.
- */
-#define rtems_object_id_api_maximum() \
- OBJECTS_APIS_LAST
-
-/**
- * @brief Get Lowest Valid Class Value
- *
- * This method returns the lowest valid value Class for the
- * specified @a api. Each API supports a different number
- * of object classes.
- *
- * @param[in] api is the API to obtain the minimum class of
- *
- * @retval This method returns the least valid value for
- * class number for the specified @a api.
- * RTEMS Object Helper -- Get Least Valid Class for an API
- */
-int rtems_object_api_minimum_class(
- int api
-);
-
-/**
- * @brief Get Highest Valid Class Value
- *
- * This method returns the highest valid value Class for the
- * specified @a api. Each API supports a different number
- * of object classes.
- *
- * @param[in] api is the API to obtain the maximum class of
- *
- * @retval This method returns the greatet valid value for
- * class number for the specified @a api.
- */
-int rtems_object_api_maximum_class(
- int api
-);
-
-
-/**
- * @brief Get Highest Valid Class Value
- *
- * This method returns the lowest valid value Class for the
- * specified @a api. Each API supports a different number
- * of object classes.
- *
- * @param[in] api is the API to obtain the maximum class of
- *
- * @retval This method returns the least valid value for
- * class number for the specified @a api.
- */
-int rtems_object_id_api_maximum_class(
- int api
-);
-
-/**
- * @brief Get API Name
- *
- * This method returns a string containing the name of the
- * specified @a api.
- *
- * @param[in] api is the API to obtain the name of
- *
- * @retval If successful, this method returns the name of
- * the specified @a api. Otherwise, it returns
- * the string "BAD API"
- */
-const char *rtems_object_get_api_name(
- int api
-);
-
-/**
- * @brief Get Class Name
- *
- * This method returns a string containing the name of the
- * @a class from the specified @a api.
- *
- * @param[in] the_api is the API for the class
- * @param[in] the_class is the class to obtain the name of
- *
- * @retval If successful, this method returns the name of
- * the specified @a class. Otherwise, it returns
- * the string "BAD CLASS"
- */
-const char *rtems_object_get_api_class_name(
- int the_api,
- int the_class
-);
-
-/**
- * @brief Get Class Information
- *
- * This method returns a string containing the name of the
- * @a the_class from the specified @a api.
- *
- * @param[in] the_api is the API for the class
- * @param[in] the_class is the class to obtain information about
- * @param[in] info points to the information structure to fill in
- *
- * @retval If successful, this method returns the name of
- * RTEMS_SUCCESSFUL with @a *info filled in. Otherwise,
- * a status is returned to indicate the error.
- *
- */
-rtems_status_code rtems_object_get_class_information(
- int the_api,
- int the_class,
- rtems_object_api_class_information *info
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/options.h b/cpukit/rtems/include/rtems/rtems/options.h
deleted file mode 100644
index 752aefda2e..0000000000
--- a/cpukit/rtems/include/rtems/rtems/options.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * @file rtems/rtems/options.h
- *
- * @defgroup ClassicOptions Classic API Options
- *
- * @ingroup ClassicRTEMS
- * @brief Options Available on Many Directives
- *
- * This include file contains information which defines the
- * options available on many directives.
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_OPTIONS_H
-#define _RTEMS_RTEMS_OPTIONS_H
-
-#include <rtems/score/basedefs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicOptions Classic API Options
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the options argument
- * to Classic API blocking operations. The primary option is whether
- * or not a task is willing to wait for the operation to complete.
- */
-/**@{*/
-
-/**
- * The following type defines the control block used to manage
- * option sets.
- */
-typedef uint32_t rtems_option;
-
-/**
- * The following constants define the individual options which may
- * be used to compose an option set.
- */
-#define RTEMS_DEFAULT_OPTIONS 0x00000000
-
-/**
- * This option constants indicates that the task is to wait on resource.
- */
-#define RTEMS_WAIT 0x00000000
-/**
- * This option constants indicates that the task is to not wait on
- * the resource. If it is not available, return immediately with
- * a status to indicate unsatisfied.
- */
-#define RTEMS_NO_WAIT 0x00000001
-
-/**
- * This option constants indicates that the task wishes to wait until
- * all events of interest are available.
- */
-#define RTEMS_EVENT_ALL 0x00000000
-
-/**
- * This option constants indicates that the task wishes to wait until
- * ANY events of interest are available.
- */
-#define RTEMS_EVENT_ANY 0x00000002
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/optionsimpl.h b/cpukit/rtems/include/rtems/rtems/optionsimpl.h
deleted file mode 100644
index 0263fcf78d..0000000000
--- a/cpukit/rtems/include/rtems/rtems/optionsimpl.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicOptionsImpl
- *
- * @brief Classic Options Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_OPTIONSIMPL_H
-#define _RTEMS_RTEMS_OPTIONSIMPL_H
-
-#include <rtems/rtems/options.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicOptionsImpl Classic Options Implementation
- *
- * @ingroup ClassicOptions
- *
- * @{
- */
-
-/**
- * @brief Checks if the RTEMS_NO_WAIT option is enabled in option_set.
- *
- * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in
- * option_set, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait (
- rtems_option option_set
-)
-{
- return (option_set & RTEMS_NO_WAIT) ? true : false;
-}
-
-/**
- * @brief Checks if the RTEMS_EVENT_ANY option is enabled in OPTION_SET.
- *
- * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in
- * OPTION_SET, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Options_Is_any (
- rtems_option option_set
-)
-{
- return (option_set & RTEMS_EVENT_ANY) ? true : false;
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/part.h b/cpukit/rtems/include/rtems/rtems/part.h
deleted file mode 100644
index 5b840cc96c..0000000000
--- a/cpukit/rtems/include/rtems/rtems/part.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/**
- * @file rtems/rtems/part.h
- *
- * @defgroup ClassicPart Partitions
- *
- * @ingroup ClassicRTEMS
- * @brief Partition Manager
- *
- * This include file contains all the constants and structures associated
- * with the Partition Manager. This manager provides facilities to
- * dynamically allocate memory in fixed-sized units which are returned
- * as buffers.
- *
- * Directives provided are:
- *
- * - create a partition
- * - get an ID of a partition
- * - delete a partition
- * - get a buffer from a partition
- * - return a buffer to a partition
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_PART_H
-#define _RTEMS_RTEMS_PART_H
-
-#include <rtems/rtems/attr.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/types.h>
-#include <rtems/score/isrlock.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicPart Partitions
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the
- * Classic API Partition Manager.
- */
-/**@{*/
-
-/**
- * The following defines the control block used to manage each partition.
- */
-typedef struct {
- /** This field is the object management portion of a Partition instance. */
- Objects_Control Object;
- /** This field is the lock of the Partition. */
- ISR_LOCK_MEMBER( Lock )
- /** This field is the physical starting address of the Partition. */
- void *starting_address;
- /** This field is the size of the Partition in bytes. */
- intptr_t length;
- /** This field is the size of each buffer in bytes */
- uint32_t buffer_size;
- /** This field is the attribute set provided at create time. */
- rtems_attribute attribute_set;
- /** This field is the of allocated buffers. */
- uint32_t number_of_used_blocks;
- /** This field is the chain used to manage unallocated buffers. */
- Chain_Control Memory;
-} Partition_Control;
-
-/**
- * @brief RTEMS Partition Create
- *
- * Partition Manager
- *
- * This routine implements the rtems_partition_create directive. The
- * partition will have the name name. The memory area managed by
- * the partition is of length bytes and starts at starting_address.
- * The memory area will be divided into as many buffers of
- * buffer_size bytes as possible. The attribute_set determines if
- * the partition is global or local. It returns the id of the
- * created partition in ID.
- */
-rtems_status_code rtems_partition_create(
- rtems_name name,
- void *starting_address,
- uint32_t length,
- uint32_t buffer_size,
- rtems_attribute attribute_set,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Partition Ident
- *
- * This routine implements the rtems_partition_ident directive.
- * This directive returns the partition ID associated with name.
- * If more than one partition is named name, then the partition
- * to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the partition named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the user defined partition name
- * @param[in] node is(are) the node(s) to be searched
- * @param[in] id is the pointer to partition id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled in with the partition id
- */
-rtems_status_code rtems_partition_ident(
- rtems_name name,
- uint32_t node,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Delete Partition
- *
- * This routine implements the rtems_partition_delete directive. The
- * partition indicated by ID is deleted, provided that none of its buffers
- * are still allocated.
- *
- * @param[in] id is the partition id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_partition_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Get Partition Buffer
- *
- * This routine implements the rtems_partition_get_buffer directive. It
- * attempts to allocate a buffer from the partition associated with ID.
- * If a buffer is allocated, its address is returned in buffer.
- *
- * @param[in] id is the partition id
- * @param[out] buffer is the pointer to buffer address
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_partition_get_buffer(
- rtems_id id,
- void **buffer
-);
-
-/**
- * @brief rtems_partition_return_buffer
- *
- * This routine implements the rtems_partition_return_buffer directive. It
- * frees the buffer to the partition associated with ID. The buffer must
- * have been previously allocated from the same partition.
- */
-rtems_status_code rtems_partition_return_buffer(
- rtems_id id,
- void *buffer
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/partimpl.h b/cpukit/rtems/include/rtems/rtems/partimpl.h
deleted file mode 100644
index 13ee86b4c2..0000000000
--- a/cpukit/rtems/include/rtems/rtems/partimpl.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicPartImpl
- *
- * @brief Classic Partition Manager Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_PARTIMPL_H
-#define _RTEMS_RTEMS_PARTIMPL_H
-
-#include <rtems/rtems/part.h>
-#include <rtems/score/chainimpl.h>
-#include <rtems/score/objectimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicPartImpl Classic Partition Manager Implementation
- *
- * @ingroup ClassicPart
- *
- * @{
- */
-
-/**
- * The following defines the information control block used to
- * manage this class of objects.
- */
-extern Objects_Information _Partition_Information;
-
-/**
- * @brief Allocate a buffer from the_partition.
- *
- * This function attempts to allocate a buffer from the_partition.
- * If successful, it returns the address of the allocated buffer.
- * Otherwise, it returns NULL.
- */
-RTEMS_INLINE_ROUTINE void *_Partition_Allocate_buffer (
- Partition_Control *the_partition
-)
-{
- return _Chain_Get_unprotected( &the_partition->Memory );
-}
-
-/**
- * @brief Frees the_buffer to the_partition.
- *
- * This routine frees the_buffer to the_partition.
- */
-RTEMS_INLINE_ROUTINE void _Partition_Free_buffer (
- Partition_Control *the_partition,
- Chain_Node *the_buffer
-)
-{
- _Chain_Append_unprotected( &the_partition->Memory, the_buffer );
-}
-
-/**
- * @brief Checks whether is on a valid buffer boundary for the_partition.
- *
- * This function returns TRUE if the_buffer is on a valid buffer
- * boundary for the_partition, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_on_boundary (
- void *the_buffer,
- Partition_Control *the_partition
-)
-{
- uint32_t offset;
-
- offset = (uint32_t) _Addresses_Subtract(
- the_buffer,
- the_partition->starting_address
- );
-
- return ((offset % the_partition->buffer_size) == 0);
-}
-
-/**
- * @brief Checks whether the_buffer is a valid buffer from the_partition.
- *
- * This function returns TRUE if the_buffer is a valid buffer from
- * the_partition, otherwise FALSE is returned.
- */
-RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_valid (
- Chain_Node *the_buffer,
- Partition_Control *the_partition
-)
-{
- void *starting;
- void *ending;
-
- starting = the_partition->starting_address;
- ending = _Addresses_Add_offset( starting, the_partition->length );
-
- return (
- _Addresses_Is_in_range( the_buffer, starting, ending ) &&
- _Partition_Is_buffer_on_boundary( the_buffer, the_partition )
- );
-}
-
-/**
- * @brief Checks if partition is buffer size aligned.
- *
- * This function returns TRUE if the use of the specified buffer_size
- * will result in the allocation of buffers whose first byte is
- * properly aligned, and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_size_aligned (
- uint32_t buffer_size
-)
-{
- return ((buffer_size % CPU_PARTITION_ALIGNMENT) == 0);
-}
-
-/**
- * @brief Allocates a partition control block from the
- * inactive chain of free partition control blocks.
- *
- * This function allocates a partition control block from
- * the inactive chain of free partition control blocks.
- */
-RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Allocate ( void )
-{
- return (Partition_Control *) _Objects_Allocate( &_Partition_Information );
-}
-
-RTEMS_INLINE_ROUTINE void _Partition_Initialize(
- Partition_Control *the_partition,
- void *starting_address,
- uint32_t length,
- uint32_t buffer_size,
- rtems_attribute attribute_set
-)
-{
- the_partition->starting_address = starting_address;
- the_partition->length = length;
- the_partition->buffer_size = buffer_size;
- the_partition->attribute_set = attribute_set;
- the_partition->number_of_used_blocks = 0;
-
- _Chain_Initialize(
- &the_partition->Memory,
- starting_address,
- length / buffer_size,
- buffer_size
- );
-
- _ISR_lock_Initialize( &the_partition->Lock, "Partition" );
-}
-
-RTEMS_INLINE_ROUTINE void _Partition_Destroy(
- Partition_Control *the_partition
-)
-{
- _ISR_lock_Destroy( &the_partition->Lock );
-}
-
-/**
- * @brief Frees a partition control block to the
- * inactive chain of free partition control blocks.
- *
- * This routine frees a partition control block to the
- * inactive chain of free partition control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Partition_Free (
- Partition_Control *the_partition
-)
-{
- _Objects_Free( &_Partition_Information, &the_partition->Object );
-}
-
-RTEMS_INLINE_ROUTINE Partition_Control *_Partition_Get(
- Objects_Id id,
- ISR_lock_Context *lock_context
-)
-{
- return (Partition_Control *) _Objects_Get(
- id,
- lock_context,
- &_Partition_Information
- );
-}
-
-RTEMS_INLINE_ROUTINE void _Partition_Acquire_critical(
- Partition_Control *the_partition,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_Acquire( &the_partition->Lock, lock_context );
-}
-
-RTEMS_INLINE_ROUTINE void _Partition_Release(
- Partition_Control *the_partition,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_Release_and_ISR_enable( &the_partition->Lock, lock_context );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/partmp.h>
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/partmp.h b/cpukit/rtems/include/rtems/rtems/partmp.h
deleted file mode 100644
index b9eaa08b8c..0000000000
--- a/cpukit/rtems/include/rtems/rtems/partmp.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- * @file rtems/rtems/partmp.h
- *
- * @brief MP Support in Partition Manager
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Partition Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_PARTMP_H
-#define _RTEMS_RTEMS_PARTMP_H
-
-#ifndef _RTEMS_RTEMS_PARTIMPL_H
-# error "Never use <rtems/rtems/partmp.h> directly; include <rtems/rtems/partimpl.h> instead."
-#endif
-
-#include <rtems/score/mpciimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicPartMP Partition MP Support
- *
- * @ingroup ClassicMP
- *
- * This encapsulates functionality related to the transparent multiprocessing
- * support within the Classic API Partition Manager.
- */
-/*{*/
-
-/**
- * The following enumerated type defines the list of
- * remote partition operations.
- */
-typedef enum {
- PARTITION_MP_ANNOUNCE_CREATE = 0,
- PARTITION_MP_ANNOUNCE_DELETE = 1,
- PARTITION_MP_EXTRACT_PROXY = 2,
- PARTITION_MP_GET_BUFFER_REQUEST = 3,
- PARTITION_MP_GET_BUFFER_RESPONSE = 4,
- PARTITION_MP_RETURN_BUFFER_REQUEST = 5,
- PARTITION_MP_RETURN_BUFFER_RESPONSE = 6
-} Partition_MP_Remote_operations;
-
-/**
- * The following data structure defines the packet used to perform
- * remote partition operations.
- */
-typedef struct {
- rtems_packet_prefix Prefix;
- Partition_MP_Remote_operations operation;
- rtems_name name;
- void *buffer;
- Objects_Id proxy_id;
-} Partition_MP_Packet;
-
-RTEMS_INLINE_ROUTINE bool _Partition_MP_Is_remote( Objects_Id id )
-{
- return _Objects_MP_Is_remote( id, &_Partition_Information );
-}
-
-/**
- * @brief Partition_MP_Send_process_packet
- *
- * Multiprocessing Support for the Partition Manager
- *
- * This routine performs a remote procedure call so that a
- * process operation can be performed on another node.
- */
-void _Partition_MP_Send_process_packet (
- Partition_MP_Remote_operations operation,
- Objects_Id partition_id,
- rtems_name name,
- Objects_Id proxy_id
-);
-
-/**
- * @brief Issues a remote rtems_partition_get_buffer() request.
- */
-rtems_status_code _Partition_MP_Get_buffer(
- rtems_id id,
- void **buffer
-);
-
-/**
- * @brief Issues a remote rtems_partition_return_buffer() request.
- */
-rtems_status_code _Partition_MP_Return_buffer(
- rtems_id id,
- void *buffer
-);
-
-/**
- *
- * @brief Partition_MP_Process_packet
- *
- * This routine performs the actions specific to this package for
- * the request from another node.
- */
-void _Partition_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-);
-
-/*
- * @brief Partition_MP_Send_object_was_deleted
- *
- * This routine is invoked indirectly by the thread queue
- * when a proxy has been removed from the thread queue and
- * the remote node must be informed of this.
- *
- * This routine is not needed by the Partition since a partition
- * cannot be deleted when buffers are in use.
- */
-
-/**
- * @brief Partition_MP_Send_extract_proxy
- *
- * This routine is invoked when a task is deleted and it
- * has a proxy which must be removed from a thread queue and
- * the remote node must be informed of this.
- */
-void _Partition_MP_Send_extract_proxy (
- Thread_Control *the_thread,
- Objects_Id id
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h b/cpukit/rtems/include/rtems/rtems/ratemon.h
deleted file mode 100644
index ca48a92983..0000000000
--- a/cpukit/rtems/include/rtems/rtems/ratemon.h
+++ /dev/null
@@ -1,430 +0,0 @@
-/**
- * @file rtems/rtems/ratemon.h
- *
- * @defgroup ClassicRateMon Rate Monotonic Scheduler
- *
- * @ingroup ClassicRTEMS
- * @brief Classic API Rate Monotonic Manager.
- *
- * This include file contains all the constants, structures, and
- * prototypes associated with the Rate Monotonic Manager. This manager
- * provides facilities to implement threads which execute in a periodic
- * fashion.
- *
- * Directives provided are:
- *
- * - create a rate monotonic timer
- * - cancel a period
- * - delete a rate monotonic timer
- * - conclude current and start the next period
- * - obtain status information on a period
- * - obtain the number of postponed jobs
- */
-
-/* COPYRIGHT (c) 1989-2009, 2016.
- * On-Line Applications Research Corporation (OAR).
- * COPYRIGHT (c) 2016-2017 Kuan-Hsun Chen.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_RATEMON_H
-#define _RTEMS_RTEMS_RATEMON_H
-
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/status.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/watchdog.h>
-
-struct rtems_printer;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicRateMon Rate Monotonic Scheduler
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Rate
- * Monotonic Manager.
- *
- * Statistics are kept for each period and can be obtained or printed via
- * API calls. The statistics kept include minimum, maximum and average times
- * for both cpu usage and wall time. The statistics indicate the execution
- * and wall time used by the owning thread between successive calls to
- * rtems_rate_monotonic_period.
- */
-/**@{*/
-
-/**
- * This is the public type used for the rate monotonic timing
- * statistics.
- */
-#include <rtems/score/timespec.h>
-
-typedef struct timespec rtems_rate_monotonic_period_time_t;
-
-/**
- * This is the internal type used for the rate monotonic timing
- * statistics.
- */
-#include <rtems/score/timestamp.h>
-
-/**
- * The following enumerated type defines the states in which a
- * period may be.
- */
-typedef enum {
- /**
- * This value indicates the period is off the watchdog chain,
- * and has never been initialized.
- */
- RATE_MONOTONIC_INACTIVE,
-
- /**
- * This value indicates the period is on the watchdog chain, and
- * running. The owner should be executed or blocked waiting on
- * another object.
- */
- RATE_MONOTONIC_ACTIVE,
-
- /**
- * This value indicates the period is off the watchdog chain, and
- * has expired. The owner is still executing and has taken too much
- * all time to complete this iteration of the period.
- */
- RATE_MONOTONIC_EXPIRED
-} rtems_rate_monotonic_period_states;
-
-/**
- * The following constant is the interval passed to the rate_monontonic_period
- * directive to obtain status information.
- */
-#define RTEMS_PERIOD_STATUS WATCHDOG_NO_TIMEOUT
-
-/**
- * The following defines the PUBLIC data structure that has the
- * statistics kept on each period instance.
- *
- * @note The public structure uses struct timespec while the
- * internal one uses Timestamp_Control.
- */
-typedef struct {
- /** This field contains the number of periods executed. */
- uint32_t count;
- /** This field contains the number of periods missed. */
- uint32_t missed_count;
-
- /** This field contains the least amount of CPU time used in a period. */
- rtems_thread_cpu_usage_t min_cpu_time;
- /** This field contains the highest amount of CPU time used in a period. */
- rtems_thread_cpu_usage_t max_cpu_time;
- /** This field contains the total amount of wall time used in a period. */
- rtems_thread_cpu_usage_t total_cpu_time;
-
- /** This field contains the least amount of wall time used in a period. */
- rtems_rate_monotonic_period_time_t min_wall_time;
- /** This field contains the highest amount of wall time used in a period. */
- rtems_rate_monotonic_period_time_t max_wall_time;
- /** This field contains the total amount of CPU time used in a period. */
- rtems_rate_monotonic_period_time_t total_wall_time;
-} rtems_rate_monotonic_period_statistics;
-
-/**
- * The following defines the INTERNAL data structure that has the
- * statistics kept on each period instance.
- */
-typedef struct {
- /** This field contains the number of periods executed. */
- uint32_t count;
- /** This field contains the number of periods missed. */
- uint32_t missed_count;
-
- /** This field contains the least amount of CPU time used in a period. */
- Timestamp_Control min_cpu_time;
- /** This field contains the highest amount of CPU time used in a period. */
- Timestamp_Control max_cpu_time;
- /** This field contains the total amount of wall time used in a period. */
- Timestamp_Control total_cpu_time;
-
- /** This field contains the least amount of wall time used in a period. */
- Timestamp_Control min_wall_time;
- /** This field contains the highest amount of wall time used in a period. */
- Timestamp_Control max_wall_time;
- /** This field contains the total amount of CPU time used in a period. */
- Timestamp_Control total_wall_time;
-} Rate_monotonic_Statistics;
-
-/**
- * The following defines the period status structure.
- */
-typedef struct {
- /** This is the Id of the thread using this period. */
- rtems_id owner;
-
- /** This is the current state of this period. */
- rtems_rate_monotonic_period_states state;
-
- /**
- * This is the length of wall time that has passed since this period
- * was last initiated. If the period is expired or has not been initiated,
- * then this field has no meaning.
- */
- rtems_rate_monotonic_period_time_t since_last_period;
-
- /**
- * This is the amount of CPU time that has been used since this period
- * was last initiated. If the period is expired or has not been initiated,
- * then this field has no meaning.
- */
- rtems_thread_cpu_usage_t executed_since_last_period;
-
- /** This is the count of postponed jobs of this period. */
- uint32_t postponed_jobs_count;
-} rtems_rate_monotonic_period_status;
-
-/**
- * @brief The following structure defines the control block used to manage each
- * period.
- *
- * State changes are protected by the default thread lock of the owner thread.
- * The owner thread is the thread that created the period object. The owner
- * thread field is immutable after object creation.
- */
-typedef struct {
- /** This field is the object management portion of a Period instance. */
- Objects_Control Object;
-
- /**
- * @brief Protects the rate monotonic period state.
- */
- ISR_LOCK_MEMBER( Lock )
-
- /** This is the timer used to provide the unblocking mechanism. */
- Watchdog_Control Timer;
-
- /** This field indicates the current state of the period. */
- rtems_rate_monotonic_period_states state;
-
- /**
- * @brief A priority node for use by the scheduler job release and cancel
- * operations.
- */
- Priority_Node Priority;
-
- /**
- * This field contains the length of the next period to be
- * executed.
- */
- uint32_t next_length;
-
- /**
- * This field contains a pointer to the TCB for the thread
- * which owns and uses this period instance.
- */
- Thread_Control *owner;
-
- /**
- * This field contains the cpu usage value of the owning thread when
- * the period was initiated. It is used to compute the period's
- * statistics.
- */
- Timestamp_Control cpu_usage_period_initiated;
-
- /**
- * This field contains the wall time value when the period
- * was initiated. It is used to compute the period's statistics.
- */
- Timestamp_Control time_period_initiated;
-
- /**
- * This field contains the statistics maintained for the period.
- */
- Rate_monotonic_Statistics Statistics;
-
- /**
- * This field contains the number of postponed jobs.
- * When the watchdog timeout, this variable will be increased immediately.
- */
- uint32_t postponed_jobs;
-
- /**
- * This field contains the tick of the latest deadline decided by the period
- * watchdog.
- */
- uint64_t latest_deadline;
-} Rate_monotonic_Control;
-
-/**
- * @brief Create a Period
- *
- * Rate Monotonic Manager
- *
- * This routine implements the rate_monotonic_create directive. The
- * period will have the name name. It returns the id of the
- * created period in ID.
- */
-rtems_status_code rtems_rate_monotonic_create(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Rate Monotonic Name to Id
- *
- * This routine implements the rtems_rate_monotonic_ident directive.
- * It returns the period ID associated with name. If more than one period
- * is named name, then the period to which the ID belongs is arbitrary.
- *
- * @param[in] name is the user defined period name
- * @param[in] id is the pointer to period id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the region id.
- */
-rtems_status_code rtems_rate_monotonic_ident(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Rate Monotonic Cancel
- *
- * This routine implements the rtems_rate_monotonic_cancel directive. This
- * directive stops the period associated with ID from continuing to
- * run.
- *
- * @param[in] id is the rate monotonic id
- *
- * @retval RTEMS_SUCCESSFUL if successful and caller is not the owning thread
- * or error code if unsuccessful
- *
- */
-rtems_status_code rtems_rate_monotonic_cancel(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Delete Rate Monotonic
- *
- * This routine implements the rtems_rate_monotonic_delete directive. The
- * period indicated by ID is deleted.
- *
- * @param[in] id is the rate monotonic id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_rate_monotonic_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Rate Monotonic Get Status
- *
- * This routine implements the rtems_rate_monotonic_get_status directive.
- * Information about the period indicated by ID is returned.
- *
- * @param[in] id is the rate monotonic id
- * @param[in] status is the pointer to status control block
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- *
- */
-rtems_status_code rtems_rate_monotonic_get_status(
- rtems_id id,
- rtems_rate_monotonic_period_status *status
-);
-
-/**
- * @brief RTEMS Rate Monotonic Get Statistics
- *
- * This routine implements the rtems_rate_monotonic_get_statistics directive.
- * Statistics gathered from the use of this period are returned.
- *
- * @param[in] id is the rate monotonic id
- * @param[in] statistics is the pointer to statistics control block
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_rate_monotonic_get_statistics(
- rtems_id id,
- rtems_rate_monotonic_period_statistics *statistics
-);
-
-/**
- * @brief RTEMS Rate Monotonic Reset Statistics
- *
- * Rate Monotonic Manager -- Reset Statistics
- *
- * This routine allows a thread to reset the statistics information
- * on a specific period instance.
- */
-rtems_status_code rtems_rate_monotonic_reset_statistics(
- rtems_id id
-);
-
-/**
- * @brief rtems_rate_monotonic_reset_all_statistics
- *
- * This routine allows a thread to reset the statistics information
- * on ALL period instances.
- */
-void rtems_rate_monotonic_reset_all_statistics( void );
-
-/**
- * @brief RTEMS Report Rate Monotonic Statistics
- *
- * This routine allows a thread to print the statistics information
- * on ALL period instances which have non-zero counts using the RTEMS
- * printer. The implementation of this directive straddles the fence
- * between inside and outside of RTEMS. It is presented as part of
- * the Manager but actually uses other services of the Manager.
- */
-void rtems_rate_monotonic_report_statistics_with_plugin(
- const struct rtems_printer *printer
-);
-
-/**
- * @brief RTEMS Report Rate Monotonic Statistics
- *
- * This routine allows a thread to print the statistics information
- * on ALL period instances which have non-zero counts using printk.
- */
-void rtems_rate_monotonic_report_statistics( void );
-
-/**
- * @brief RTEMS Rate Monotonic Period
- *
- * This routine implements the rtems_rate_monotonic_period directive. When
- * length is non-zero, this directive initiates the period associated with
- * ID from continuing for a period of length. If length is zero, then
- * result is set to indicate the current state of the period.
- *
- * @param[in] id is the rate monotonic id
- * @param[in] length is the length of period (in ticks)
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_rate_monotonic_period(
- rtems_id id,
- rtems_interval length
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/ratemonimpl.h b/cpukit/rtems/include/rtems/rtems/ratemonimpl.h
deleted file mode 100644
index ba38a3e61a..0000000000
--- a/cpukit/rtems/include/rtems/rtems/ratemonimpl.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicRateMonImpl
- *
- * @brief Classic Rate Monotonic Scheduler Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- * Copyright (c) 2016 embedded brains GmbH.
- * COPYRIGHT (c) 2016 Kuan-Hsun Chen.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_RATEMONIMPL_H
-#define _RTEMS_RTEMS_RATEMONIMPL_H
-
-#include <rtems/rtems/ratemon.h>
-#include <rtems/score/objectimpl.h>
-#include <rtems/score/schedulerimpl.h>
-#include <rtems/score/threadimpl.h>
-#include <rtems/score/watchdogimpl.h>
-
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicRateMonImpl Classic Rate Monotonic Scheduler Implementation
- *
- * @ingroup ClassicRateMon
- *
- * @{
- */
-
-#define RATE_MONOTONIC_INTEND_TO_BLOCK \
- ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_INTEND_TO_BLOCK )
-
-#define RATE_MONOTONIC_BLOCKED \
- ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_BLOCKED )
-
-#define RATE_MONOTONIC_READY_AGAIN \
- ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_READY_AGAIN )
-
-/**
- * @brief Rate Monotonic Period Class Management Structure
- *
- * This instance of Objects_Information is used to manage the
- * set of rate monotonic period instances.
- */
-extern Objects_Information _Rate_monotonic_Information;
-
-/**
- * @brief Allocates a period control block from
- * the inactive chain of free period control blocks.
- *
- * This function allocates a period control block from
- * the inactive chain of free period control blocks.
- */
-RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void )
-{
- return (Rate_monotonic_Control *)
- _Objects_Allocate( &_Rate_monotonic_Information );
-}
-
-RTEMS_INLINE_ROUTINE void _Rate_monotonic_Acquire_critical(
- Rate_monotonic_Control *the_period,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_Acquire( &the_period->Lock, lock_context );
-}
-
-RTEMS_INLINE_ROUTINE void _Rate_monotonic_Release(
- Rate_monotonic_Control *the_period,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_Release_and_ISR_enable( &the_period->Lock, lock_context );
-}
-
-RTEMS_INLINE_ROUTINE Rate_monotonic_Control *_Rate_monotonic_Get(
- Objects_Id id,
- ISR_lock_Context *lock_context
-)
-{
- return (Rate_monotonic_Control *)
- _Objects_Get( id, lock_context, &_Rate_monotonic_Information );
-}
-
-void _Rate_monotonic_Timeout( Watchdog_Control *watchdog );
-
-/**
- * @brief _Rate_monotonic_Get_status(
- *
- * This routine is invoked to compute the elapsed wall time and cpu
- * time for a period.
- *
- * @param[in] the_period points to the period being operated upon.
- * @param[out] wall_since_last_period is set to the wall time elapsed
- * since the period was initiated.
- * @param[out] cpu_since_last_period is set to the cpu time used by the
- * owning thread since the period was initiated.
- *
- * @retval This routine returns true if the status can be determined
- * and false otherwise.
- */
-bool _Rate_monotonic_Get_status(
- const Rate_monotonic_Control *the_period,
- Timestamp_Control *wall_since_last_period,
- Timestamp_Control *cpu_since_last_period
-);
-
-void _Rate_monotonic_Restart(
- Rate_monotonic_Control *the_period,
- Thread_Control *owner,
- ISR_lock_Context *lock_context
-);
-
-void _Rate_monotonic_Cancel(
- Rate_monotonic_Control *the_period,
- Thread_Control *owner,
- ISR_lock_Context *lock_context
-);
-
-RTEMS_INLINE_ROUTINE void _Rate_monotonic_Reset_min_time(
- Timestamp_Control *min_time
-)
-{
- _Timestamp_Set( min_time, 0x7fffffff, 0x7fffffff );
-}
-
-RTEMS_INLINE_ROUTINE void _Rate_monotonic_Reset_statistics(
- Rate_monotonic_Control *the_period
-)
-{
- Rate_monotonic_Statistics *statistics;
-
- statistics = &the_period->Statistics;
- memset( statistics, 0, sizeof( *statistics ) );
- _Rate_monotonic_Reset_min_time( &statistics->min_wall_time );
- _Rate_monotonic_Reset_min_time( &statistics->min_cpu_time );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/region.h b/cpukit/rtems/include/rtems/rtems/region.h
deleted file mode 100644
index 4772e2835b..0000000000
--- a/cpukit/rtems/include/rtems/rtems/region.h
+++ /dev/null
@@ -1,298 +0,0 @@
-/**
- * @file rtems/rtems/region.h
- *
- * @defgroup ClassicRegion Regions
- *
- * @ingroup ClassicRTEMS
- * @brief Region Manager
- *
- * This include file contains all the constants and structures associated
- * with the Region Manager. This manager provides facilities to dynamically
- * allocate memory in variable sized units which are returned as segments.
- *
- * Directives provided are:
- *
- * - create a region
- * - get an ID of a region
- * - delete a region
- * - get a segment from a region
- * - return a segment to a region
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_REGION_H
-#define _RTEMS_RTEMS_REGION_H
-
-#include <rtems/rtems/attr.h>
-#include <rtems/rtems/options.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/types.h>
-#include <rtems/score/heap.h>
-#include <rtems/score/threadq.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicRegion Regions
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Region
- * Manager.
- */
-/**@{*/
-
-/**
- * The following records define the control block used to manage
- * each region.
- */
-
-typedef struct {
- Objects_Control Object;
- Thread_queue_Control Wait_queue; /* waiting threads */
- const Thread_queue_Operations *wait_operations;
- uintptr_t maximum_segment_size; /* in bytes */
- rtems_attribute attribute_set;
- Heap_Control Memory;
-} Region_Control;
-
-/**
- * @brief rtems_region_create
- *
- * Region Manager
- *
- * This routine implements the rtems_region_create directive. The
- * region will have the name name. The memory area managed by
- * the region is of length bytes and starts at starting_address.
- * The memory area will be divided into as many allocatable units of
- * page_size bytes as possible. The attribute_set determines which
- * thread queue discipline is used by the region. It returns the
- * id of the created region in ID.
- */
-rtems_status_code rtems_region_create(
- rtems_name name,
- void *starting_address,
- uintptr_t length,
- uintptr_t page_size,
- rtems_attribute attribute_set,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Extend Region
- *
- * This routine implements the rtems_region_extend directive. The
- * region will have the name name. The memory area managed by
- * the region will be attempted to be grown by length bytes using
- * the memory starting at starting_address.
- *
- * @param[in] id is the id of region to grow
- * @param[in] starting_address starting address of memory area for extension
- * @param[in] length is the physical length in bytes to grow the region
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_region_extend(
- rtems_id id,
- void *starting_address,
- uintptr_t length
-);
-
-/**
- * @brief RTEMS Region Name to Id
- *
- * This routine implements the rtems_region_ident directive.
- * This directive returns the region ID associated with name.
- * If more than one region is named name, then the region
- * to which the ID belongs is arbitrary.
- *
- * @param[in] name is the user defined region name
- * @param[in] id is the pointer to region id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the region id.
- */
-rtems_status_code rtems_region_ident(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Get Region Information
- *
- * This routine implements the rtems_region_get_information directive.
- * This directive returns information about the heap associated with
- * this region.
- *
- * @param[in] id is the region id
- * @param[in] the_info is the pointer to region information block
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled with the region information block
- */
-rtems_status_code rtems_region_get_information(
- rtems_id id,
- Heap_Information_block *the_info
-);
-
-/**
- * @brief RTEMS Get Region Free Information
- *
- * This routine implements the rtems_region_get_free_information directive.
- * This directive returns information about the free blocks in the
- * heap associated with this region. Information about the used blocks
- * will be returned as zero.
- *
- * @param[in] id is the region id
- * @param[in] the_info is the pointer to region information block
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the the_info will
- * be filled in with the region information block.
- */
-rtems_status_code rtems_region_get_free_information(
- rtems_id id,
- Heap_Information_block *the_info
-);
-
-/**
- * @brief RTEMS Delete Region
- *
- * This routine implements the rtems_region_delete directive. The
- * region indicated by ID is deleted, provided that none of its segments are
- * still allocated.
- *
- * @param[in] id is the region id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_region_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Get Region Segment
- *
- * This routine implements the rtems_region_get_segment directive. It
- * attempts to allocate a segment from the region associated with @a id.
- * If a segment of the requested @a size size can be allocated, its address
- * is returned in @a segment. If no segment is available, then the task
- * may return immediately or block waiting for a segment with an optional
- * timeout of @a timeout clock ticks. Whether the task blocks or returns
- * immediately is based on the no_wait option in the @a option_set.
- *
- * @param[in] id is the region id
- * @param[in] size is the segment size in bytes
- * @param[in] option_set is the wait option
- * @param[in] timeout is the number of ticks to wait (0 means wait forever)
- * @param[in] segment is the pointer to segment address
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the segment will
- * be filled in with the segment address.
- */
-rtems_status_code rtems_region_get_segment(
- rtems_id id,
- uintptr_t size,
- rtems_option option_set,
- rtems_interval timeout,
- void **segment
-);
-
-/**
- * @brief RTEMS Get Region Segment Size
- *
- * This routine implements the rtems_region_get_segment_size directive. It
- * returns the size in bytes of the specified user memory area.
- *
- * @param[in] id is the region id
- * @param[in] segment is the segment address
- * @param[in] size is the pointer to segment size in bytes
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the size will
- * be filled in with the segment size in bytes.
- */
-rtems_status_code rtems_region_get_segment_size(
- rtems_id id,
- void *segment,
- uintptr_t *size
-);
-
-/**
- * @brief RTEMS Return Region Segment
- *
- * This routine implements the rtems_region_return_segment directive. It
- * frees the segment to the region associated with ID. The segment must
- * have been previously allocated from the same region. If freeing the
- * segment results in enough memory being available to satisfy the
- * rtems_region_get_segment of the first blocked task, then that task and as
- * many subsequent tasks as possible will be unblocked with their requests
- * satisfied.
- *
- * @param[in] id is the region id
- * @param[in] segment is the pointer to segment address
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_region_return_segment(
- rtems_id id,
- void *segment
-);
-
-/**
- * @brief Resize RTEMS Region Segment
- *
- * This routine implements the rtems_region_resize_segment directive. It
- * tries to resize segment in the region associated with 'id' to the new size
- * 'size' in place. The first 'size' or old size bytes of the segment
- * (whatever is less) are guaranteed to remain unmodified. The segment must
- * have been previously allocated from the same region. If resizing the
- * segment results in enough memory being available to satisfy the
- * rtems_region_get_segment of the first blocked task, then that task and as
- * many subsequent tasks as possible will be unblocked with their requests
- * satisfied.
- *
- * @param[in] id is the region id
- * @param[in] segment is the pointer to segment address
- * @param[in] size is the new required size
- * @retval RTEMS_SUCCESSFUL if operation successful, RTEMS_UNSATISFIED if the
- * the segment can't be resized in place or any other code at failure
- *
- * @note On RTEMS_SUCCESSFUL or RTEMS_UNSATISFIED exit it returns into the
- * 'old_size' the old size in bytes of the user memory area of the
- * specified segment.
- */
-rtems_status_code rtems_region_resize_segment(
- rtems_id id,
- void *segment,
- uintptr_t size,
- uintptr_t *old_size
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/regionimpl.h b/cpukit/rtems/include/rtems/rtems/regionimpl.h
deleted file mode 100644
index 178b7ea32b..0000000000
--- a/cpukit/rtems/include/rtems/rtems/regionimpl.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicRegionImpl
- *
- * @brief Classic Region Manager Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_REGIONIMPL_H
-#define _RTEMS_RTEMS_REGIONIMPL_H
-
-#include <rtems/rtems/region.h>
-#include <rtems/score/apimutex.h>
-#include <rtems/score/heapimpl.h>
-#include <rtems/score/objectimpl.h>
-#include <rtems/score/threadqimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicRegionImpl Classic Region Manager Implementation
- *
- * @ingroup ClassicRegion
- *
- * @{
- */
-
-#define REGION_OF_THREAD_QUEUE_QUEUE( queue ) \
- RTEMS_CONTAINER_OF( queue, Region_Control, Wait_queue.Queue )
-
-/**
- * The following defines the information control block used to
- * manage this class of objects.
- */
-extern Objects_Information _Region_Information;
-
-/**
- * @brief Region_Allocate
- *
- * This function allocates a region control block from
- * the inactive chain of free region control blocks.
- */
-RTEMS_INLINE_ROUTINE Region_Control *_Region_Allocate( void )
-{
- return (Region_Control *) _Objects_Allocate( &_Region_Information );
-}
-
-/**
- * @brief Region_Free
- *
- * This routine frees a region control block to the
- * inactive chain of free region control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Region_Free (
- Region_Control *the_region
-)
-{
- _Thread_queue_Destroy( &the_region->Wait_queue );
- _Objects_Free( &_Region_Information, &the_region->Object );
-}
-
-RTEMS_INLINE_ROUTINE Region_Control *_Region_Get_and_lock( Objects_Id id )
-{
- Region_Control *the_region;
-
- _RTEMS_Lock_allocator();
-
- the_region = (Region_Control *)
- _Objects_Get_no_protection( id, &_Region_Information );
-
- if ( the_region != NULL ) {
- /* Keep allocator lock */
- return the_region;
- }
-
- _RTEMS_Unlock_allocator();
- return NULL;
-}
-
-RTEMS_INLINE_ROUTINE void _Region_Unlock( Region_Control *the_region )
-{
- (void) the_region;
- _RTEMS_Unlock_allocator();
-}
-
-/**
- * @brief Region_Allocate_segment
- *
- * This function attempts to allocate a segment from the_region.
- * If successful, it returns the address of the allocated segment.
- * Otherwise, it returns NULL.
- */
-RTEMS_INLINE_ROUTINE void *_Region_Allocate_segment (
- Region_Control *the_region,
- uintptr_t size
-)
-{
- return _Heap_Allocate( &the_region->Memory, size );
-}
-
-/**
- * @brief Region_Free_segment
- *
- * This function frees the_segment to the_region.
- */
-RTEMS_INLINE_ROUTINE bool _Region_Free_segment (
- Region_Control *the_region,
- void *the_segment
-)
-{
- return _Heap_Free( &the_region->Memory, the_segment );
-}
-
-/**
- * @brief Process Region Queue
- *
- * This is a helper routine which is invoked any time memory is
- * freed. It looks at the set of waiting tasks and attempts to
- * satisfy all outstanding requests.
- *
- * @param[in] the_region is the the region
- */
-extern void _Region_Process_queue(Region_Control *the_region);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/sem.h b/cpukit/rtems/include/rtems/rtems/sem.h
deleted file mode 100644
index 41b0061979..0000000000
--- a/cpukit/rtems/include/rtems/rtems/sem.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicSem
- *
- * @brief Classic Semaphores API
- *
- * This include file contains all the constants and structures associated
- * with the Semaphore Manager. This manager utilizes standard Dijkstra
- * counting semaphores to provide synchronization and mutual exclusion
- * capabilities.
- *
- * Directives provided are:
- *
- * - create a semaphore
- * - get an ID of a semaphore
- * - delete a semaphore
- * - acquire a semaphore
- * - release a semaphore
- * - flush a semaphore
- * - set ceiling priority for a semaphore
- */
-
-/*
- * COPYRIGHT (c) 1989-2008, 2016.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SEM_H
-#define _RTEMS_RTEMS_SEM_H
-
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/options.h>
-#include <rtems/rtems/support.h>
-#include <rtems/rtems/tasks.h>
-#include <rtems/rtems/attr.h>
-#include <rtems/score/coremutex.h>
-#include <rtems/score/object.h>
-#include <rtems/score/coresem.h>
-#include <rtems/score/mrsp.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicSem Semaphores
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API
- * Semaphore Manager.
- */
-/**@{*/
-
-/**
- * The following defines the control block used to manage each semaphore.
- */
-typedef struct {
- /** This field is the object management portion of a Semaphore instance. */
- Objects_Control Object;
-
- /**
- * This contains the memory associated with the SuperCore Semaphore or
- * Mutex instance that provides the primary functionality of each
- * Classic API Semaphore instance. The structure used is dependent
- * on the attributes specified by the user on the create directive.
- *
- * @note Only one of these has meaning in a particular Classic API
- * Semaphore instance.
- */
- union {
- /**
- * @brief The thread queue present in all other variants.
- */
- Thread_queue_Control Wait_queue;
-
- /**
- * This is the SuperCore Mutex instance associated with this Classic
- * API Semaphore instance.
- */
- CORE_ceiling_mutex_Control Mutex;
-
- /**
- * This is the SuperCore Semaphore instance associated with this Classic
- * API Semaphore instance.
- */
- CORE_semaphore_Control Semaphore;
-
-#if defined(RTEMS_SMP)
- MRSP_Control MRSP;
-#endif
- } Core_control;
-
- /**
- * @brief The semaphore variant.
- *
- * @see Semaphore_Variant.
- */
- unsigned int variant : 3;
-
- /**
- * @brief The semaphore thread queue discipline.
- *
- * @see Semaphore_Discipline.
- */
- unsigned int discipline : 1;
-
-#if defined(RTEMS_MULTIPROCESSING)
- unsigned int is_global : 1;
-#endif
-} Semaphore_Control;
-
-/**
- * @brief rtems_semaphore_create
- *
- * This routine implements the rtems_semaphore_create directive. The
- * semaphore will have the name name. The starting count for
- * the semaphore is count. The attribute_set determines if
- * the semaphore is global or local and the thread queue
- * discipline. It returns the id of the created semaphore in ID.
- */
-rtems_status_code rtems_semaphore_create(
- rtems_name name,
- uint32_t count,
- rtems_attribute attribute_set,
- rtems_task_priority priority_ceiling,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Semaphore Name to Id
- *
- * This routine implements the rtems_semaphore_ident directive.
- * This directive returns the semaphore ID associated with name.
- * If more than one semaphore is named name, then the semaphore
- * to which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the semaphore named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the user defined semaphore name
- * @param[in] node is(are) the node(s) to be searched
- * @param[in] id is the pointer to semaphore id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *id filled in with the semaphore id
- */
-rtems_status_code rtems_semaphore_ident(
- rtems_name name,
- uint32_t node,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Delete Semaphore
- *
- * This routine implements the rtems_semaphore_delete directive. The
- * semaphore indicated by ID is deleted.
- *
- * @param[in] id is the semaphore id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_semaphore_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Obtain Semaphore
- *
- * This routine implements the rtems_semaphore_obtain directive. It
- * attempts to obtain a unit from the semaphore associated with ID.
- * If a unit can be allocated, the calling task will return immediately.
- * If no unit is available, then the task may return immediately or
- * block waiting for a unit with an optional timeout of timeout
- * clock ticks. Whether the task blocks or returns immediately
- * is based on the RTEMS_NO_WAIT option in the option_set.
- *
- * @param[in] id is the semaphore id
- * @param[in] option_set is the wait option
- * @param[in] timeout is the number of ticks to wait (0 means wait forever)
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_semaphore_obtain(
- rtems_id id,
- rtems_option option_set,
- rtems_interval timeout
-);
-
-/**
- * @brief RTEMS Semaphore Release
- *
- * This routine implements the rtems_semaphore_release directive. It
- * frees a unit to the semaphore associated with ID. If a task was
- * blocked waiting for a unit from this semaphore, then that task will
- * be readied and the unit given to that task. Otherwise, the unit
- * will be returned to the semaphore.
- */
-rtems_status_code rtems_semaphore_release(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Semaphore Flush
- *
- * This method is the implementation of the flush directive
- * of the Semaphore Manager.
- *
- * This directive allows a thread to flush the threads
- * pending on the semaphore.
- *
- * @param[in] id is the semaphore id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_semaphore_flush(
- rtems_id id
-);
-
-/**
- * @brief Sets the priority value with respect to the specified scheduler of a
- * semaphore.
- *
- * The special priority value @ref RTEMS_CURRENT_PRIORITY can be used to get
- * the current priority value without changing it.
- *
- * The interpretation of the priority value depends on the protocol of the
- * semaphore object.
- *
- * - The Multiprocessor Resource Sharing Protocol needs a ceiling priority per
- * scheduler instance. This operation can be used to specify these priority
- * values.
- * - For the Priority Ceiling Protocol the ceiling priority is used with this
- * operation.
- * - For other protocols this operation is not defined.
- *
- * @param[in] semaphore_id Identifier of the semaphore.
- * @param[in] scheduler_id Identifier of the scheduler.
- * @param[in] new_priority The new priority value. Use
- * @ref RTEMS_CURRENT_PRIORITY to not set a new priority and only get the
- * current priority.
- * @param[out] old_priority Reference to store the old priority value.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ID Invalid semaphore or scheduler identifier.
- * @retval RTEMS_INVALID_ADDRESS The old priority reference is @c NULL.
- * @retval RTEMS_INVALID_PRIORITY The new priority value is invalid.
- * @retval RTEMS_NOT_DEFINED The set priority operation is not defined for the
- * protocol of this semaphore object.
- * @retval RTEMS_ILLEGAL_ON_REMOTE_OBJECT Not supported for remote semaphores.
- *
- * @see rtems_scheduler_ident() and rtems_task_set_priority().
- */
-rtems_status_code rtems_semaphore_set_priority(
- rtems_id semaphore_id,
- rtems_id scheduler_id,
- rtems_task_priority new_priority,
- rtems_task_priority *old_priority
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/semimpl.h b/cpukit/rtems/include/rtems/rtems/semimpl.h
deleted file mode 100644
index 6d0f156e5c..0000000000
--- a/cpukit/rtems/include/rtems/rtems/semimpl.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicSem
- *
- * @brief Classic Semaphores Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SEMIMPL_H
-#define _RTEMS_RTEMS_SEMIMPL_H
-
-#include <rtems/rtems/sem.h>
-#include <rtems/score/coremuteximpl.h>
-#include <rtems/score/coresemimpl.h>
-#include <rtems/score/mrspimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Classic semaphore variants.
- *
- * Must be in synchronization with Semaphore_Control::variant.
- */
-typedef enum {
- SEMAPHORE_VARIANT_MUTEX_INHERIT_PRIORITY,
- SEMAPHORE_VARIANT_MUTEX_PRIORITY_CEILING,
- SEMAPHORE_VARIANT_MUTEX_NO_PROTOCOL,
- SEMAPHORE_VARIANT_SIMPLE_BINARY,
- SEMAPHORE_VARIANT_COUNTING
-#if defined(RTEMS_SMP)
- ,
- SEMAPHORE_VARIANT_MRSP
-#endif
-} Semaphore_Variant;
-
-typedef enum {
- SEMAPHORE_DISCIPLINE_PRIORITY,
- SEMAPHORE_DISCIPLINE_FIFO
-} Semaphore_Discipline;
-
-/**
- * The following defines the information control block used to manage
- * this class of objects.
- */
-extern Objects_Information _Semaphore_Information;
-
-RTEMS_INLINE_ROUTINE const Thread_queue_Operations *_Semaphore_Get_operations(
- const Semaphore_Control *the_semaphore
-)
-{
- if ( the_semaphore->variant == SEMAPHORE_VARIANT_MUTEX_INHERIT_PRIORITY ) {
- return &_Thread_queue_Operations_priority_inherit;
- }
-
- if ( the_semaphore->discipline == SEMAPHORE_DISCIPLINE_PRIORITY ) {
- return &_Thread_queue_Operations_priority;
- }
-
- return &_Thread_queue_Operations_FIFO;
-}
-
-/**
- * @brief Allocates a semaphore control block from
- * the inactive chain of free semaphore control blocks.
- *
- * This function allocates a semaphore control block from
- * the inactive chain of free semaphore control blocks.
- */
-RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Allocate( void )
-{
- return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information );
-}
-
-/**
- * @brief Frees a semaphore control block to the
- * inactive chain of free semaphore control blocks.
- *
- * This routine frees a semaphore control block to the
- * inactive chain of free semaphore control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Semaphore_Free (
- Semaphore_Control *the_semaphore
-)
-{
- _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );
-}
-
-RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get(
- Objects_Id id,
- Thread_queue_Context *queue_context
-)
-{
- _Thread_queue_Context_initialize( queue_context );
- return (Semaphore_Control *) _Objects_Get(
- id,
- &queue_context->Lock_context.Lock_context,
- &_Semaphore_Information
- );
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef RTEMS_MULTIPROCESSING
-#include <rtems/rtems/semmp.h>
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/semmp.h b/cpukit/rtems/include/rtems/rtems/semmp.h
deleted file mode 100644
index 9d7669f43e..0000000000
--- a/cpukit/rtems/include/rtems/rtems/semmp.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * @file rtems/rtems/semmp.h
- *
- * @defgroup ClassicSEM Semaphore MP Support
- *
- * @ingroup ClassicRTEMS
- * @brief Semaphore Manager MP Support
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Semaphore Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SEMMP_H
-#define _RTEMS_RTEMS_SEMMP_H
-
-#ifndef _RTEMS_RTEMS_SEMIMPL_H
-# error "Never use <rtems/rtems/semmp.h> directly; include <rtems/rtems/semimpl.h> instead."
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicSEM Semaphore MP Support
- *
- * @ingroup ClassicMP
- *
- * This encapsulates functionality related to the transparent multiprocessing
- * support within the Classic API Semaphore Manager.
- */
-/**@{*/
-
-/**
- * The following enumerated type defines the list of
- * remote semaphore operations.
- */
-typedef enum {
- SEMAPHORE_MP_ANNOUNCE_CREATE = 0,
- SEMAPHORE_MP_ANNOUNCE_DELETE = 1,
- SEMAPHORE_MP_EXTRACT_PROXY = 2,
- SEMAPHORE_MP_OBTAIN_REQUEST = 3,
- SEMAPHORE_MP_OBTAIN_RESPONSE = 4,
- SEMAPHORE_MP_RELEASE_REQUEST = 5,
- SEMAPHORE_MP_RELEASE_RESPONSE = 6
-} Semaphore_MP_Remote_operations;
-
-/**
- * The following data structure defines the packet used to perform
- * remote semaphore operations.
- */
-typedef struct {
- rtems_packet_prefix Prefix;
- Semaphore_MP_Remote_operations operation;
- rtems_name name;
- rtems_option option_set;
- Objects_Id proxy_id;
-} Semaphore_MP_Packet;
-
-RTEMS_INLINE_ROUTINE bool _Semaphore_MP_Is_remote( Objects_Id id )
-{
- return _Objects_MP_Is_remote( id, &_Semaphore_Information );
-}
-
-/**
- * @brief Semaphore MP Send Process Packet
- *
- * This routine performs a remote procedure call so that a
- * process operation can be performed on another node.
- */
-void _Semaphore_MP_Send_process_packet (
- Semaphore_MP_Remote_operations operation,
- Objects_Id semaphore_id,
- rtems_name name,
- Objects_Id proxy_id
-);
-
-/**
- * @brief Issues a remote rtems_semaphore_obtain() request.
- */
-rtems_status_code _Semaphore_MP_Obtain(
- rtems_id id,
- rtems_option option_set,
- rtems_interval timeout
-);
-
-/**
- * @brief Issues a remote rtems_semaphore_release() request.
- */
-rtems_status_code _Semaphore_MP_Release( rtems_id id );
-
-/**
- * @brief Semaphore MP Process Packet
- *
- * This routine performs the actions specific to this package for
- * the request from another node.
- */
-void _Semaphore_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-);
-
-/**
- * @brief Semaphore MP Send Object was Deleted
- *
- * This routine is invoked indirectly by the thread queue
- * when a proxy has been removed from the thread queue and
- * the remote node must be informed of this.
- */
-void _Semaphore_MP_Send_object_was_deleted (
- Thread_Control *the_proxy,
- Objects_Id mp_id
-);
-
-/**
- * @brief Semaphore MP Send Extract Proxy
- *
- * This routine is invoked when a task is deleted and it
- * has a proxy which must be removed from a thread queue and
- * the remote node must be informed of this.
- */
-void _Semaphore_MP_Send_extract_proxy (
- Thread_Control *the_thread,
- Objects_Id id
-);
-
-/**
- * @brief Semaphore Core Mutex MP Support
- *
- * This function processes the global actions necessary for remote
- * accesses to a global semaphore based on a core mutex. This function
- * is called by the core.
- *
- * @param[in] the_thread the remote thread the semaphore was surrendered to
- * @param[in] id is the id of the surrendered semaphore
- */
-void _Semaphore_Core_mutex_mp_support (
- Thread_Control *the_thread,
- Objects_Id id
-);
-
-/**
- * @brief Semaphore Core MP Support
- *
- * This function processes the global actions necessary for remote
- * accesses to a global semaphore based on a core semaphore. This function
- * is called by the core.
- *
- * @param[in] the_thread the remote thread the semaphore was surrendered to
- * @param[in] id is the id of the surrendered semaphore
- */
-void _Semaphore_Core_semaphore_mp_support (
- Thread_Control *the_thread,
- Objects_Id id
-);
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/signal.h b/cpukit/rtems/include/rtems/rtems/signal.h
deleted file mode 100644
index f7b7000d9a..0000000000
--- a/cpukit/rtems/include/rtems/rtems/signal.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicSignal
- *
- * @brief Signals API
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SIGNAL_H
-#define _RTEMS_RTEMS_SIGNAL_H
-
-#include <rtems/rtems/asr.h>
-#include <rtems/rtems/modes.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicSignal Signals
- *
- * @ingroup ClassicRTEMS
- *
- * Directives provided are:
- *
- * + establish an asynchronous signal routine
- * + send a signal set to a task
- */
-/**@{*/
-
-/**
- * @brief RTEMS Catch Signal
- *
- * This routine implements the rtems_signal_catch directive. This directive
- * is used to establish asr_handler as the Asynchronous Signal Routine
- * (RTEMS_ASR) for the calling task. The asr_handler will execute with a
- * mode of mode_set.
- *
- * @param[in] asr_handler is the address of asynchronous signal routine (asr)
- * ( NULL indicates asr is invalid )
- * @param[in] mode_set is the mode value for asr
- *
- * @retval RTEMS_SUCCESSFUL
- */
-rtems_status_code rtems_signal_catch(
- rtems_asr_entry asr_handler,
- rtems_mode mode_set
-);
-
-/**
- * @brief RTEMS Send Signal
- *
- * This routine implements the rtems_signal_send directive. This directive
- * sends the signal_set to the task specified by ID.
- *
- * @param[in] id is the thread thread id
- * @param[in] signal_set is the signal set
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_signal_send(
- rtems_id id,
- rtems_signal_set signal_set
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/signalimpl.h b/cpukit/rtems/include/rtems/rtems/signalimpl.h
deleted file mode 100644
index 61848ae95c..0000000000
--- a/cpukit/rtems/include/rtems/rtems/signalimpl.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicSignalImpl
- *
- * @brief Signals Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SIGNALIMPL_H
-#define _RTEMS_RTEMS_SIGNALIMPL_H
-
-#include <rtems/rtems/signal.h>
-#include <rtems/score/thread.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicSignalImpl Signals Implementation
- *
- * @ingroup ClassicSignal
- */
-/**@{*/
-
-void _Signal_Action_handler(
- Thread_Control *executing,
- Thread_Action *action,
- ISR_lock_Context *lock_context
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/signalmp.h>
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/signalmp.h b/cpukit/rtems/include/rtems/rtems/signalmp.h
deleted file mode 100644
index 57b8682c58..0000000000
--- a/cpukit/rtems/include/rtems/rtems/signalmp.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @file rtems/rtems/signalmp.h
- *
- * @brief Signal MP Support
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Signal Manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SIGNALMP_H
-#define _RTEMS_RTEMS_SIGNALMP_H
-
-#ifndef _RTEMS_RTEMS_SIGNALIMPL_H
-# error "Never use <rtems/rtems/signalmp.h> directly; include <rtems/rtems/signalimpl.h> instead."
-#endif
-
-#include <rtems/score/mpciimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicSignalMP Signal MP Support
- *
- * @ingroup ClassicMP
- *
- * This encapsulates functionality related to the transparent multiprocessing
- * support within the Classic API Signal Manager.
- */
-/*{*/
-
-/*
- * @brief Signal_MP_Send_process_packet
- *
- * This routine performs a remote procedure call so that a
- * process operation can be performed on another node.
- *
- * This routine is not needed since there are no process
- * packets to be sent by this manager.
- */
-
-/**
- * @brief Issues a remote rtems_signal_send() request.
- */
-rtems_status_code _Signal_MP_Send(
- rtems_id id,
- rtems_signal_set signal_set
-);
-
-/**
- * @brief Signal MP Process Packet
- *
- * This routine performs the actions specific to this package for
- * the request from another node.
- */
-void _Signal_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-);
-
-/*
- * @brief Signal_MP_Send_object_was_deleted
- *
- * This routine is invoked indirectly by the thread queue
- * when a proxy has been removed from the thread queue and
- * the remote node must be informed of this.
- *
- * This routine is not needed since there are no objects
- * deleted by this manager.
- */
-
-/*
- * @brief Signal_MP_Send_extract_proxy
- *
- * This routine is invoked when a task is deleted and it
- * has a proxy which must be removed from a thread queue and
- * the remote node must be informed of this.
- *
- * This routine is not needed since there are no objects
- * deleted by this manager.
- */
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/smp.h b/cpukit/rtems/include/rtems/rtems/smp.h
deleted file mode 100644
index aeb0df6f46..0000000000
--- a/cpukit/rtems/include/rtems/rtems/smp.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicSMP
- *
- * @brief SMP Services API
- */
-
-/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SMP_H
-#define _RTEMS_RTEMS_SMP_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicSMP SMP Services
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality which is useful for SMP applications.
- *
- * @{
- */
-
-/**
- * @brief Returns the count of processors in the system.
- *
- * On uni-processor configurations a value of one will be returned.
- *
- * On SMP configurations this returns the value of a global variable set during
- * system initialization to indicate the count of utilized processors. The
- * processor count depends on the physically or virtually available processors
- * and application configuration. The value will always be less than or equal
- * to the maximum count of application configured processors.
- *
- * @return The count of processors being utilized.
- */
-uint32_t rtems_get_processor_count(void);
-
-/**
- * @brief Returns the index of the current processor.
- *
- * On uni-processor configurations a value of zero will be returned.
- *
- * On SMP configurations an architecture specific method is used to obtain the
- * index of the current processor in the system. The set of processor indices
- * is the range of integers starting with zero up to the processor count minus
- * one.
- *
- * Outside of sections with disabled thread dispatching the current processor
- * index may change after every instruction since the thread may migrate from
- * one processor to another. Sections with disabled interrupts are sections
- * with thread dispatching disabled.
- *
- * @return The index of the current processor.
- */
-uint32_t rtems_get_current_processor(void);
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/status.h b/cpukit/rtems/include/rtems/rtems/status.h
deleted file mode 100644
index c54404ba14..0000000000
--- a/cpukit/rtems/include/rtems/rtems/status.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/**
- * @file rtems/rtems/status.h
- *
- * @defgroup ClassicStatus Status Codes
- *
- * @ingroup ClassicRTEMS
- * @brief Status Codes Returned from Executive Directives
- *
- * This include file contains the status codes returned from the
- * executive directives.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_STATUS_H
-#define _RTEMS_RTEMS_STATUS_H
-
-#include <rtems/score/basedefs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicStatus Status Codes
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the status codes returned
- * by Classic API directives.
- */
-/**@{*/
-
-/**
- * @brief Classic API Status
- *
- * This enumerates the possible status values returned b
- * Classic API directives.
- */
-typedef enum {
- /**
- * This is the status to indicate successful completion.
- */
- RTEMS_SUCCESSFUL = 0,
- /**
- * This is the status to indicate that a thread exited.
- */
- RTEMS_TASK_EXITTED = 1,
- /**
- * This is the status to indicate multiprocessing is not configured.
- */
- RTEMS_MP_NOT_CONFIGURED = 2,
- /**
- * This is the status to indicate that the object name was invalid.
- */
- RTEMS_INVALID_NAME = 3,
- /**
- * This is the status to indicate that the object Id was invalid.
- */
- RTEMS_INVALID_ID = 4,
- /**
- * This is the status to indicate you have attempted to create too many
- * instances of a particular object class.
- */
- RTEMS_TOO_MANY = 5,
- /**
- * This is the status to indicate that a blocking directive timed out.
- */
- RTEMS_TIMEOUT = 6,
- /**
- * This is the status to indicate the the object was deleted
- * while the task was blocked waiting.
- */
- RTEMS_OBJECT_WAS_DELETED = 7,
- /**
- * This is the status to indicate that the specified size was invalid.
- */
- RTEMS_INVALID_SIZE = 8,
- /**
- * This is the status to indicate that the specified address is invalid.
- */
- RTEMS_INVALID_ADDRESS = 9,
- /**
- * This is the status to indicate that the specified number was invalid.
- */
- RTEMS_INVALID_NUMBER = 10,
- /**
- * This is the status to indicate that the item has not been initialized.
- */
- RTEMS_NOT_DEFINED = 11,
- /**
- * This is the status to indicate that the object still has
- * resources in use.
- */
- RTEMS_RESOURCE_IN_USE = 12,
- /**
- * This is the status to indicate that the request was not satisfied.
- */
- RTEMS_UNSATISFIED = 13,
- /**
- * This is the status to indicate that a thread is in wrong state
- * was in the wrong execution state for the requested operation.
- */
- RTEMS_INCORRECT_STATE = 14,
- /**
- * This is the status to indicate thread was already suspended.
- */
- RTEMS_ALREADY_SUSPENDED = 15,
- /**
- * This is the status to indicate that the operation is illegal
- * on calling thread.
- */
- RTEMS_ILLEGAL_ON_SELF = 16,
- /**
- * This is the status to indicate illegal for remote object.
- */
- RTEMS_ILLEGAL_ON_REMOTE_OBJECT = 17,
- /**
- * This is the status to indicate that the operation should not be
- * called from from this excecution environment.
- */
- RTEMS_CALLED_FROM_ISR = 18,
- /**
- * This is the status to indicate that an invalid thread priority
- * was provided.
- */
- RTEMS_INVALID_PRIORITY = 19,
- /**
- * This is the status to indicate that the specified date/time was invalid.
- */
- RTEMS_INVALID_CLOCK = 20,
- /**
- * This is the status to indicate that the specified node Id was invalid.
- */
- RTEMS_INVALID_NODE = 21,
- /**
- * This is the status to indicate that the directive was not configured.
- */
- RTEMS_NOT_CONFIGURED = 22,
- /**
- * This is the status to indicate that the caller is not the
- * owner of the resource.
- */
- RTEMS_NOT_OWNER_OF_RESOURCE = 23,
- /**
- * This is the status to indicate the the directive or requested
- * portion of the directive is not implemented. This is a hint
- * that you have stumbled across an opportunity to submit code
- * to the RTEMS Project.
- */
- RTEMS_NOT_IMPLEMENTED = 24,
- /**
- * This is the status to indicate that an internal RTEMS inconsistency
- * was detected.
- */
- RTEMS_INTERNAL_ERROR = 25,
- /**
- * This is the status to indicate that the directive attempted to allocate
- * memory but was unable to do so.
- */
- RTEMS_NO_MEMORY = 26,
- /**
- * This is the status to indicate an driver IO error.
- */
- RTEMS_IO_ERROR = 27,
- /**
- * This is the status is used internally to RTEMS when performing
- * operations on behalf of remote tasks. This is referred to as
- * proxying operations and this status indicates that the operation
- * could not be completed immediately and the "proxy is blocking."
- *
- * @note This status will @b NOT be returned to the user.
- */
- RTEMS_PROXY_BLOCKING = 28
-} rtems_status_code;
-
-/**
- * This is the lowest valid value for a Classic API status code.
- */
-#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL
-
-/**
- * This is the highest valid value for a Classic API status code.
- */
-#define RTEMS_STATUS_CODES_LAST RTEMS_PROXY_BLOCKING
-
-/**
- * @brief Checks if the status code is equal to RTEMS_SUCCESSFUL.
- *
- * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL,
- * and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool rtems_is_status_successful(
- rtems_status_code code
-)
-{
- return (code == RTEMS_SUCCESSFUL);
-}
-
-/**
- * @brief Checks if the status code1 is equal to code2.
- *
- * This function returns TRUE if the status code1 is equal to code2,
- * and FALSE otherwise.
- */
-RTEMS_INLINE_ROUTINE bool rtems_are_statuses_equal(
- rtems_status_code code1,
- rtems_status_code code2
-)
-{
- return (code1 == code2);
-}
-
-/**
- * @brief RTEMS Status Code to Errno Mapping Function
- *
- * This function recieves an RTEMS status code and returns an
- * errno error code. The retval values show the mappings between
- * rtems_status_codes and errno error codes.
- *
- * @retval 0 RTEMS_SUCCESSFUL
- * @retval EIO RTEMS_TASK_EXITED, RTEMS_MP_NOT_CONFIGURED, RTEMS_INVALID_ID,
- * RTEMS_TOO_MANY, RTEMS_OBJECT_WAS_DELETED, RTEMS_INVALID_SIZE,
- * RTEMS_INVALID_ADDRESS, RTEMS_NOT_DEFINED, RTEMS_INCORRECT_STATE,
- * RTEMS_ILLEGAL_ON_SELF, RTEMS_ILLEGAL_ON_REMOTE_OBJECT,
- * RTEMS_CALLED_FROM_ISR, RTEMS_INVALID_PRIORITY, RTEMS_INTERNAL_ERROR,
- * RTEMS_IO_ERROR, RTEMS_PROXY_BLOCKING
- * @retval EINVAL RTEMS_INVALID_NAME, RTEMS_INVALID_CLOCK, RTEMS_INVALID_NODE
- * @retval ETIMEDOUT RTEMS_TIMEOUT
- * @retval EBADF RTEMS_INVALID_NUMBER
- * @retval EBUSY RTEMS_RESOURCE_IN_USE
- * @retval ENODEV RTEMS_UNSATISFIED
- * @retval ENOSYS RTEMS_NOT_IMPLEMENTED, RTEMS_NOT_CONFIGURED
- * @retval ENOMEM RTEMS_NO_MEMORY
- */
-int rtems_status_code_to_errno(rtems_status_code sc);
-
-/**
- * @brief Returns a text for a status code.
- *
- * The text for each status code is the enumerator constant.
- *
- * @param[in] code The status code.
- *
- * @retval text The status code text.
- * @retval "?" The passed status code is invalid.
- */
-const char *rtems_status_text( rtems_status_code code );
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/statusimpl.h b/cpukit/rtems/include/rtems/rtems/statusimpl.h
deleted file mode 100644
index 8a51bb8b19..0000000000
--- a/cpukit/rtems/include/rtems/rtems/statusimpl.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicStatusImpl
- *
- * @brief Classic Status Implementation
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_STATUSIMPL_H
-#define _RTEMS_RTEMS_STATUSIMPL_H
-
-#include <rtems/rtems/status.h>
-#include <rtems/score/threadimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicStatusImpl Classic Status Implementation
- *
- * @ingroup ClassicStatus
- *
- * @{
- */
-
-/**
- * @brief Status Object Name Errors to Status Array
- *
- * This array is used to map SuperCore Object Handler return
- * codes to Classic API status codes.
- */
-extern const rtems_status_code _Status_Object_name_errors_to_status[];
-
-RTEMS_INLINE_ROUTINE rtems_status_code _Status_Get(
- Status_Control status
-)
-{
- return (rtems_status_code) STATUS_GET_CLASSIC( status );
-}
-
-RTEMS_INLINE_ROUTINE rtems_status_code _Status_Get_after_wait(
- const Thread_Control *executing
-)
-{
- return _Status_Get( _Thread_Wait_get_status( executing ) );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/support.h b/cpukit/rtems/include/rtems/rtems/support.h
deleted file mode 100644
index 4ebb50cbdf..0000000000
--- a/cpukit/rtems/include/rtems/rtems/support.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * @file
- *
- * @defgroup ClassicRTEMSWorkspace Workspace
- *
- * @ingroup ClassicRTEMS
- * @brief Classic API support.
- */
-
-/* COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_SUPPORT_H
-#define _RTEMS_RTEMS_SUPPORT_H
-
-#include <rtems/rtems/types.h>
-#include <rtems/config.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup ClassicRTEMS
- */
-/**@{**/
-
-/**
- * @brief Returns the number of micro seconds for the milli seconds value @a _ms.
- */
-#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) ((_ms) * 1000UL)
-
-/**
- * @brief Returns the number of ticks for the milli seconds value @a _ms.
- */
-#define RTEMS_MILLISECONDS_TO_TICKS(_ms) \
- (RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) / \
- rtems_configuration_get_microseconds_per_tick())
-
-/**
- * @brief Returns the number of ticks for the micro seconds value @a _us.
- */
-#define RTEMS_MICROSECONDS_TO_TICKS(_us) \
- ((_us) / rtems_configuration_get_microseconds_per_tick())
-
-/**
- * @brief Returns @c true if the name is valid, and @c false otherwise.
- */
-RTEMS_INLINE_ROUTINE bool rtems_is_name_valid (
- rtems_name name
-)
-{
- return ( name != 0 );
-}
-
-/**
- * @brief Breaks the object name into the four component characters @a c1,
- * @a c2, @a c3, and @a c4.
- */
-RTEMS_INLINE_ROUTINE void rtems_name_to_characters(
- rtems_name name,
- char *c1,
- char *c2,
- char *c3,
- char *c4
-)
-{
- *c1 = (char) ((name >> 24) & 0xff);
- *c2 = (char) ((name >> 16) & 0xff);
- *c3 = (char) ((name >> 8) & 0xff);
- *c4 = (char) ( name & 0xff);
-}
-
-/** @} */
-
-/**
- * @defgroup ClassicRTEMSWorkspace Workspace
- *
- * @ingroup ClassicRTEMS
- *
- * Workspace definitions.
- */
-/**@{**/
-
-/**
- * @brief Gets Workspace Information
- *
- * Returns information about the heap that is used as the RTEMS Executive
- * Workspace in @a the_info.
- *
- * Returns @c true if successful, and @a false otherwise.
- */
-bool rtems_workspace_get_information(
- Heap_Information_block *the_info
-);
-
-/**
- * @brief Allocates Memory from the Workspace
- *
- * A number of @a bytes bytes will be allocated from the RTEMS Executive
- * Workspace and returned in @a pointer.
- *
- * Returns @c true if successful, and @a false otherwise.
- */
-bool rtems_workspace_allocate(
- size_t bytes,
- void **pointer
-);
-
-/**
- * @brief Frees Memory Allocated from the Workspace
- *
- * This frees the memory indicated by @a pointer that was allocated from the
- * RTEMS Executive Workspace.
- *
- * Returns @c true if successful, and @a false otherwise.
- */
-bool rtems_workspace_free(
- void *pointer
-);
-
-/**
- * @brief Greedy allocate that empties the workspace.
- *
- * Afterwards the heap has at most @a block_count allocatable blocks of sizes
- * specified by @a block_sizes. The @a block_sizes must point to an array with
- * @a block_count members. All other blocks are used.
- *
- * @see rtems_workspace_greedy_free().
- */
-void *rtems_workspace_greedy_allocate(
- const uintptr_t *block_sizes,
- size_t block_count
-);
-
-/**
- * @brief Greedy allocate all blocks except the largest free block.
- *
- * Afterwards the heap has at most one allocatable block. This block is the
- * largest free block if it exists. The allocatable size of this block is
- * stored in @a allocatable_size. All other blocks are used.
- *
- * @see rtems_workspace_greedy_free().
- */
-void *rtems_workspace_greedy_allocate_all_except_largest(
- uintptr_t *allocatable_size
-);
-
-/**
- * @brief Frees space of a greedy allocation.
- *
- * The @a opaque argument must be the return value of
- * rtems_workspace_greedy_allocate() or
- * rtems_workspace_greedy_allocate_all_except_largest().
- */
-void rtems_workspace_greedy_free( void *opaque );
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/taskmp.h b/cpukit/rtems/include/rtems/rtems/taskmp.h
deleted file mode 100644
index e2d70a924e..0000000000
--- a/cpukit/rtems/include/rtems/rtems/taskmp.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- * @file rtems/rtems/taskmp.h
- *
- * @defgroup ClassicTaskMP Task MP Support
- *
- * @ingroup ClassicRTEMS
- * @brief Task Manager MP Support
- *
- * This include file contains all the constants and structures associated
- * with the multiprocessing support in the task manager.
- */
-
-/* COPYRIGHT (c) 1989-2013.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_TASKMP_H
-#define _RTEMS_RTEMS_TASKMP_H
-
-#ifndef _RTEMS_RTEMS_TASKSIMPL_H
-# error "Never use <rtems/rtems/taskmp.h> directly; include <rtems/rtems/tasksimpl.h> instead."
-#endif
-
-#include <rtems/score/mpciimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicTaskMP Task MP Support
- *
- * @ingroup ClassicMP
- *
- * This encapsulates functionality related to the transparent multiprocessing
- * support within the Classic API Task Manager.
- */
-/**@{*/
-
-/**
- * The following enumerated type defines the list of
- * remote task operations.
- */
-typedef enum {
- RTEMS_TASKS_MP_ANNOUNCE_CREATE = 0,
- RTEMS_TASKS_MP_ANNOUNCE_DELETE = 1,
- RTEMS_TASKS_MP_SUSPEND_REQUEST = 2,
- RTEMS_TASKS_MP_SUSPEND_RESPONSE = 3,
- RTEMS_TASKS_MP_RESUME_REQUEST = 4,
- RTEMS_TASKS_MP_RESUME_RESPONSE = 5,
- RTEMS_TASKS_MP_SET_PRIORITY_REQUEST = 6,
- RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE = 7,
-} RTEMS_tasks_MP_Remote_operations;
-
-/**
- * @brief RTEMS Tasks MP Send Process Packet
- *
- * Multiprocessing Support for the RTEMS Task Manager
- *
- * This routine performs a remote procedure call so that a
- * process operation can be performed on another node.
- */
-void _RTEMS_tasks_MP_Send_process_packet (
- RTEMS_tasks_MP_Remote_operations operation,
- Objects_Id task_id,
- rtems_name name
-);
-
-/**
- * @brief Issues a remote rtems_task_set_priority() request.
- */
-rtems_status_code _RTEMS_tasks_MP_Set_priority(
- rtems_id id,
- rtems_task_priority new_priority,
- rtems_task_priority *old_priority
-);
-
-/**
- * @brief Issues a remote rtems_task_suspend() request.
- */
-rtems_status_code _RTEMS_tasks_MP_Suspend( rtems_id id );
-
-/**
- * @brief Issues a remote rtems_task_resume() request.
- */
-rtems_status_code _RTEMS_tasks_MP_Resume( rtems_id id );
-
-/**
- * @brief _RTEMS_tasks_MP_Process_packet
- *
- * This routine performs the actions specific to this package for
- * the request from another node.
- */
-void _RTEMS_tasks_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-);
-
-/**
- * @brief _RTEMS_tasks_MP_Send_object_was_deleted
- *
- * This routine is invoked indirectly by the thread queue
- * when a proxy has been removed from the thread queue and
- * the remote node must be informed of this.
- *
- * This routine is not needed by RTEMS_tasks since a task
- * cannot be deleted when segments are in use.
- */
-
-/*
- * _RTEMS_tasks_MP_Send_extract_proxy
- *
- * This routine is invoked when a task is deleted and it
- * has a proxy which must be removed from a thread queue and
- * the remote node must be informed of this.
- *
- * This routine is not needed since there are no objects
- * deleted by this manager.
- *
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-/**@}*/
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/tasks.h b/cpukit/rtems/include/rtems/rtems/tasks.h
deleted file mode 100644
index 585f4c449c..0000000000
--- a/cpukit/rtems/include/rtems/rtems/tasks.h
+++ /dev/null
@@ -1,716 +0,0 @@
-/**
- * @file rtems/rtems/tasks.h
- *
- * @defgroup ClassicTasks Tasks
- *
- * @ingroup ClassicRTEMS
- * @brief RTEMS Tasks
- *
- * This include file contains all constants and structures associated
- * with RTEMS tasks. This manager provides a comprehensive set of directives
- * to create, delete, and administer tasks.
- *
- * Directives provided are:
- *
- * - create a task
- * - get an ID of a task
- * - start a task
- * - restart a task
- * - delete a task
- * - suspend a task
- * - resume a task
- * - set a task's priority
- * - change the current task's mode
- * - wake up after interval
- * - wake up when specified
- */
-
-/*
- * COPYRIGHT (c) 1989-2014.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_TASKS_H
-#define _RTEMS_RTEMS_TASKS_H
-
-#include <rtems/score/object.h>
-#include <rtems/score/scheduler.h>
-#include <rtems/score/thread.h>
-#include <rtems/rtems/types.h>
-#include <rtems/rtems/event.h>
-#include <rtems/rtems/asr.h>
-#include <rtems/rtems/attr.h>
-#include <rtems/rtems/status.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicTasks Tasks
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates the functionality of the Classic API Task Manager.
- * This functionality includes task services such as creation, deletion,
- * delays, suspend/resume, and manipulation of execution mode and priority.
- */
-/**@{*/
-
-/**
- * Constant to be used as the ID of current task
- */
-#define RTEMS_SELF OBJECTS_ID_OF_SELF
-
-/**
- * This constant is passed to the rtems_task_wake_after directive as the
- * interval when a task wishes to yield the CPU.
- */
-#define RTEMS_YIELD_PROCESSOR WATCHDOG_NO_TIMEOUT
-
-/**
- * Define the type for an RTEMS API task priority.
- */
-typedef uint32_t rtems_task_priority;
-
-/**
- * This is the constant used with the rtems_task_set_priority
- * directive to indicate that the caller wants to obtain its
- * current priority rather than set it as the name of the
- * directive indicates.
- */
-#define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY
-
-/**
- * This constant is the least valid value for a Classic API
- * task priority.
- */
-#define RTEMS_MINIMUM_PRIORITY (PRIORITY_MINIMUM + 1)
-
-/**
- * This constant is the maximum valid value for a Classic API
- * task priority.
- *
- * @note This is actually the priority of the IDLE thread so
- * using this priority will result in having a task
- * which never executes. This could be useful if you
- * want to ensure that a task does not executes during
- * certain operations such as a system mode change.
- */
-#define RTEMS_MAXIMUM_PRIORITY ((rtems_task_priority) PRIORITY_MAXIMUM)
-
-/**
- * The following constant is passed to rtems_task_set_priority when the
- * caller wants to obtain the current priority.
- */
-#define RTEMS_CURRENT_PRIORITY PRIORITY_MINIMUM
-
-/**
- * External API name for Thread_Control
- */
-typedef Thread_Control rtems_tcb;
-
-/**
- * The following defines the "return type" of an RTEMS task.
- */
-typedef void rtems_task;
-
-/**
- * The following defines the argument to an RTEMS task.
- */
-typedef Thread_Entry_numeric_type rtems_task_argument;
-
-/**
- * The following defines the type for the entry point of an RTEMS task.
- */
-typedef rtems_task ( *rtems_task_entry )(
- rtems_task_argument
- );
-
-/**
- * The following records define the Initialization Tasks Table.
- * Each entry contains the information required by RTEMS to
- * create and start a user task automatically at executive
- * initialization time.
- */
-typedef struct {
- /** This is the Initialization Task's name. */
- rtems_name name;
- /** This is the Initialization Task's stack size. */
- size_t stack_size;
- /** This is the Initialization Task's priority. */
- rtems_task_priority initial_priority;
- /** This is the Initialization Task's attributes. */
- rtems_attribute attribute_set;
- /** This is the Initialization Task's entry point. */
- rtems_task_entry entry_point;
- /** This is the Initialization Task's initial mode. */
- rtems_mode mode_set;
- /** This is the Initialization Task's argument. */
- rtems_task_argument argument;
-} rtems_initialization_tasks_table;
-
-/**
- * @brief RTEMS Task Create
- *
- * This routine implements the rtems_task_create directive. The task
- * will have the name name. The attribute_set can be used to indicate
- * that the task will be globally accessible or utilize floating point.
- * The task's stack will be stack_size bytes. The task will begin
- * execution with initial_priority and initial_modes. It returns the
- * id of the created task in ID.
- *
- * @param[in] name is the user defined thread name
- * @param[in] initial_priority is the thread priority
- * @param[in] stack_size is the stack size in bytes
- * @param[in] initial_modes is the initial thread mode
- * @param[in] attribute_set is the thread attributes
- * @param[in] id is the pointer to thread id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- * and *id thread id filled in
- */
-rtems_status_code rtems_task_create(
- rtems_name name,
- rtems_task_priority initial_priority,
- size_t stack_size,
- rtems_mode initial_modes,
- rtems_attribute attribute_set,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Task Name to Id
- *
- * This routine implements the rtems_task_ident directive.
- * This directive returns the task ID associated with name.
- * If more than one task is named name, then the task to
- * which the ID belongs is arbitrary. node indicates the
- * extent of the search for the ID of the task named name.
- * The search can be limited to a particular node or allowed to
- * encompass all nodes.
- *
- * @param[in] name is the user defined thread name
- * @param[in] node is(are) the node(s) to be searched
- * @param[in] id is the pointer to thread id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error. If successful, the id will
- * be filled in with the thread id.
- */
-rtems_status_code rtems_task_ident(
- rtems_name name,
- uint32_t node,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Delete Task
- *
- * This routine implements the rtems_task_delete directive. The
- * task indicated by ID is deleted. The executive halts execution
- * of the thread and frees the thread control block.
- *
- * @param[in] id is the thread id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error and id is not the requesting thread. Status code is
- * returned indicating the source of the error. Nothing
- * is returned if id is the requesting thread (always succeeds).
- */
-rtems_status_code rtems_task_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Task Mode
- *
- * This routine implements the rtems_task_mode directive. The current
- * values of the modes indicated by mask of the calling task are changed
- * to that indicated in mode_set. The former mode of the task is
- * returned in mode_set.
- *
- * @param[in] mode_set is the new mode
- * @param[in] mask is the mask
- * @param[in] previous_mode_set is the address of previous mode set
- *
- * @retval RTEMS_SUCCESSFUL and previous_mode_set filled in with the
- * previous mode set
- */
-rtems_status_code rtems_task_mode(
- rtems_mode mode_set,
- rtems_mode mask,
- rtems_mode *previous_mode_set
-);
-
-/**
- * @brief RTEMS Task Restart
- *
- * This routine implements the rtems_task_restart directive. The
- * task associated with ID is restarted at its initial entry
- * point with the new argument.
- *
- * @param[in] id is the thread id
- * @param[in] arg is the thread argument
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_task_restart(
- rtems_id id,
- uint32_t arg
-);
-
-/**
- * @brief RTEMS Suspend Task
- *
- * This routine implements the rtems_task_suspend directive. The
- * SUSPENDED state is set for task associated with ID. Note that the
- * suspended state can be in addition to other waiting states.
- *
- * @param[in] id is the thread id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_task_suspend(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Resume Task
- *
- * This routine implements the rtems_task_resume Directive. The
- * SUSPENDED state is cleared for task associated with ID.
- *
- * @param[in] id is the thread id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_task_resume(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Set Task Priority
- *
- * This routine implements the rtems_task_set_priority directive. The
- * current priority of the task associated with ID is set to
- * new_priority. The former priority of that task is returned
- * in old_priority.
- *
- * @param[in] id is the thread to extract
- * @param[in] new_priority is the thread to extract
- * @param[in] old_priority is the thread to extract
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * and *old_priority filled in with the previous previous priority
- */
-rtems_status_code rtems_task_set_priority(
- rtems_id id,
- rtems_task_priority new_priority,
- rtems_task_priority *old_priority
-);
-
-/**
- * @brief Gets the current priority of the specified task with respect to the
- * specified scheduler instance.
- *
- * The current priority reflects temporary priority adjustments due to locking
- * protocols, the rate-monotonic period objects on some schedulers and other
- * mechanisms.
- *
- * @param[in] task_id Identifier of the task. Use @ref RTEMS_SELF to select
- * the executing task.
- * @param[in] scheduler_id Identifier of the scheduler instance.
- * @param[out] priority Returns the current priority of the specified task with
- * respect to the specified scheduler instance.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_ILLEGAL_ON_REMOTE_OBJECT Directive is illegal on remote tasks.
- * @retval RTEMS_INVALID_ADDRESS The priority parameter is @c NULL.
- * @retval RTEMS_INVALID_ID Invalid task or scheduler identifier.
- * @retval RTEMS_NOT_DEFINED The task has no priority within the specified
- * scheduler instance. This error is only possible on SMP configurations.
- *
- * @see rtems_scheduler_ident().
- */
-rtems_status_code rtems_task_get_priority(
- rtems_id task_id,
- rtems_id scheduler_id,
- rtems_task_priority *priority
-);
-
-/**
- * @brief RTEMS Start Task
- *
- * RTEMS Task Manager
- *
- * This routine implements the rtems_task_start directive. The
- * starting execution point of the task associated with ID is
- * set to entry_point with the initial argument.
- */
-rtems_status_code rtems_task_start(
- rtems_id id,
- rtems_task_entry entry_point,
- rtems_task_argument argument
-);
-
-/**
- * @brief RTEMS Task Wake When
- *
- * This routine implements the rtems_task_wake_when directive. The
- * calling task is blocked until the current time of day is
- * equal to that indicated by time_buffer.
- *
- * @param[in] time_buffer is the pointer to the time and date structure
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_task_wake_when(
- rtems_time_of_day *time_buffer
-);
-
-/**
- * @brief RTEMS Task Wake After
- *
- * This routine implements the rtems_task_wake_after directive. The
- * calling task is blocked until the indicated number of clock
- * ticks have occurred.
- *
- * @param[in] ticks is the number of ticks to wait
- * @retval RTEMS_SUCCESSFUL
- */
-rtems_status_code rtems_task_wake_after(
- rtems_interval ticks
-);
-
-/**
- * @brief rtems_task_is_suspended
- *
- * This directive returns a status indicating whether or not
- * the specified task is suspended.
- */
-rtems_status_code rtems_task_is_suspended(
- rtems_id id
-);
-
-/**
- * @brief Gets the processor affinity set of a task.
- *
- * @param[in] id Identifier of the task. Use @ref RTEMS_SELF to select the
- * executing task.
- * @param[in] cpusetsize Size of the specified affinity set buffer in
- * bytes. This value must be positive.
- * @param[out] cpuset The current processor affinity set of the task. A set
- * bit in the affinity set means that the task can execute on this processor
- * and a cleared bit means the opposite.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS The @a cpuset parameter is @c NULL.
- * @retval RTEMS_INVALID_ID Invalid task identifier.
- * @retval RTEMS_INVALID_NUMBER The affinity set buffer is too small for the
- * current processor affinity set of the task.
- */
-rtems_status_code rtems_task_get_affinity(
- rtems_id id,
- size_t cpusetsize,
- cpu_set_t *cpuset
-);
-
-/**
- * @brief Sets the processor affinity set of a task.
- *
- * This function will not change the scheduler of the task. The intersection
- * of the processor affinity set and the set of processors owned by the
- * scheduler of the task must be non-empty. It is not an error if the
- * processor affinity set contains processors that are not part of the set of
- * processors owned by the scheduler instance of the task. A task will simply
- * not run under normal circumstances on these processors since the scheduler
- * ignores them. Some locking protocols may temporarily use processors that
- * are not included in the processor affinity set of the task. It is also not
- * an error if the processor affinity set contains processors that are not part
- * of the system.
- *
- * @param[in] id Identifier of the task. Use @ref RTEMS_SELF to select the
- * executing task.
- * @param[in] cpusetsize Size of the specified affinity set buffer in
- * bytes. This value must be positive.
- * @param[in] cpuset The new processor affinity set for the task. A set bit in
- * the affinity set means that the task can execute on this processor and a
- * cleared bit means the opposite.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS The @a cpuset parameter is @c NULL.
- * @retval RTEMS_INVALID_ID Invalid task identifier.
- * @retval RTEMS_INVALID_NUMBER Invalid processor affinity set.
- */
-rtems_status_code rtems_task_set_affinity(
- rtems_id id,
- size_t cpusetsize,
- const cpu_set_t *cpuset
-);
-
-/**
- * @brief Gets the scheduler of a task.
- *
- * @param[in] task_id Identifier of the task. Use @ref RTEMS_SELF to select
- * the executing task.
- * @param[out] scheduler_id Identifier of the scheduler instance.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS The @a scheduler_id parameter is @c NULL.
- * @retval RTEMS_INVALID_ID Invalid task identifier.
- */
-rtems_status_code rtems_task_get_scheduler(
- rtems_id task_id,
- rtems_id *scheduler_id
-);
-
-/**
- * @brief Sets the scheduler instance of a task.
- *
- * Initially, the scheduler instance of a task is set to the scheduler instance
- * of the task that created it. This directive allows to move a task from its
- * current scheduler instance to another specified by the scheduler identifier.
- *
- * @param[in] task_id Identifier of the task. Use @ref RTEMS_SELF to select
- * the executing task.
- * @param[in] scheduler_id Identifier of the scheduler instance.
- * @param[in] priority The task priority with respect to the new scheduler
- * instance. The real and initial priority of the task is set to this value.
- * The initial priority is used by rtems_task_restart() for example.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_ILLEGAL_ON_REMOTE_OBJECT Directive is illegal on remote tasks.
- * @retval RTEMS_INVALID_ID Invalid task or scheduler identifier.
- * @retval RTEMS_INVALID_PRIORITY Invalid priority.
- * @retval RTEMS_RESOURCE_IN_USE The task owns resources which deny a scheduler
- * change.
- *
- * @see rtems_scheduler_ident().
- */
-rtems_status_code rtems_task_set_scheduler(
- rtems_id task_id,
- rtems_id scheduler_id,
- rtems_task_priority priority
-);
-
-/**
- * @brief RTEMS Get Self Task Id
- *
- * This directive returns the ID of the currently executing task.
- */
-rtems_id rtems_task_self(void);
-
-/**
- * @brief Task visitor.
- *
- * @param[in] tcb The task control block.
- * @param[in] arg The visitor argument.
- *
- * @retval true Stop the iteration.
- * @retval false Otherwise.
- *
- * @see rtems_task_iterate().
- */
-typedef bool ( *rtems_task_visitor )( rtems_tcb *tcb, void *arg );
-
-/**
- * @brief Iterates over all tasks in the system.
- *
- * This operation covers all tasks of all APIs.
- *
- * Must be called from task context. This operation obtains and releases the
- * objects allocator lock. The task visitor is called while owning the objects
- * allocator lock. It is possible to perform blocking operations in the task
- * visitor, however, take care that no deadlocks via the object allocator lock
- * can occur.
- *
- * @param[in] visitor The task visitor.
- * @param[in] arg The visitor argument.
- */
-void rtems_task_iterate(
- rtems_task_visitor visitor,
- void *arg
-);
-
-/**
- * @brief Identifies a scheduler by its name.
- *
- * The scheduler name is determined by the scheduler configuration.
- *
- * @param[in] name The scheduler name.
- * @param[out] id The scheduler identifier associated with the name.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS The @a id parameter is @c NULL.
- * @retval RTEMS_INVALID_NAME Invalid scheduler name.
- */
-rtems_status_code rtems_scheduler_ident(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief Identifies a scheduler by a processor index.
- *
- * @param[in] cpu_index The processor index.
- * @param[out] id The scheduler identifier associated with the processor index.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS The @a id parameter is @c NULL.
- * @retval RTEMS_INVALID_NAME Invalid processor index.
- * @retval RTEMS_INCORRECT_STATE The processor index is valid, however, this
- * processor is not owned by a scheduler.
- */
-rtems_status_code rtems_scheduler_ident_by_processor(
- uint32_t cpu_index,
- rtems_id *id
-);
-
-/**
- * @brief Identifies a scheduler by a processor set.
- *
- * The scheduler is selected according to the highest numbered online processor
- * in the specified processor set.
- *
- * @param[in] cpusetsize Size of the specified processor set buffer in
- * bytes. This value must be positive.
- * @param[out] cpuset The processor set to identify the scheduler.
- * @param[out] id The scheduler identifier associated with the processor set.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS The @a id parameter is @c NULL.
- * @retval RTEMS_INVALID_SIZE Invalid processor set size.
- * @retval RTEMS_INVALID_NAME The processor set contains no online processor.
- * @retval RTEMS_INCORRECT_STATE The processor set is valid, however, the
- * highest numbered online processor in the specified processor set is not
- * owned by a scheduler.
- */
-rtems_status_code rtems_scheduler_ident_by_processor_set(
- size_t cpusetsize,
- const cpu_set_t *cpuset,
- rtems_id *id
-);
-
-/**
- * @brief Gets the set of processors owned by the specified scheduler instance.
- *
- * @param[in] scheduler_id Identifier of the scheduler instance.
- * @param[in] cpusetsize Size of the specified processor set buffer in
- * bytes. This value must be positive.
- * @param[out] cpuset The processor set owned by the scheduler. A set bit in
- * the processor set means that this processor is owned by the scheduler and a
- * cleared bit means the opposite.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ADDRESS The @a cpuset parameter is @c NULL.
- * @retval RTEMS_INVALID_ID Invalid scheduler instance identifier.
- * @retval RTEMS_INVALID_NUMBER The processor set buffer is too small for the
- * set of processors owned by the scheduler.
- */
-rtems_status_code rtems_scheduler_get_processor_set(
- rtems_id scheduler_id,
- size_t cpusetsize,
- cpu_set_t *cpuset
-);
-
-/**
- * @brief Adds a processor to the set of processors owned by the specified
- * scheduler instance.
- *
- * Must be called from task context. This operation obtains and releases the
- * objects allocator lock.
- *
- * @param[in] scheduler_id Identifier of the scheduler instance.
- * @param[in] cpu_index Index of the processor to add.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ID Invalid scheduler instance identifier.
- * @retval RTEMS_NOT_CONFIGURED The processor is not configured to be used by
- * the application.
- * @retval RTEMS_INCORRECT_STATE The processor is configured to be used by
- * the application, however, it is not online.
- * @retval RTEMS_RESOURCE_IN_USE The processor is already assigned to a
- * scheduler instance.
- */
-rtems_status_code rtems_scheduler_add_processor(
- rtems_id scheduler_id,
- uint32_t cpu_index
-);
-
-/**
- * @brief Removes a processor from set of processors owned by the specified
- * scheduler instance.
- *
- * Must be called from task context. This operation obtains and releases the
- * objects allocator lock. Removing a processor from a scheduler is a complex
- * operation that involves all tasks of the system.
- *
- * @param[in] scheduler_id Identifier of the scheduler instance.
- * @param[in] cpu_index Index of the processor to add.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_ID Invalid scheduler instance identifier.
- * @retval RTEMS_INVALID_NUMBER The processor is not owned by the specified
- * scheduler instance.
- * @retval RTEMS_RESOURCE_IN_USE The set of processors owned by the specified
- * scheduler instance would be empty after the processor removal and there
- * exists a non-idle task that uses this scheduler instance as its home
- * scheduler instance.
- */
-rtems_status_code rtems_scheduler_remove_processor(
- rtems_id scheduler_id,
- uint32_t cpu_index
-);
-
-/**@}*/
-
-/**
- * This is the API specific information required by each thread for
- * the RTEMS API to function correctly.
- *
- */
-typedef struct {
- /** This field contains the event control for this task. */
- Event_Control Event;
- /** This field contains the system event control for this task. */
- Event_Control System_event;
- /** This field contains the Classic API Signal information for this task. */
- ASR_Information Signal;
-
- /**
- * @brief Signal post-switch action in case signals are pending.
- */
- Thread_Action Signal_action;
-} RTEMS_API_Control;
-
-/**
- * @brief _RTEMS_tasks_Initialize_user_tasks_body
- *
- * This routine creates and starts all configured user
- * initialization threads.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * RTEMS Task Manager
- */
-
-extern void _RTEMS_tasks_Initialize_user_tasks_body( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/tasksimpl.h b/cpukit/rtems/include/rtems/rtems/tasksimpl.h
deleted file mode 100644
index b0432351f3..0000000000
--- a/cpukit/rtems/include/rtems/rtems/tasksimpl.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicTasksImpl
- *
- * @brief Classic Tasks Manager Implementation
- */
-
-/* COPYRIGHT (c) 1989-2014.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_TASKSIMPL_H
-#define _RTEMS_RTEMS_TASKSIMPL_H
-
-#include <rtems/rtems/tasks.h>
-#include <rtems/score/objectimpl.h>
-#include <rtems/score/schedulerimpl.h>
-#include <rtems/score/threadimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicTasksImpl Classic Tasks Manager Implementation
- *
- * @ingroup ClassicTasks
- *
- * @{
- */
-
-/**
- * The following instantiates the information control block used to
- * manage this class of objects.
- */
-extern Thread_Information _RTEMS_tasks_Information;
-
-/**
- * @brief RTEMS User Task Initialization
- *
- * This routine creates and starts all configured user
- * initialization threads.
- */
-void _RTEMS_tasks_Initialize_user_tasks( void );
-
-RTEMS_INLINE_ROUTINE Thread_Control *_RTEMS_tasks_Allocate(void)
-{
- _Objects_Allocator_lock();
-
- _Thread_Kill_zombies();
-
- return (Thread_Control *)
- _Objects_Allocate_unprotected( &_RTEMS_tasks_Information.Objects );
-}
-
-/**
- * @brief Frees a task control block.
- *
- * This routine frees a task control block to the
- * inactive chain of free task control blocks.
- */
-RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free (
- Thread_Control *the_task
-)
-{
- _Objects_Free(
- _Objects_Get_information_id( the_task->Object.id ),
- &the_task->Object
- );
-}
-
-/**
- * @brief Converts the RTEMS API priority to the corresponding SuperCore
- * priority and validates it.
- *
- * The RTEMS API system priority is accepted as valid.
- *
- * @param[in] scheduler The scheduler instance.
- * @param[in] priority The RTEMS API priority to convert and validate.
- * @param[out] valid Indicates if the RTEMS API priority is valid and a
- * corresponding SuperCore priority in the specified scheduler instance
- * exists.
- *
- * @return The corresponding SuperCore priority.
- */
-RTEMS_INLINE_ROUTINE Priority_Control _RTEMS_Priority_To_core(
- const Scheduler_Control *scheduler,
- rtems_task_priority priority,
- bool *valid
-)
-{
- *valid = ( priority <= scheduler->maximum_priority );
-
- return _Scheduler_Map_priority( scheduler, (Priority_Control) priority );
-}
-
-/**
- * @brief Converts the SuperCore priority to the corresponding RTEMS API
- * priority.
- *
- * @param[in] scheduler The scheduler instance.
- * @param[in] priority The SuperCore priority to convert.
- *
- * @return The corresponding RTEMS API priority.
- */
-RTEMS_INLINE_ROUTINE rtems_task_priority _RTEMS_Priority_From_core(
- const Scheduler_Control *scheduler,
- Priority_Control priority
-)
-{
- return (rtems_task_priority)
- _Scheduler_Unmap_priority( scheduler, priority );
-}
-
-/**@}*/
-
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/rtems/taskmp.h>
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/timer.h b/cpukit/rtems/include/rtems/rtems/timer.h
deleted file mode 100644
index 032c49525a..0000000000
--- a/cpukit/rtems/include/rtems/rtems/timer.h
+++ /dev/null
@@ -1,384 +0,0 @@
-/**
- * @file rtems/rtems/timer.h
- *
- * @defgroup ClassicTimer Timers
- *
- * @ingroup ClassicRTEMS
- * @brief Instantiate RTEMS Timer Data
- *
- * This include file contains all the constants, structures, and
- * prototypes associated with the Timer Manager. This manager provides
- * facilities to configure, initiate, cancel, and delete timers which will
- * fire at specified intervals of time.
- *
- * Directives provided are:
- *
- * - create a timer
- * - get an ID of a timer
- * - delete a timer
- * - set timer to fire in context of clock tick
- * - after a number of ticks have passed
- * - when a specified date and time has been reached
- * - initiate the timer server task
- * - set timer to fire in context of the timer server task
- * - after a number of ticks have passed
- * - when a specified date and time has been reached
- * - reset a timer
- * - cancel a time
- */
-
-/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
- *
- * Copyright (c) 2009, 2016 embedded brains GmbH.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_TIMER_H
-#define _RTEMS_RTEMS_TIMER_H
-
-#include <rtems/rtems/attr.h>
-#include <rtems/rtems/status.h>
-#include <rtems/rtems/tasks.h>
-#include <rtems/rtems/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicTimer Timers
- *
- * @ingroup ClassicRTEMS
- *
- * This encapsulates functionality related to the Classic API Timer
- * Manager. This manager provides functionality which allows the
- * application to schedule the execution of methods at a specified
- * time in the future. These methods may be scheduled based upon
- * interval or wall time and may be executed in either the clock tick
- * ISR or in a special dedicated timer server task.
- */
-/**@{*/
-
-#define TIMER_CLASS_BIT_TIME_OF_DAY 0x1
-
-#define TIMER_CLASS_BIT_ON_TASK 0x2
-
-#define TIMER_CLASS_BIT_NOT_DORMANT 0x4
-
-/**
- * The following enumerated type details the classes to which a timer
- * may belong.
- */
-typedef enum {
- /**
- * This value indicates the timer is currently not in use.
- */
- TIMER_DORMANT,
-
- /**
- * This value indicates the timer is currently in use as an interval
- * timer which will fire in the clock tick ISR.
- */
- TIMER_INTERVAL = TIMER_CLASS_BIT_NOT_DORMANT,
-
- /**
- * This value indicates the timer is currently in use as an interval
- * timer which will fire in the timer server task.
- */
- TIMER_INTERVAL_ON_TASK =
- TIMER_CLASS_BIT_NOT_DORMANT | TIMER_CLASS_BIT_ON_TASK,
-
- /**
- * This value indicates the timer is currently in use as an time of day
- * timer which will fire in the clock tick ISR.
- */
- TIMER_TIME_OF_DAY =
- TIMER_CLASS_BIT_NOT_DORMANT | TIMER_CLASS_BIT_TIME_OF_DAY,
-
- /**
- * This value indicates the timer is currently in use as an time of day
- * timer which will fire in the timer server task.
- */
- TIMER_TIME_OF_DAY_ON_TASK =
- TIMER_CLASS_BIT_NOT_DORMANT | TIMER_CLASS_BIT_TIME_OF_DAY |
- TIMER_CLASS_BIT_ON_TASK
-} Timer_Classes;
-
-/**
- * The following types define a pointer to a timer service routine.
- */
-typedef void rtems_timer_service_routine;
-
-/**
- * This type defines the type used to manage and indirectly invoke
- * Timer Service Routines (TSRs). This defines the prototype and interface
- * for a function which is to be used as a TSR.
- */
-typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )(
- rtems_id,
- void *
- );
-
-/**
- * The following records define the control block used to manage
- * each timer.
- */
-typedef struct {
- /** This field is the object management portion of a Timer instance. */
- Objects_Control Object;
- /** This field is the Watchdog instance which will be the scheduled. */
- Watchdog_Control Ticker;
- /** This field indicates what type of timer this currently is. */
- Timer_Classes the_class;
- /** This field is the timer service routine. */
- rtems_timer_service_routine_entry routine;
- /** This field is the timer service routine user data. */
- void *user_data;
- /** This field is the timer interval in ticks or seconds. */
- Watchdog_Interval initial;
- /** This field is the timer start time point in ticks. */
- Watchdog_Interval start_time;
- /** This field is the timer stop time point in ticks. */
- Watchdog_Interval stop_time;
-} Timer_Control;
-
-/**
- * @brief RTEMS Create Timer
- *
- * This routine implements the rtems_timer_create directive. The
- * timer will have the name name. It returns the id of the
- * created timer in ID.
- *
- * @param[in] name is the timer name
- * @param[out] id is the pointer to timer id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful
- */
-rtems_status_code rtems_timer_create(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief RTEMS Timer Name to Id
- *
- * This routine implements the rtems_timer_ident directive.
- * This directive returns the timer ID associated with name.
- * If more than one timer is named name, then the timer
- * to which the ID belongs is arbitrary.
- *
- * @param[in] name is the user defined message queue name
- * @param[in] id is the pointer to timer id
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * id filled with the message queue id
- */
-rtems_status_code rtems_timer_ident(
- rtems_name name,
- rtems_id *id
-);
-
-/**
- * @brief rtems_timer_cancel
- *
- * This routine implements the rtems_timer_cancel directive. It is used
- * to stop the timer associated with ID from firing.
- */
-rtems_status_code rtems_timer_cancel(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Delete Timer
- *
- * This routine implements the rtems_timer_delete directive. The
- * timer indicated by ID is deleted.
- *
- * @param[in] id is the timer id
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_timer_delete(
- rtems_id id
-);
-
-/**
- * @brief RTEMS Timer Fire After
- *
- * This routine implements the rtems_timer_fire_after directive. It
- * initiates the timer associated with ID to fire in ticks clock ticks.
- * When the timer fires, the routine will be invoked in the context
- * of the rtems_clock_tick directive which is normally invoked as
- * part of servicing a periodic interupt.
- *
- * @param[in] id is the timer id
- * @param[in] ticks is the interval until routine is fired
- * @param[in] routine is the routine to schedule
- * @param[in] user_data is the passed as argument to routine when it is fired
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_timer_fire_after(
- rtems_id id,
- rtems_interval ticks,
- rtems_timer_service_routine_entry routine,
- void *user_data
-);
-
-/**
- * @brief RTEMS Timer Server Fire After
- *
- * This routine implements the rtems_timer_server_fire_after directive. It
- * initiates the timer associated with ID to fire in ticks clock
- * ticks. When the timer fires, the routine will be invoked by the
- * Timer Server in the context of a task NOT IN THE CONTEXT of the
- * clock tick interrupt.
- *
- * @param[in] id is the timer id
- * @param[in] ticks is the interval until routine is fired
- * @param[in] routine is the routine to schedule
- * @param[in] user_data is the passed as argument to routine when it is fired
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_timer_server_fire_after(
- rtems_id id,
- rtems_interval ticks,
- rtems_timer_service_routine_entry routine,
- void *user_data
-);
-
-/**
- * @brief RTEMS Timer Fire When
- *
- * This routine implements the rtems_timer_fire_when directive. It
- * initiates the timer associated with ID to fire at wall_time
- * When the timer fires, the routine will be invoked in the context
- * of the rtems_clock_tick directive which is normally invoked as
- * part of servicing a periodic interupt.
- *
- * @param[in] id is the timer id
- * @param[in] wall_time is the time of day to fire timer
- * @param[in] routine is the routine to schedule
- * @param[in] user_data is the passed as argument to routine when it is fired
- *
- * @retval This method returns RTEMS_SUCCESSFUL if there was not an
- * error. Otherwise, a status code is returned indicating the
- * source of the error.
- */
-rtems_status_code rtems_timer_fire_when(
- rtems_id id,
- rtems_time_of_day *wall_time,
- rtems_timer_service_routine_entry routine,
- void *user_data
-);
-
-/**
- * @brief RTEMS Timer Server Fire When Directive
- *
- * Timer Manager - RTEMS Timer Server Fire When Directive
- *
- * This routine implements the rtems_timer_server_fire_when directive. It
- * initiates the timer associated with ID to fire at wall_time
- * When the timer fires, the routine will be invoked by the
- * Timer Server in the context of a task NOT IN THE CONTEXT of the
- * clock tick interrupt.
- */
-rtems_status_code rtems_timer_server_fire_when(
- rtems_id id,
- rtems_time_of_day *wall_time,
- rtems_timer_service_routine_entry routine,
- void *user_data
-);
-
-/**
- * @brief RTEMS Timer Reset
- *
- * Timer Manager - RTEMS Timer Reset
- *
- * This routine implements the rtems_timer_reset directive. It is used
- * to reinitialize the interval timer associated with ID just as if
- * rtems_timer_fire_after were re-invoked with the same arguments that
- * were used to initiate this timer.
- */
-rtems_status_code rtems_timer_reset(
- rtems_id id
-);
-
-/**
- * @brief Initiates the timer server.
- *
- * This directive creates and starts the server for task-based timers.
- * It must be invoked before any task-based timers can be initiated.
- *
- * @param priority The timer server task priority.
- * @param stack_size The stack size in bytes for the timer server task.
- * @param attribute_set The timer server task attributes.
- *
- * @return This method returns RTEMS_SUCCESSFUL if successful and an
- * error code otherwise.
- */
-rtems_status_code rtems_timer_initiate_server(
- rtems_task_priority priority,
- size_t stack_size,
- rtems_attribute attribute_set
-);
-
-/**
- * This is the default value for the priority of the Timer Server.
- * When given this priority, a special high priority not accessible
- * via the Classic API is used.
- */
-#define RTEMS_TIMER_SERVER_DEFAULT_PRIORITY (uint32_t) -1
-
-/**
- * This is the structure filled in by the timer get information
- * service.
- */
-typedef struct {
- /** This indicates the current type of the timer. */
- Timer_Classes the_class;
- /** This indicates the initial requested interval. */
- Watchdog_Interval initial;
- /** This indicates the time the timer was initially scheduled. */
- Watchdog_Interval start_time;
- /** This indicates the time the timer is scheduled to fire. */
- Watchdog_Interval stop_time;
-} rtems_timer_information;
-
-/**
- * @brief RTEMS Get Timer Information
- *
- * This routine implements the rtems_timer_get_information directive.
- * This directive returns information about the timer.
- *
- * @param[in] id is the timer id
- * @param[in] the_info is the pointer to timer information block
- *
- * @retval RTEMS_SUCCESSFUL if successful or error code if unsuccessful and
- * *the_info region information block filled in
- */
-rtems_status_code rtems_timer_get_information(
- rtems_id id,
- rtems_timer_information *the_info
-);
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/timerimpl.h b/cpukit/rtems/include/rtems/rtems/timerimpl.h
deleted file mode 100644
index d8581bfcd8..0000000000
--- a/cpukit/rtems/include/rtems/rtems/timerimpl.h
+++ /dev/null
@@ -1,209 +0,0 @@
-/**
- * @file
- *
- * @ingroup ClassicTimerImpl
- *
- * @brief Classic Timer Implementation
- */
-
-/*
- * COPYRIGHT (c) 1989-2011.
- * On-Line Applications Research Corporation (OAR).
- *
- * Copyright (c) 2016 embedded brains GmbH.
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_TIMER_INL
-#define _RTEMS_RTEMS_TIMER_INL
-
-#include <rtems/rtems/timer.h>
-#include <rtems/score/objectimpl.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/watchdogimpl.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup ClassicTimerImpl Classic Timer Implementation
- *
- * @ingroup ClassicTimer
- *
- * @{
- */
-
-typedef struct Timer_server_Control {
- ISR_LOCK_MEMBER( Lock )
-
- Chain_Control Pending;
-
- Objects_Id server_id;
-} Timer_server_Control;
-
-/**
- * @brief Pointer to default timer server control block.
- *
- * This value is @c NULL when the default timer server is not initialized.
- */
-extern Timer_server_Control *volatile _Timer_server;
-
-/**
- * The following defines the information control block used to manage
- * this class of objects.
- */
-extern Objects_Information _Timer_Information;
-
-/**
- * @brief Timer_Allocate
- *
- * This function allocates a timer control block from
- * the inactive chain of free timer control blocks.
- */
-RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Allocate( void )
-{
- return (Timer_Control *) _Objects_Allocate( &_Timer_Information );
-}
-
-/**
- * @brief Timer_Free
- *
- * This routine frees a timer control block to the
- * inactive chain of free timer control blocks.
- */
-RTEMS_INLINE_ROUTINE void _Timer_Free (
- Timer_Control *the_timer
-)
-{
- _Objects_Free( &_Timer_Information, &the_timer->Object );
-}
-
-RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get(
- Objects_Id id,
- ISR_lock_Context *lock_context
-)
-{
- return (Timer_Control *) _Objects_Get(
- id,
- lock_context,
- &_Timer_Information
- );
-}
-
-RTEMS_INLINE_ROUTINE Per_CPU_Control *_Timer_Acquire_critical(
- Timer_Control *the_timer,
- ISR_lock_Context *lock_context
-)
-{
- Per_CPU_Control *cpu;
-
- cpu = _Watchdog_Get_CPU( &the_timer->Ticker );
- _Watchdog_Per_CPU_acquire_critical( cpu, lock_context );
-
- return cpu;
-}
-
-RTEMS_INLINE_ROUTINE void _Timer_Release(
- Per_CPU_Control *cpu,
- ISR_lock_Context *lock_context
-)
-{
- _Watchdog_Per_CPU_release_critical( cpu, lock_context );
- _ISR_lock_ISR_enable( lock_context );
-}
-
-RTEMS_INLINE_ROUTINE bool _Timer_Is_interval_class(
- Timer_Classes the_class
-)
-{
- Timer_Classes mask =
- TIMER_CLASS_BIT_NOT_DORMANT | TIMER_CLASS_BIT_TIME_OF_DAY;
-
- return ( the_class & mask ) == TIMER_CLASS_BIT_NOT_DORMANT;
-}
-
-RTEMS_INLINE_ROUTINE bool _Timer_Is_on_task_class(
- Timer_Classes the_class
-)
-{
- Timer_Classes mask =
- TIMER_CLASS_BIT_NOT_DORMANT | TIMER_CLASS_BIT_ON_TASK;
-
- return ( the_class & mask ) == mask;
-}
-
-RTEMS_INLINE_ROUTINE Per_CPU_Watchdog_index _Timer_Watchdog_header_index(
- Timer_Classes the_class
-)
-{
- return ( the_class & TIMER_CLASS_BIT_TIME_OF_DAY );
-}
-
-RTEMS_INLINE_ROUTINE Watchdog_Interval _Timer_Get_CPU_ticks(
- const Per_CPU_Control *cpu
-)
-{
- return (Watchdog_Interval) cpu->Watchdog.ticks;
-}
-
-rtems_status_code _Timer_Fire(
- rtems_id id,
- rtems_interval interval,
- rtems_timer_service_routine_entry routine,
- void *user_data,
- Timer_Classes the_class,
- Watchdog_Service_routine_entry adaptor
-);
-
-rtems_status_code _Timer_Fire_after(
- rtems_id id,
- rtems_interval ticks,
- rtems_timer_service_routine_entry routine,
- void *user_data,
- Timer_Classes the_class,
- Watchdog_Service_routine_entry adaptor
-);
-
-rtems_status_code _Timer_Fire_when(
- rtems_id id,
- const rtems_time_of_day *wall_time,
- rtems_timer_service_routine_entry routine,
- void *user_data,
- Timer_Classes the_class,
- Watchdog_Service_routine_entry adaptor
-);
-
-void _Timer_Cancel( Per_CPU_Control *cpu, Timer_Control *the_timer );
-
-void _Timer_Routine_adaptor( Watchdog_Control *the_watchdog );
-
-void _Timer_server_Routine_adaptor( Watchdog_Control *the_watchdog );
-
-RTEMS_INLINE_ROUTINE void _Timer_server_Acquire_critical(
- Timer_server_Control *timer_server,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_Acquire( &timer_server->Lock, lock_context );
-}
-
-RTEMS_INLINE_ROUTINE void _Timer_server_Release_critical(
- Timer_server_Control *timer_server,
- ISR_lock_Context *lock_context
-)
-{
- _ISR_lock_Release( &timer_server->Lock, lock_context );
-}
-
-/**@}*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/types.h b/cpukit/rtems/include/rtems/rtems/types.h
deleted file mode 100644
index 82c0edd3c3..0000000000
--- a/cpukit/rtems/include/rtems/rtems/types.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/**
- * @file
- *
- * @defgroup ClassicTypes Types
- *
- * @ingroup ClassicRTEMS
- * @brief Types used by Classic API.
- */
-
-/* COPYRIGHT (c) 1989-2009.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef _RTEMS_RTEMS_TYPES_H
-#define _RTEMS_RTEMS_TYPES_H
-
-/*
- * RTEMS basic type definitions
- */
-
-#include <stdint.h>
-#include <rtems/score/heap.h>
-#include <rtems/score/object.h>
-#include <rtems/score/priority.h>
-#include <rtems/score/watchdog.h>
-#include <rtems/rtems/modes.h>
-#if defined(RTEMS_MULTIPROCESSING)
-#include <rtems/score/mpci.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @addtogroup ClassicRTEMS
- */
-/**@{**/
-
-#ifdef RTEMS_DEPRECATED_TYPES
-/**
- * @brief Single precision float type.
- *
- * @deprecated Use @c float instead.
- */
-typedef single_precision rtems_single;
-
-/**
- * @brief Double precision float type.
- *
- * @deprecated Use @c double instead.
- */
-typedef double_precision rtems_double;
-
-/**
- * @brief RTEMS boolean type.
- *
- * @deprecated Use @c bool instead
- */
-typedef boolean rtems_boolean;
-#endif
-
-/**
- * @brief Classic API @ref ClassicRTEMSSubSecObjectNames "object name" type.
- *
- * Contains the name of a Classic API object. It is an unsigned 32-bit integer
- * which can be treated as a numeric value or initialized using
- * rtems_build_name() to contain four ASCII characters.
- */
-typedef uint32_t rtems_name;
-
-/**
- * @brief Used to manage and manipulate
- * @ref ClassicRTEMSSubSecObjectIdentifiers "RTEMS object identifiers".
- */
-typedef Objects_Id rtems_id;
-
-/**
- * @brief Invalid object identifier value.
- *
- * No object can have this identifier value.
- */
-#define RTEMS_ID_NONE OBJECTS_ID_NONE
-
-/**
- * @brief Public name for task context area.
- */
-typedef Context_Control rtems_context;
-
-#if (CPU_HARDWARE_FP == TRUE) || (CPU_SOFTWARE_FP == TRUE)
-/**
- * @brief Public name for task floating point context area.
- */
-typedef Context_Control_fp rtems_context_fp;
-#endif
-
-#if (CPU_ISR_PASSES_FRAME_POINTER == TRUE)
-/**
- * @brief Defines the format of the interrupt stack frame as it appears to a
- * user ISR.
- *
- * This data structure is only provided if the interrupt stack frame is passed
- * to the ISR handler.
- *
- * @see rtems_interrupt_catch().
- */
-typedef CPU_Interrupt_frame rtems_interrupt_frame;
-#endif
-
-/**
- * @brief Information structure returned by the Heap Handler via the Region
- * Manager.
- */
-typedef Heap_Information_block region_information_block;
-
-/**
- * @brief Used to manage and manipulate intervals specified by
- * @ref ClassicRTEMSSecTime "clock ticks".
- */
-typedef Watchdog_Interval rtems_interval;
-
-/**
- * @brief Represents the CPU usage per thread.
- *
- * When using nanoseconds granularity timing, RTEMS may internally use a
- * variety of representations.
- */
-typedef struct timespec rtems_thread_cpu_usage_t;
-
-/**
- * @brief Data structure to manage and manipulate calendar
- * @ref ClassicRTEMSSecTime "time".
- */
-typedef struct {
- /**
- * @brief Year, A.D.
- */
- uint32_t year;
- /**
- * @brief Month, 1 .. 12.
- */
- uint32_t month;
- /**
- * @brief Day, 1 .. 31.
- */
- uint32_t day;
- /**
- * @brief Hour, 0 .. 23.
- */
- uint32_t hour;
- /**
- * @brief Minute, 0 .. 59.
- */
- uint32_t minute;
- /**
- * @brief Second, 0 .. 59.
- */
- uint32_t second;
- /**
- * @brief Elapsed ticks between seconds.
- */
- uint32_t ticks;
-} rtems_time_of_day;
-
-/**
- * @brief Task mode type.
- */
-typedef Modes_Control rtems_mode;
-
-/*
- * MPCI related entries
- */
-#if defined(RTEMS_MULTIPROCESSING)
-/**
- * @brief Set of MPCI packet classes which are internally dispatched to the
- * managers.
- */
-typedef MP_packet_Classes rtems_mp_packet_classes;
-
-/**
- * @brief Prefix found at the beginning of each MPCI packet sent between nodes.
- */
-typedef MP_packet_Prefix rtems_packet_prefix;
-
-/**
- * @brief Indirect pointer to the initialization entry point for an MPCI
- * handler.
- */
-typedef MPCI_initialization_entry rtems_mpci_initialization_entry;
-
-/**
- * @brief Indirect pointer to the get_packet entry point for an MPCI handler.
- */
-typedef MPCI_get_packet_entry rtems_mpci_get_packet_entry;
-
-/**
- * @brief Indirect pointer to the return_packet entry point for an MPCI
- * handler.
- */
-typedef MPCI_return_packet_entry rtems_mpci_return_packet_entry;
-
-/**
- * @brief Indirect pointer to the send_packet entry point for an MPCI handler.
- */
-typedef MPCI_send_entry rtems_mpci_send_packet_entry;
-
-/**
- * @brief Indirect pointer to the receive entry point for an MPCI handler.
- */
-typedef MPCI_receive_entry rtems_mpci_receive_packet_entry;
-
-/**
- * @brief Return type from every MPCI handler routine.
- */
-typedef MPCI_Entry rtems_mpci_entry;
-
-/**
- * @brief Structure which is used to configure an MPCI handler.
- */
-typedef MPCI_Control rtems_mpci_table;
-
-#endif
-
-/** @} */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/mainpage.h b/cpukit/rtems/mainpage.h
deleted file mode 100644
index e2d51328cf..0000000000
--- a/cpukit/rtems/mainpage.h
+++ /dev/null
@@ -1,927 +0,0 @@
-/**
- * @file rtems/rtems/mainpage.h
- *
- * This file exists to provide a top level description of RTEMS for Doxygen.
- */
-
-/*
- * COPYRIGHT (c) 1989-2014.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-/**
- * @mainpage
- *
- * The RTEMS real-time operating systems is a layered system with each of the
- * public APIs implemented in terms of a common foundation layer called the
- * SuperCore. This is the Doxygen generated documentation for the RTEMS CPU
- * Kit including the Classic API, POSIX API and SuperCore.
- */
-
-/**
- * @page RTEMSPreface RTEMS History and Introduction
- *
- * In recent years, the cost required to develop a software product has
- * increased significantly while the target hardware costs have decreased. Now
- * a larger portion of money is expended in developing, using, and maintaining
- * software. The trend in computing costs is the complete dominance of software
- * over hardware costs. Because of this, it is necessary that formal
- * disciplines be established to increase the probability that software is
- * characterized by a high degree of correctness, maintainability, and
- * portability. In addition, these disciplines must promote practices that aid
- * in the consistent and orderly development of a software system within
- * schedule and budgetary constraints. To be effective, these disciplines must
- * adopt standards which channel individual software efforts toward a common
- * goal.
- *
- * The push for standards in the software development field has been met with
- * various degrees of success. The Microprocessor Operating Systems Interfaces
- * (MOSI) effort has experienced only limited success. As popular as the UNIX
- * operating system has grown, the attempt to develop a standard interface
- * definition to allow portable application development has only recently begun
- * to produce the results needed in this area. Unfortunately, very little
- * effort has been expended to provide standards addressing the needs of the
- * real-time community. Several organizations have addressed this need during
- * recent years.
- *
- * The Real Time Executive Interface Definition (RTEID) was developed by
- * Motorola with technical input from Software Components Group. RTEID was
- * adopted by the VMEbus International Trade Association (VITA) as a baseline
- * draft for their proposed standard multiprocessor, real-time executive
- * interface, Open Real-Time Kernel Interface Definition (ORKID). These two
- * groups are currently working together with the IEEE P1003.4 committee to
- * insure that the functionality of their proposed standards is adopted as the
- * real-time extensions to POSIX.
- *
- * This emerging standard defines an interface for the development of real-time
- * software to ease the writing of real-time application programs that are
- * directly portable across multiple real-time executive implementations. This
- * interface includes both the source code interfaces and run-time behavior as
- * seen by a real-time application. It does not include the details of how a
- * kernel implements these functions. The standard's goal is to serve as a
- * complete definition of external interfaces so that application code that
- * conforms to these interfaces will execute properly in all real-time
- * executive environments. With the use of a standards compliant executive,
- * routines that acquire memory blocks, create and manage message queues,
- * establish and use semaphores, and send and receive signals need not be
- * redeveloped for a different real-time environment as long as the new
- * environment is compliant with the standard. Software developers need only
- * concentrate on the hardware dependencies of the real-time system.
- * Furthermore, most hardware dependencies for real-time applications can be
- * localized to the device drivers.
- *
- * A compliant executive provides simple and flexible real-time
- * multiprocessing. It easily lends itself to both tightly-coupled and
- * loosely-coupled configurations (depending on the system hardware
- * configuration). Objects such as tasks, queues, events, signals, semaphores,
- * and memory blocks can be designated as global objects and accessed by any
- * task regardless of which processor the object and the accessing task reside.
- *
- * The acceptance of a standard for real-time executives will produce the same
- * advantages enjoyed from the push for UNIX standardization by AT&T's System V
- * Interface Definition and IEEE's POSIX efforts. A compliant multiprocessing
- * executive will allow close coupling between UNIX systems and real-time
- * executives to provide the many benefits of the UNIX development environment
- * to be applied to real-time software development. Together they provide the
- * necessary laboratory environment to implement real-time, distributed,
- * embedded systems using a wide variety of computer architectures.
- *
- * A study was completed in 1988, within the Research, Development, and
- * Engineering Center, U.S. Army Missile Command, which compared the various
- * aspects of the Ada programming language as they related to the application
- * of Ada code in distributed and/or multiple processing systems. Several
- * critical conclusions were derived from the study. These conclusions have a
- * major impact on the way the Army develops application software for embedded
- * applications. These impacts apply to both in-house software development and
- * contractor developed software.
- *
- * A conclusion of the analysis, which has been previously recognized by other
- * agencies attempting to utilize Ada in a distributed or multiprocessing
- * environment, is that the Ada programming language does not adequately
- * support multiprocessing. Ada does provide a mechanism for multi-tasking,
- * however, this capability exists only for a single processor system. The
- * language also does not have inherent capabilities to access global named
- * variables, flags or program code. These critical features are essential in
- * order for data to be shared between processors. However, these drawbacks do
- * have workarounds which are sometimes awkward and defeat the intent of
- * software maintainability and portability goals.
- *
- * Another conclusion drawn from the analysis, was that the run time executives
- * being delivered with the Ada compilers were too slow and inefficient to be
- * used in modern missile systems. A run time executive is the core part of the
- * run time system code, or operating system code, that controls task
- * scheduling, input/output management and memory management. Traditionally,
- * whenever efficient executive (also known as kernel) code was required by the
- * application, the user developed in-house software. This software was usually
- * written in assembly language for optimization.
- *
- * Because of this shortcoming in the Ada programming language, software
- * developers in research and development and contractors for project managed
- * systems, are mandated by technology to purchase and utilize off-the-shelf
- * third party kernel code. The contractor, and eventually the Government, must
- * pay a licensing fee for every copy of the kernel code used in an embedded
- * system.
- *
- * The main drawback to this development environment is that the Government
- * does not own, nor has the right to modify code contained within the kernel.
- * V&V techniques in this situation are more difficult than if the complete
- * source code were available. Responsibility for system failures due to faulty
- * software is yet another area to be resolved under this environment.
- *
- * The Guidance and Control Directorate began a software development effort to
- * address these problems. A project to develop an experimental run time kernel
- * was begun that will eliminate the major drawbacks of the Ada programming
- * language mentioned above. The Real Time Executive for Multiprocessor Systems
- * (RTEMS) provides full capabilities for management of tasks, interrupts,
- * time, and multiple processors in addition to those features typical of
- * generic operating systems. The code is Government owned, so no licensing
- * fees are necessary. RTEMS has been implemented in both the Ada and C
- * programming languages. It has been ported to the following processor
- * families:
- *
- * - Altera NIOS II
- * - Analog Devices Blackfin
- * - ARM
- * - Freescale (formerly Motorola) MC68xxx
- * - Freescale (formerly Motorola) MC683xx
- * - Freescale (formerly Motorola) ColdFire
- * - Intel i386 and above
- * - Lattice Semiconductor LM32
- * - MIPS
- * - PowerPC
- * - Renesas (formerly Hitachi) SuperH
- * - Renesas (formerly Hitachi) H8/300
- * - SPARC
- * - Texas Instruments C3x/C4x
- * - UNIX
- *
- * Support for other processor families, including RISC, CISC, and DSP, is
- * planned. Since almost all of RTEMS is written in a high level language,
- * ports to additional processor families require minimal effort.
- *
- * RTEMS multiprocessor support is capable of handling either homogeneous or
- * heterogeneous systems. The kernel automatically compensates for
- * architectural differences (byte swapping, etc.) between processors. This
- * allows a much easier transition from one processor family to another without
- * a major system redesign.
- *
- * Since the proposed standards are still in draft form, RTEMS cannot and does
- * not claim compliance. However, the status of the standard is being carefully
- * monitored to guarantee that RTEMS provides the functionality specified in
- * the standard. Once approved, RTEMS will be made compliant.
- */
-
-/**
- * @page RTEMSOverview RTEMS Overview
- *
- * @section RTEMSOverviewSecIntroduction Introduction
- *
- * RTEMS, Real-Time Executive for Multiprocessor Systems, is a real-time
- * executive (kernel) which provides a high performance environment for
- * embedded military applications including the following features:
- *
- * - multitasking capabilities
- * - homogeneous and heterogeneous multiprocessor systems
- * - event-driven, priority-based, preemptive scheduling
- * - optional rate monotonic scheduling
- * - intertask communication and synchronization
- * - priority inheritance
- * - responsive interrupt management
- * - dynamic memory allocation
- * - high level of user configurability
- *
- * This manual describes the usage of RTEMS for applications written in the C
- * programming language. Those implementation details that are processor
- * dependent are provided in the Applications Supplement documents. A
- * supplement document which addresses specific architectural issues that
- * affect RTEMS is provided for each processor type that is supported.
- *
- * @section RTEMSOverviewSecRealtimeApplicationSystems Real-time Application Systems
- *
- * Real-time application systems are a special class of computer applications.
- * They have a complex set of characteristics that distinguish them from other
- * software problems. Generally, they must adhere to more rigorous
- * requirements. The correctness of the system depends not only on the results
- * of computations, but also on the time at which the results are produced. The
- * most important and complex characteristic of real-time application systems
- * is that they must receive and respond to a set of external stimuli within
- * rigid and critical time constraints referred to as deadlines. Systems can be
- * buried by an avalanche of interdependent, asynchronous or cyclical event
- * streams.
- *
- * Deadlines can be further characterized as either hard or soft based upon the
- * value of the results when produced after the deadline has passed. A deadline
- * is hard if the results have no value or if their use will result in a
- * catastrophic event. In contrast, results which are produced after a soft
- * deadline may have some value.
- *
- * Another distinguishing requirement of real-time application systems is the
- * ability to coordinate or manage a large number of concurrent activities.
- * Since software is a synchronous entity, this presents special problems. One
- * instruction follows another in a repeating synchronous cycle. Even though
- * mechanisms have been developed to allow for the processing of external
- * asynchronous events, the software design efforts required to process and
- * manage these events and tasks are growing more complicated.
- *
- * The design process is complicated further by spreading this activity over a
- * set of processors instead of a single processor. The challenges associated
- * with designing and building real-time application systems become very
- * complex when multiple processors are involved. New requirements such as
- * interprocessor communication channels and global resources that must be
- * shared between competing processors are introduced. The ramifications of
- * multiple processors complicate each and every characteristic of a real-time
- * system.
- *
- * @section RTEMSOverviewSecRealtimeExecutive Real-time Executive
- *
- * Fortunately, real-time operating systems or real-time executives serve as a
- * cornerstone on which to build the application system. A real-time
- * multitasking executive allows an application to be cast into a set of
- * logical, autonomous processes or tasks which become quite manageable. Each
- * task is internally synchronous, but different tasks execute independently,
- * resulting in an asynchronous processing stream. Tasks can be dynamically
- * paused for many reasons resulting in a different task being allowed to
- * execute for a period of time. The executive also provides an interface to
- * other system components such as interrupt handlers and device drivers.
- * System components may request the executive to allocate and coordinate
- * resources, and to wait for and trigger synchronizing conditions. The
- * executive system calls effectively extend the CPU instruction set to support
- * efficient multitasking. By causing tasks to travel through well-defined
- * state transitions, system calls permit an application to demand-switch
- * between tasks in response to real-time events.
- *
- * By proper grouping of responses to stimuli into separate tasks, a system can
- * now asynchronously switch between independent streams of execution, directly
- * responding to external stimuli as they occur. This allows the system design
- * to meet critical performance specifications which are typically measured by
- * guaranteed response time and transaction throughput. The multiprocessor
- * extensions of RTEMS provide the features necessary to manage the extra
- * requirements introduced by a system distributed across several processors.
- * It removes the physical barriers of processor boundaries from the world of
- * the system designer, enabling more critical aspects of the system to receive
- * the required attention. Such a system, based on an efficient real-time,
- * multiprocessor executive, is a more realistic model of the outside world or
- * environment for which it is designed. As a result, the system will always be
- * more logical, efficient, and reliable.
- *
- * By using the directives provided by RTEMS, the real-time applications
- * developer is freed from the problem of controlling and synchronizing
- * multiple tasks and processors. In addition, one need not develop, test,
- * debug, and document routines to manage memory, pass messages, or provide
- * mutual exclusion. The developer is then able to concentrate solely on the
- * application. By using standard software components, the time and cost
- * required to develop sophisticated real-time applications is significantly
- * reduced.
- *
- * @section RTEMSOverviewSecApplicationArchitecture RTEMS Application Architecture
- *
- * One important design goal of RTEMS was to provide a bridge between two
- * critical layers of typical real-time systems. As shown in the following
- * figure, RTEMS serves as a buffer between the project dependent application
- * code and the target hardware. Most hardware dependencies for real-time
- * applications can be localized to the low level device drivers.
- *
- * @todo Image RTEMS Application Architecture
- *
- * The RTEMS I/O interface manager provides an efficient tool for incorporating
- * these hardware dependencies into the system while simultaneously providing a
- * general mechanism to the application code that accesses them. A well
- * designed real-time system can benefit from this architecture by building a
- * rich library of standard application components which can be used repeatedly
- * in other real-time projects.
- *
- * @section RTEMSOverviewSecInternalArchitecture RTEMS Internal Architecture
- *
- * RTEMS can be viewed as a set of layered components that work in harmony to
- * provide a set of services to a real-time application system. The executive
- * interface presented to the application is formed by grouping directives into
- * logical sets called resource managers. Functions utilized by multiple
- * managers such as scheduling, dispatching, and object management are provided
- * in the executive core. The executive core depends on a small set of CPU
- * dependent routines. Together these components provide a powerful run time
- * environment that promotes the development of efficient real-time application
- * systems. The following figure illustrates this organization:
- *
- * @todo Image RTEMS Architecture
- *
- * Subsequent chapters present a detailed description of the capabilities
- * provided by each of the following RTEMS managers:
- *
- * - initialization
- * - task
- * - interrupt
- * - clock
- * - timer
- * - semaphore
- * - message
- * - event
- * - signal
- * - partition
- * - region
- * - dual ported memory
- * - I/O
- * - fatal error
- * - rate monotonic
- * - user extensions
- * - multiprocessing
- *
- * @section RTEMSOverviewSecUserCustomization User Customization and Extensibility
- *
- * As 32-bit microprocessors have decreased in cost, they have become
- * increasingly common in a variety of embedded systems. A wide range of custom
- * and general-purpose processor boards are based on various 32-bit
- * processors. RTEMS was designed to make no assumptions concerning the
- * characteristics of individual microprocessor families or of specific support
- * hardware. In addition, RTEMS allows the system developer a high degree of
- * freedom in customizing and extending its features.
- *
- * RTEMS assumes the existence of a supported microprocessor and sufficient
- * memory for both RTEMS and the real-time application. Board dependent
- * components such as clocks, interrupt controllers, or I/O devices can be
- * easily integrated with RTEMS. The customization and extensibility features
- * allow RTEMS to efficiently support as many environments as possible.
- *
- * @section RTEMSOverviewSecPortability Portability
- *
- * The issue of portability was the major factor in the creation of RTEMS.
- * Since RTEMS is designed to isolate the hardware dependencies in the specific
- * board support packages, the real-time application should be easily ported to
- * any other processor. The use of RTEMS allows the development of real-time
- * applications which can be completely independent of a particular
- * microprocessor architecture.
- *
- * @section RTEMSOverviewSecMemoryRequirements Memory Requirements
- *
- * Since memory is a critical resource in many real-time embedded systems,
- * RTEMS was specifically designed to automatically leave out all services that
- * are not required from the run-time environment. Features such as networking,
- * various fileystems, and many other features are completely optional. This
- * allows the application designer the flexibility to tailor RTEMS to most
- * efficiently meet system requirements while still satisfying even the most
- * stringent memory constraints. As a result, the size of the RTEMS executive
- * is application dependent.
- *
- * RTEMS requires RAM to manage each instance of an RTEMS object that is
- * created. Thus the more RTEMS objects an application needs, the more memory
- * that must be reserved. See Configuring a System Determining Memory
- * Requirements for more details.
- *
- * @todo Link to Configuring a SystemDetermining Memory Requirements
- *
- * RTEMS utilizes memory for both code and data space. Although RTEMS' data
- * space must be in RAM, its code space can be located in either ROM or RAM.
- *
- * @section RTEMSOverviewSecAudience Audience
- *
- * This manual was written for experienced real-time software developers.
- * Although some background is provided, it is assumed that the reader is
- * familiar with the concepts of task management as well as intertask
- * communication and synchronization. Since directives, user related data
- * structures, and examples are presented in C, a basic understanding of the C
- * programming language is required to fully understand the material presented.
- * However, because of the similarity of the Ada and C RTEMS implementations,
- * users will find that the use and behavior of the two implementations is very
- * similar. A working knowledge of the target processor is helpful in
- * understanding some of RTEMS' features. A thorough understanding of the
- * executive cannot be obtained without studying the entire manual because many
- * of RTEMS' concepts and features are interrelated. Experienced RTEMS users
- * will find that the manual organization facilitates its use as a reference
- * document.
- */
-
-/**
- * @addtogroup ClassicAPI
- *
- * The facilities provided by RTEMS are built upon a foundation of very
- * powerful concepts. These concepts must be understood before the application
- * developer can efficiently utilize RTEMS. The purpose of this chapter is to
- * familiarize one with these concepts.
- *
- * @section ClassicRTEMSSecObjects Objects
- *
- * RTEMS provides directives which can be used to dynamically create, delete,
- * and manipulate a set of predefined object types. These types include tasks,
- * message queues, semaphores, memory regions, memory partitions, timers,
- * ports, and rate monotonic periods. The object-oriented nature of RTEMS
- * encourages the creation of modular applications built upon re-usable
- * "building block" routines.
- *
- * All objects are created on the local node as required by the application and
- * have an RTEMS assigned ID. All objects have a user-assigned name. Although a
- * relationship exists between an object's name and its RTEMS assigned ID, the
- * name and ID are not identical. Object names are completely arbitrary and
- * selected by the user as a meaningful "tag" which may commonly reflect the
- * object's use in the application. Conversely, object IDs are designed to
- * facilitate efficient object manipulation by the executive.
- *
- * @subsection ClassicRTEMSSubSecObjectNames Object Names
- *
- * An object name is an unsigned 32-bit entity associated with the
- * object by the user. The data type @ref rtems_name is used to store object names.
- *
- * Although not required by RTEMS, object names are often composed of four
- * ASCII characters which help identify that object. For example, a task which
- * causes a light to blink might be called "LITE". The rtems_build_name()
- * routine is provided to build an object name from four ASCII characters. The
- * following example illustrates this:
- *
- * @code
- * rtems_name my_name = rtems_build_name('L', 'I', 'T', 'E');
- * @endcode
- *
- * However, it is not required that the application use ASCII characters to
- * build object names. For example, if an application requires one-hundred
- * tasks, it would be difficult to assign meaningful ASCII names to each task.
- * A more convenient approach would be to name them the binary values one
- * through one-hundred, respectively.
- *
- * RTEMS provides a helper routine, rtems_object_get_name(), which can be used to
- * obtain the name of any RTEMS object using just its ID. This routine attempts
- * to convert the name into a printable string.
- *
- * @subsection ClassicRTEMSSubSecObjectIdentifiers Object Identifiers
- *
- * An object ID is a unique unsigned integer value which uniquely identifies an
- * object instance. Object IDs are passed as arguments to many directives in
- * RTEMS and RTEMS translates the ID to an internal object pointer. The
- * efficient manipulation of object IDs is critical to the performance of RTEMS
- * services. Because of this, there are two object ID formats defined. Each
- * target architecture specifies which format it will use. There is a 32-bit
- * format which is used for most of the supported architectures and supports
- * multiprocessor configurations. There is also a simpler 16-bit format which
- * is appropriate for smaller target architectures and does not support
- * multiprocessor configurations.
- *
- * @subsubsection ClassicRTEMSSubSec32BitObjectIdentifierFormat 32-Bit Object Identifier Format
- *
- * The 32-bit format for an object ID is composed of four parts: API,
- * object class, node, and index. The data type @ref rtems_id is used to store
- * object IDs.
- *
- * <table>
- * <tr>
- * <th>Bits</th>
- * <td>31</td><td>30</td><td>29</td><td>28</td><td>27</td><td>26</td><td>25</td><td>24</td>
- * <td>23</td><td>22</td><td>21</td><td>20</td><td>19</td><td>18</td><td>17</td><td>16</td>
- * <td>15</td><td>14</td><td>13</td><td>12</td><td>11</td><td>10</td><td>09</td><td>08</td>
- * <td>07</td><td>06</td><td>05</td><td>04</td><td>03</td><td>02</td><td>01</td><td>00</td>
- * </tr>
- * <tr>
- * <th>Contents</th>
- * <td colspan=5>Class</td><td colspan=3>API</td><td colspan=8>Node</td><td colspan=16>Object Index</td>
- * </tr>
- * </table>
- *
- * The most significant five bits are the object class. The next three bits
- * indicate the API to which the object class belongs. The next eight bits
- * (16 .. 23) are the number of the node on which this object was created. The
- * node number is always one (1) in a single processor system. The least
- * significant 16-bits form an identifier within a particular object type.
- * This identifier, called the object index, ranges in value from one to the
- * maximum number of objects configured for this object type.
- *
- * @subsubsection ClassicRTEMSSubSec16BitObjectIdentifierFormat 16-Bit Object Identifier Format
- *
- * The 16-bit format for an object ID is composed of three parts: API, object
- * class, and index. The data type @ref rtems_id is used to store object IDs.
- *
- * <table>
- * <tr>
- * <th>Bits</th>
- * <td>15</td><td>14</td><td>13</td><td>12</td><td>11</td><td>10</td><td>09</td><td>08</td>
- * <td>07</td><td>06</td><td>05</td><td>04</td><td>03</td><td>02</td><td>01</td><td>00</td>
- * </tr>
- * <tr>
- * <th>Contents</th>
- * <td colspan=5>Class</td><td colspan=3>API</td><td colspan=8>Object Index</td>
- * </tr>
- * </table>
- *
- * The 16-bit format is designed to be as similar as possible to the 32-bit
- * format. The differences are limited to the eliminatation of the node field
- * and reduction of the index field from 16-bits to 8-bits. Thus the 16-bit
- * format only supports up to 255 object instances per API/Class combination
- * and single processor systems. As this format is typically utilized by 16-bit
- * processors with limited address space, this is more than enough object
- * instances.
- *
- * @subsection ClassicRTEMSSubSecObjectIdentiferDescription Object Identifer Description
- *
- * The components of an object ID make it possible to quickly locate any object
- * in even the most complicated multiprocessor system. Object ID's are
- * associated with an object by RTEMS when the object is created and the
- * corresponding ID is returned by the appropriate object create directive. The
- * object ID is required as input to all directives involving objects, except
- * those which create an object or obtain the ID of an object.
- *
- * The object identification directives can be used to dynamically obtain a
- * particular object's ID given its name. This mapping is accomplished by
- * searching the name table associated with this object type. If the name is
- * non-unique, then the ID associated with the first occurrence of the name
- * will be returned to the application. Since object IDs are returned when the
- * object is created, the object identification directives are not necessary in
- * a properly designed single processor application.
- *
- * In addition, services are provided to portably examine the subcomponents of
- * an RTEMS ID. These services are described in detail later in this manual but
- * are prototyped as follows:
- *
- * - rtems_object_id_get_api()
- * - rtems_object_id_get_class()
- * - rtems_object_id_get_node()
- * - rtems_object_id_get_index()
- *
- * An object control block is a data structure defined by RTEMS which contains
- * the information necessary to manage a particular object type. For efficiency
- * reasons, the format of each object type's control block is different.
- * However, many of the fields are similar in function. The number of each type
- * of control block is application dependent and determined by the values
- * specified in the user's Configuration Table. An object control block is
- * allocated at object create time and freed when the object is deleted. With
- * the exception of user extension routines, object control blocks are not
- * directly manipulated by user applications.
- *
- * @section ClassicRTEMSSecComSync Communication and Synchronization
- *
- * In real-time multitasking applications, the ability for cooperating
- * execution threads to communicate and synchronize with each other is
- * imperative. A real-time executive should provide an application with the
- * following capabilities
- *
- * - data transfer between cooperating tasks,
- * - data transfer between tasks and ISRs,
- * - synchronization of cooperating tasks, and
- * - synchronization of tasks and ISRs.
- *
- * Most RTEMS managers can be used to provide some form of communication and/or
- * synchronization. However, managers dedicated specifically to communication
- * and synchronization provide well established mechanisms which directly map
- * to the application's varying needs. This level of flexibility allows the
- * application designer to match the features of a particular manager with the
- * complexity of communication and synchronization required. The following
- * managers were specifically designed for communication and synchronization:
- *
- * - @ref ClassicSem
- * - @ref ClassicMessageQueue
- * - @ref ClassicEvent
- * - @ref ClassicSignal
- *
- * The semaphore manager supports mutual exclusion involving the
- * synchronization of access to one or more shared user resources. Binary
- * semaphores may utilize the optional priority inheritance algorithm to avoid
- * the problem of priority inversion. The message manager supports both
- * communication and synchronization, while the event manager primarily
- * provides a high performance synchronization mechanism. The signal manager
- * supports only asynchronous communication and is typically used for exception
- * handling.
- *
- * @section ClassicRTEMSSecTime Time
- *
- * The development of responsive real-time applications requires an
- * understanding of how RTEMS maintains and supports time-related operations.
- * The basic unit of time in RTEMS is known as a tick. The frequency of clock
- * ticks is completely application dependent and determines the granularity and
- * accuracy of all interval and calendar time operations.
- *
- * By tracking time in units of ticks, RTEMS is capable of supporting interval
- * timing functions such as task delays, timeouts, timeslicing, the delayed
- * execution of timer service routines, and the rate monotonic scheduling of
- * tasks. An interval is defined as a number of ticks relative to the current
- * time. For example, when a task delays for an interval of ten ticks, it is
- * implied that the task will not execute until ten clock ticks have occurred.
- * All intervals are specified using data type @ref rtems_interval.
- *
- * A characteristic of interval timing is that the actual interval period may
- * be a fraction of a tick less than the interval requested. This occurs
- * because the time at which the delay timer is set up occurs at some time
- * between two clock ticks. Therefore, the first countdown tick occurs in less
- * than the complete time interval for a tick. This can be a problem if the
- * clock granularity is large.
- *
- * The rate monotonic scheduling algorithm is a hard real-time scheduling
- * methodology. This methodology provides rules which allows one to guarantee
- * that a set of independent periodic tasks will always meet their deadlines --
- * even under transient overload conditions. The rate monotonic manager
- * provides directives built upon the Clock Manager's interval timer support
- * routines.
- *
- * Interval timing is not sufficient for the many applications which require
- * that time be kept in wall time or true calendar form. Consequently, RTEMS
- * maintains the current date and time. This allows selected time operations to
- * be scheduled at an actual calendar date and time. For example, a task could
- * request to delay until midnight on New Year's Eve before lowering the ball
- * at Times Square. The data type @ref rtems_time_of_day is used to specify
- * calendar time in RTEMS services. See Clock Manager Time and Date Data
- * Structures.
- *
- * @todo Link to Clock Manager Time and Date Data Structures
- *
- * Obviously, the directives which use intervals or wall time cannot operate
- * without some external mechanism which provides a periodic clock tick. This
- * clock tick is typically provided by a real time clock or counter/timer
- * device.
- *
- * @section ClassicRTEMSSecMemoryManagement Memory Management
- *
- * RTEMS memory management facilities can be grouped into two classes: dynamic
- * memory allocation and address translation. Dynamic memory allocation is
- * required by applications whose memory requirements vary through the
- * application's course of execution. Address translation is needed by
- * applications which share memory with another CPU or an intelligent
- * Input/Output processor. The following RTEMS managers provide facilities to
- * manage memory:
- *
- * - @ref ClassicRegion
- * - @ref ClassicPart
- * - @ref ClassicDPMEM
- *
- * RTEMS memory management features allow an application to create simple
- * memory pools of fixed size buffers and/or more complex memory pools of
- * variable size segments. The partition manager provides directives to manage
- * and maintain pools of fixed size entities such as resource control blocks.
- * Alternatively, the region manager provides a more general purpose memory
- * allocation scheme that supports variable size blocks of memory which are
- * dynamically obtained and freed by the application. The dual-ported memory
- * manager provides executive support for address translation between internal
- * and external dual-ported RAM address space.
- */
-
-/**
- * @addtogroup ClassicTasks
- *
- * @section ClassicTasksSecTaskDefinition Task Definition
- *
- * Many definitions of a task have been proposed in computer literature.
- * Unfortunately, none of these definitions encompasses all facets of the
- * concept in a manner which is operating system independent. Several of the
- * more common definitions are provided to enable each user to select a
- * definition which best matches their own experience and understanding of the
- * task concept:
- *
- * - a "dispatchable" unit.
- * - an entity to which the processor is allocated.
- * - an atomic unit of a real-time, multiprocessor system.
- * - single threads of execution which concurrently compete for resources.
- * - a sequence of closely related computations which can execute concurrently
- * with other computational sequences.
- *
- * From RTEMS' perspective, a task is the smallest thread of execution which
- * can compete on its own for system resources. A task is manifested by the
- * existence of a task control block (TCB).
- *
- * @section ClassicTasksSecTaskControlBlock Task Control Block
- *
- * The Task Control Block (TCB) is an RTEMS defined data structure which
- * contains all the information that is pertinent to the execution of a task.
- * During system initialization, RTEMS reserves a TCB for each task configured.
- * A TCB is allocated upon creation of the task and is returned to the TCB free
- * list upon deletion of the task.
- *
- * The TCB's elements are modified as a result of system calls made by the
- * application in response to external and internal stimuli. TCBs are the only
- * RTEMS internal data structure that can be accessed by an application via
- * user extension routines. The TCB contains a task's name, ID, current
- * priority, current and starting states, execution mode, TCB user extension
- * pointer, scheduling control structures, as well as data required by a
- * blocked task.
- *
- * A task's context is stored in the TCB when a task switch occurs. When the
- * task regains control of the processor, its context is restored from the TCB.
- * When a task is restarted, the initial state of the task is restored from the
- * starting context area in the task's TCB.
- *
- * @section ClassicTasksSecTaskStates Task States
- *
- * A task may exist in one of the following five states:
- *
- * - executing - Currently scheduled to the CPU
- * - ready - May be scheduled to the CPU
- * - blocked - Unable to be scheduled to the CPU
- * - dormant - Created task that is not started
- * - non-existent - Uncreated or deleted task
- *
- * An active task may occupy the executing, ready, blocked or dormant state,
- * otherwise the task is considered non-existent. One or more tasks may be
- * active in the system simultaneously. Multiple tasks communicate,
- * synchronize, and compete for system resources with each other via system
- * calls. The multiple tasks appear to execute in parallel, but actually each
- * is dispatched to the CPU for periods of time determined by the RTEMS
- * scheduling algorithm. The scheduling of a task is based on its current state
- * and priority.
- *
- * @section ClassicTasksSecTaskPriority Task Priority
- *
- * A task's priority determines its importance in relation to the other tasks
- * executing on the same processor. RTEMS supports 255 levels of priority
- * ranging from 1 to 255. The data type rtems_task_priority() is used to store
- * task priorities.
- *
- * Tasks of numerically smaller priority values are more important tasks than
- * tasks of numerically larger priority values. For example, a task at priority
- * level 5 is of higher privilege than a task at priority level 10. There is no
- * limit to the number of tasks assigned to the same priority.
- *
- * Each task has a priority associated with it at all times. The initial value
- * of this priority is assigned at task creation time. The priority of a task
- * may be changed at any subsequent time.
- *
- * Priorities are used by the scheduler to determine which ready task will be
- * allowed to execute. In general, the higher the logical priority of a task,
- * the more likely it is to receive processor execution time.
- *
- * @section ClassicTasksSecTaskMode Task Mode
- *
- * A task's execution mode is a combination of the following four components:
- *
- * - preemption
- * - ASR processing
- * - timeslicing
- * - interrupt level
- *
- * It is used to modify RTEMS' scheduling process and to alter the execution
- * environment of the task. The data type rtems_task_mode() is used to manage
- * the task execution mode.
- *
- * The preemption component allows a task to determine when control of the
- * processor is relinquished. If preemption is disabled (@c
- * RTEMS_NO_PREEMPT), the task will retain control of the
- * processor as long as it is in the executing state -- even if a higher
- * priority task is made ready. If preemption is enabled (@c RTEMS_PREEMPT)
- * and a higher priority task is made ready, then the processor will be
- * taken away from the current task immediately and given to the higher
- * priority task.
- *
- * The timeslicing component is used by the RTEMS scheduler to determine how
- * the processor is allocated to tasks of equal priority. If timeslicing is
- * enabled (@c RTEMS_TIMESLICE), then RTEMS will limit the amount of time the
- * task can execute before the processor is allocated to another ready task of
- * equal priority. The length of the timeslice is application dependent and
- * specified in the Configuration Table. If timeslicing is disabled (@c
- * RTEMS_NO_TIMESLICE), then the task will be allowed to
- * execute until a task of higher priority is made ready. If @c
- * RTEMS_NO_PREEMPT is selected, then the timeslicing component is ignored by
- * the scheduler.
- *
- * The asynchronous signal processing component is used to determine when
- * received signals are to be processed by the task. If signal processing is
- * enabled (@c RTEMS_ASR), then signals sent to the task will be processed
- * the next time the task executes. If signal processing is disabled (@c
- * RTEMS_NO_ASR), then all signals received by the task will
- * remain posted until signal processing is enabled. This component affects
- * only tasks which have established a routine to process asynchronous signals.
- *
- * The interrupt level component is used to determine which interrupts will be
- * enabled when the task is executing. @c RTEMS_INTERRUPT_LEVEL(n) specifies
- * that the task will execute at interrupt level n.
- *
- * - @ref RTEMS_PREEMPT - enable preemption (default)
- * - @ref RTEMS_NO_PREEMPT - disable preemption
- * - @ref RTEMS_NO_TIMESLICE - disable timeslicing (default)
- * - @ref RTEMS_TIMESLICE - enable timeslicing
- * - @ref RTEMS_ASR - enable ASR processing (default)
- * - @ref RTEMS_NO_ASR - disable ASR processing
- * - @ref RTEMS_INTERRUPT_LEVEL(0) - enable all interrupts (default)
- * - @ref RTEMS_INTERRUPT_LEVEL(n) - execute at interrupt level n
- *
- * The set of default modes may be selected by specifying the @ref
- * RTEMS_DEFAULT_MODES constant.
- *
- * @section ClassicTasksSecAccessingTaskArguments Accessing Task Arguments
- *
- * All RTEMS tasks are invoked with a single argument which is specified when
- * they are started or restarted. The argument is commonly used to communicate
- * startup information to the task. The simplest manner in which to define a
- * task which accesses it argument is:
- *
- * @code
- * rtems_task user_task(
- * rtems_task_argument argument
- * );
- * @endcode
- *
- * Application tasks requiring more information may view this single argument
- * as an index into an array of parameter blocks.
- *
- * @section ClassicTasksSecFloatingPointConsiderations Floating Point Considerations
- *
- * Creating a task with the @ref RTEMS_FLOATING_POINT attribute flag results in
- * additional memory being allocated for the TCB to store the state of the
- * numeric coprocessor during task switches. This additional memory is NOT
- * allocated for @ref RTEMS_NO_FLOATING_POINT tasks. Saving and restoring the
- * context of a @c RTEMS_FLOATING_POINT task takes longer than that of a @c
- * RTEMS_NO_FLOATING_POINT task because of the relatively large amount of time
- * required for the numeric coprocessor to save or restore its computational
- * state.
- *
- * Since RTEMS was designed specifically for embedded military applications
- * which are floating point intensive, the executive is optimized to avoid
- * unnecessarily saving and restoring the state of the numeric coprocessor. The
- * state of the numeric coprocessor is only saved when a @c
- * RTEMS_FLOATING_POINT task is dispatched and that task was not the last task
- * to utilize the coprocessor. In a system with only one @c
- * RTEMS_FLOATING_POINT task, the state of the numeric coprocessor will never
- * be saved or restored.
- *
- * Although the overhead imposed by @c RTEMS_FLOATING_POINT tasks is minimal,
- * some applications may wish to completely avoid the overhead associated with
- * @c RTEMS_FLOATING_POINT tasks and still utilize a numeric coprocessor. By
- * preventing a task from being preempted while performing a sequence of
- * floating point operations, a @c RTEMS_NO_FLOATING_POINT task can utilize
- * the numeric coprocessor without incurring the overhead of a @c
- * RTEMS_FLOATING_POINT context switch. This approach also avoids the
- * allocation of a floating point context area. However, if this approach is
- * taken by the application designer, NO tasks should be created as @c
- * RTEMS_FLOATING_POINT tasks. Otherwise, the floating point context will not
- * be correctly maintained because RTEMS assumes that the state of the numeric
- * coprocessor will not be altered by @c RTEMS_NO_FLOATING_POINT tasks.
- *
- * If the supported processor type does not have hardware floating capabilities
- * or a standard numeric coprocessor, RTEMS will not provide built-in support
- * for hardware floating point on that processor. In this case, all tasks are
- * considered @c RTEMS_NO_FLOATING_POINT whether created as @c
- * RTEMS_FLOATING_POINT or @c RTEMS_NO_FLOATING_POINT tasks. A floating point
- * emulation software library must be utilized for floating point operations.
- *
- * On some processors, it is possible to disable the floating point unit
- * dynamically. If this capability is supported by the target processor, then
- * RTEMS will utilize this capability to enable the floating point unit only
- * for tasks which are created with the @c RTEMS_FLOATING_POINT attribute.
- * The consequence of a @c RTEMS_NO_FLOATING_POINT task attempting to access
- * the floating point unit is CPU dependent but will generally result in an
- * exception condition.
- *
- * @section ClassicTasksSecPerTaskVariables Per Task Variables
- *
- * Per task variables are no longer available. In particular the
- * rtems_task_variable_add(), rtems_task_variable_get() and
- * rtems_task_variable_delete() functions are neither declared nor defined
- * anymore. Use thread local storage or POSIX Keys instead.
- *
- * @section ClassicTasksSecBuildingTaskAttributeSet Building a Task Attribute Set
- *
- * In general, an attribute set is built by a bitwise OR of the desired
- * components. The set of valid task attribute components is listed below:
- *
- * - @ref RTEMS_NO_FLOATING_POINT - does not use coprocessor (default)
- * - @ref RTEMS_FLOATING_POINT - uses numeric coprocessor
- * - @ref RTEMS_LOCAL - local task (default)
- * - @ref RTEMS_GLOBAL - global task
- *
- * Attribute values are specifically designed to be mutually exclusive,
- * therefore bitwise OR and addition operations are equivalent as long as each
- * attribute appears exactly once in the component list. A component listed as
- * a default is not required to appear in the component list, although it is a
- * good programming practice to specify default components. If all defaults are
- * desired, then @ref RTEMS_DEFAULT_ATTRIBUTES should be used. This example
- * demonstrates the attribute_set parameter needed to create a local task which
- * utilizes the numeric coprocessor. The attribute_set parameter could be @c
- * RTEMS_FLOATING_POINT or @c RTEMS_LOCAL | @c RTEMS_FLOATING_POINT. The
- * attribute_set parameter can be set to @c RTEMS_FLOATING_POINT because @c
- * RTEMS_LOCAL is the default for all created tasks. If the task were global
- * and used the numeric coprocessor, then the attribute_set parameter would be
- * @c RTEMS_GLOBAL | @c RTEMS_FLOATING_POINT.
- *
- * @section ClassicTasksSecBuildingModeAndMask Building a Mode and Mask
- *
- * In general, a mode and its corresponding mask is built by a bitwise OR of
- * the desired components. The set of valid mode constants and each mode's
- * corresponding mask constant is listed below:
- *
- * <table>
- * <tr><th>Mode Constant</th><th>Mask Constant</th><th>Description</th></tr>
- * <tr><td>@ref RTEMS_PREEMPT</td><td>@ref RTEMS_PREEMPT_MASK</td><td>enables preemption</td></tr>
- * <tr><td>@ref RTEMS_NO_PREEMPT</td><td>@ref RTEMS_PREEMPT_MASK</td><td>disables preemption</td></tr>
- * <tr><td>@ref RTEMS_NO_TIMESLICE</td><td>@ref RTEMS_TIMESLICE_MASK</td><td>disables timeslicing</td></tr>
- * <tr><td>@ref RTEMS_TIMESLICE</td><td>@ref RTEMS_TIMESLICE_MASK</td><td>enables timeslicing</td></tr>
- * <tr><td>@ref RTEMS_ASR</td><td>@ref RTEMS_ASR_MASK</td><td>enables ASR processing</td></tr>
- * <tr><td>@ref RTEMS_NO_ASR</td><td>@ref RTEMS_ASR_MASK</td><td>disables ASR processing</td></tr>
- * <tr><td>@ref RTEMS_INTERRUPT_LEVEL(0)</td><td>@ref RTEMS_INTERRUPT_MASK</td><td>enables all interrupts</td></tr>
- * <tr><td>@ref RTEMS_INTERRUPT_LEVEL(n)</td><td>@ref RTEMS_INTERRUPT_MASK</td><td>sets interrupts level n</td></tr>
- * </table>
- *
- * Mode values are specifically designed to be mutually exclusive, therefore
- * bitwise OR and addition operations are equivalent as long as each mode
- * appears exactly once in the component list. A mode component listed as a
- * default is not required to appear in the mode component list, although it is
- * a good programming practice to specify default components. If all defaults
- * are desired, the mode @ref RTEMS_DEFAULT_MODES and the mask @ref
- * RTEMS_ALL_MODE_MASKS should be used.
- *
- * The following example demonstrates the mode and mask parameters used with
- * the rtems_task_mode() directive to place a task at interrupt level 3 and
- * make it non-preemptible. The mode should be set to @c
- * RTEMS_INTERRUPT_LEVEL(3) | @c RTEMS_NO_PREEMPT to indicate the desired
- * preemption mode and interrupt level, while the mask parameter should be set
- * to @c RTEMS_INTERRUPT_MASK | @c RTEMS_PREEMPT_MASK to indicate that
- * the calling task's interrupt level and preemption mode are being altered.
- */
-
- /**
- * @defgroup LocalPackages Local Packages
- *
- * @brief Local packages.
- */
diff --git a/cpukit/rtems/preinstall.am b/cpukit/rtems/preinstall.am
deleted file mode 100644
index 35e78db889..0000000000
--- a/cpukit/rtems/preinstall.am
+++ /dev/null
@@ -1,222 +0,0 @@
-## Automatically generated by ampolish3 - Do not edit
-
-if AMPOLISH3
-$(srcdir)/preinstall.am: Makefile.am
- $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
-endif
-
-PREINSTALL_DIRS =
-DISTCLEANFILES = $(PREINSTALL_DIRS)
-
-all-am: $(PREINSTALL_FILES)
-
-PREINSTALL_FILES =
-CLEANFILES = $(PREINSTALL_FILES)
-
-$(PROJECT_INCLUDE)/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)
- @: > $(PROJECT_INCLUDE)/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
-
-$(PROJECT_INCLUDE)/rtems.h: include/rtems.h $(PROJECT_INCLUDE)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_INCLUDE)/rtems/rtems
- @: > $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
-
-$(PROJECT_INCLUDE)/rtems/rtems/asr.h: include/rtems/rtems/asr.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/asr.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/asr.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/asrimpl.h: include/rtems/rtems/asrimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/asrimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/asrimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/attr.h: include/rtems/rtems/attr.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/attr.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/attr.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/attrimpl.h: include/rtems/rtems/attrimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/attrimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/attrimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/barrier.h: include/rtems/rtems/barrier.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrier.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrier.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h: include/rtems/rtems/barrierimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/cache.h: include/rtems/rtems/cache.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/cache.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/cache.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/clock.h: include/rtems/rtems/clock.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/clock.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/clock.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/config.h: include/rtems/rtems/config.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/config.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/config.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/dpmem.h: include/rtems/rtems/dpmem.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/dpmem.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/dpmem.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/dpmemimpl.h: include/rtems/rtems/dpmemimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/dpmemimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/dpmemimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/event.h: include/rtems/rtems/event.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/event.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/event.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/eventimpl.h: include/rtems/rtems/eventimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/eventimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/eventimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/intr.h: include/rtems/rtems/intr.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/intr.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/intr.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/message.h: include/rtems/rtems/message.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/message.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/message.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/messageimpl.h: include/rtems/rtems/messageimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/messageimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/messageimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/modes.h: include/rtems/rtems/modes.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modes.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modes.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/modesimpl.h: include/rtems/rtems/modesimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/modesimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/modesimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/object.h: include/rtems/rtems/object.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/object.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/object.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/options.h: include/rtems/rtems/options.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/options.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/options.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/optionsimpl.h: include/rtems/rtems/optionsimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/optionsimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/optionsimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/part.h: include/rtems/rtems/part.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/part.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/part.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/partimpl.h: include/rtems/rtems/partimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/partimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/partimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/ratemon.h: include/rtems/rtems/ratemon.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/ratemon.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/ratemon.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/ratemonimpl.h: include/rtems/rtems/ratemonimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/ratemonimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/ratemonimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/region.h: include/rtems/rtems/region.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/region.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/region.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/regionimpl.h: include/rtems/rtems/regionimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/regionimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/regionimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/sem.h: include/rtems/rtems/sem.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/sem.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/sem.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/semimpl.h: include/rtems/rtems/semimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/semimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/semimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/signal.h: include/rtems/rtems/signal.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/signal.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/signal.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/signalimpl.h: include/rtems/rtems/signalimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/signalimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/signalimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/smp.h: include/rtems/rtems/smp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/smp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/smp.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/status.h: include/rtems/rtems/status.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/status.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/status.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/statusimpl.h: include/rtems/rtems/statusimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/statusimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/statusimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/support.h: include/rtems/rtems/support.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/support.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/support.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/tasks.h: include/rtems/rtems/tasks.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/tasks.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/tasks.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/tasksimpl.h: include/rtems/rtems/tasksimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/tasksimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/tasksimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/timer.h: include/rtems/rtems/timer.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timer.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timer.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/timerimpl.h: include/rtems/rtems/timerimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/timerimpl.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/timerimpl.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/types.h: include/rtems/rtems/types.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/types.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/types.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/mainpage.h: mainpage.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/mainpage.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/mainpage.h
-
-if HAS_MP
-$(PROJECT_INCLUDE)/rtems/rtems/eventmp.h: include/rtems/rtems/eventmp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/eventmp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/eventmp.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/mp.h: include/rtems/rtems/mp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/mp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/mp.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/msgmp.h: include/rtems/rtems/msgmp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/msgmp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/msgmp.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/partmp.h: include/rtems/rtems/partmp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/partmp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/partmp.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/semmp.h: include/rtems/rtems/semmp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/semmp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/semmp.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/signalmp.h: include/rtems/rtems/signalmp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/signalmp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/signalmp.h
-
-$(PROJECT_INCLUDE)/rtems/rtems/taskmp.h: include/rtems/rtems/taskmp.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/taskmp.h
-endif