summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems')
-rw-r--r--cpukit/rtems/include/rtems.h79
-rw-r--r--cpukit/rtems/include/rtems/rtems/asr.h177
-rw-r--r--cpukit/rtems/include/rtems/rtems/attr.h188
-rw-r--r--cpukit/rtems/include/rtems/rtems/clock.h102
-rw-r--r--cpukit/rtems/include/rtems/rtems/dpmem.h210
-rw-r--r--cpukit/rtems/include/rtems/rtems/event.h158
-rw-r--r--cpukit/rtems/include/rtems/rtems/eventmp.h147
-rw-r--r--cpukit/rtems/include/rtems/rtems/eventset.h142
-rw-r--r--cpukit/rtems/include/rtems/rtems/intr.h125
-rw-r--r--cpukit/rtems/include/rtems/rtems/message.h461
-rw-r--r--cpukit/rtems/include/rtems/rtems/modes.h183
-rw-r--r--cpukit/rtems/include/rtems/rtems/mp.h67
-rw-r--r--cpukit/rtems/include/rtems/rtems/msgmp.h175
-rw-r--r--cpukit/rtems/include/rtems/rtems/options.h79
-rw-r--r--cpukit/rtems/include/rtems/rtems/part.h290
-rw-r--r--cpukit/rtems/include/rtems/rtems/partmp.h160
-rw-r--r--cpukit/rtems/include/rtems/rtems/ratemon.h285
-rw-r--r--cpukit/rtems/include/rtems/rtems/region.h311
-rw-r--r--cpukit/rtems/include/rtems/rtems/regionmp.h165
-rw-r--r--cpukit/rtems/include/rtems/rtems/sem.h238
-rw-r--r--cpukit/rtems/include/rtems/rtems/semmp.h163
-rw-r--r--cpukit/rtems/include/rtems/rtems/signal.h72
-rw-r--r--cpukit/rtems/include/rtems/rtems/signalmp.h147
-rw-r--r--cpukit/rtems/include/rtems/rtems/status.h109
-rw-r--r--cpukit/rtems/include/rtems/rtems/taskmp.h167
-rw-r--r--cpukit/rtems/include/rtems/rtems/tasks.h315
-rw-r--r--cpukit/rtems/include/rtems/rtems/timer.h292
-rw-r--r--cpukit/rtems/inline/rtems/rtems/asr.inl105
-rw-r--r--cpukit/rtems/inline/rtems/rtems/attr.inl125
-rw-r--r--cpukit/rtems/inline/rtems/rtems/dpmem.inl75
-rw-r--r--cpukit/rtems/inline/rtems/rtems/event.inl30
-rw-r--r--cpukit/rtems/inline/rtems/rtems/eventset.inl71
-rw-r--r--cpukit/rtems/inline/rtems/rtems/message.inl160
-rw-r--r--cpukit/rtems/inline/rtems/rtems/modes.inl136
-rw-r--r--cpukit/rtems/inline/rtems/rtems/options.inl47
-rw-r--r--cpukit/rtems/inline/rtems/rtems/part.inl157
-rw-r--r--cpukit/rtems/inline/rtems/rtems/ratemon.inl113
-rw-r--r--cpukit/rtems/inline/rtems/rtems/region.inl101
-rw-r--r--cpukit/rtems/inline/rtems/rtems/sem.inl73
-rw-r--r--cpukit/rtems/inline/rtems/rtems/status.inl60
-rw-r--r--cpukit/rtems/inline/rtems/rtems/tasks.inl90
-rw-r--r--cpukit/rtems/inline/rtems/rtems/timer.inl112
-rw-r--r--cpukit/rtems/macros/rtems/rtems/asr.inl89
-rw-r--r--cpukit/rtems/macros/rtems/rtems/attr.inl91
-rw-r--r--cpukit/rtems/macros/rtems/rtems/dpmem.inl59
-rw-r--r--cpukit/rtems/macros/rtems/rtems/event.inl28
-rw-r--r--cpukit/rtems/macros/rtems/rtems/eventset.inl53
-rw-r--r--cpukit/rtems/macros/rtems/rtems/message.inl118
-rw-r--r--cpukit/rtems/macros/rtems/rtems/modes.inl101
-rw-r--r--cpukit/rtems/macros/rtems/rtems/options.inl39
-rw-r--r--cpukit/rtems/macros/rtems/rtems/part.inl117
-rw-r--r--cpukit/rtems/macros/rtems/rtems/ratemon.inl85
-rw-r--r--cpukit/rtems/macros/rtems/rtems/region.inl75
-rw-r--r--cpukit/rtems/macros/rtems/rtems/sem.inl58
-rw-r--r--cpukit/rtems/macros/rtems/rtems/status.inl47
-rw-r--r--cpukit/rtems/macros/rtems/rtems/tasks.inl82
-rw-r--r--cpukit/rtems/macros/rtems/rtems/timer.inl85
-rw-r--r--cpukit/rtems/src/dpmem.c268
-rw-r--r--cpukit/rtems/src/event.c294
-rw-r--r--cpukit/rtems/src/eventmp.c188
-rw-r--r--cpukit/rtems/src/intr.c85
-rw-r--r--cpukit/rtems/src/mp.c128
-rw-r--r--cpukit/rtems/src/msg.c708
-rw-r--r--cpukit/rtems/src/msgmp.c397
-rw-r--r--cpukit/rtems/src/part.c322
-rw-r--r--cpukit/rtems/src/partmp.c300
-rw-r--r--cpukit/rtems/src/ratemon.c401
-rw-r--r--cpukit/rtems/src/region.c456
-rw-r--r--cpukit/rtems/src/regionmp.c308
-rw-r--r--cpukit/rtems/src/rtclock.c153
-rw-r--r--cpukit/rtems/src/rtemstimer.c343
-rw-r--r--cpukit/rtems/src/sem.c483
-rw-r--r--cpukit/rtems/src/semmp.c306
-rw-r--r--cpukit/rtems/src/signal.c110
-rw-r--r--cpukit/rtems/src/signalmp.c187
-rw-r--r--cpukit/rtems/src/taskmp.c338
-rw-r--r--cpukit/rtems/src/tasks.c816
77 files changed, 0 insertions, 14180 deletions
diff --git a/cpukit/rtems/include/rtems.h b/cpukit/rtems/include/rtems.h
deleted file mode 100644
index d0ab705f57..0000000000
--- a/cpukit/rtems/include/rtems.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* rtems.h
- *
- * This include file contains information about RTEMS executive that
- * is required by the application and is CPU independent. It includes
- * two (2) CPU dependent files to tailor its data structures for a
- * particular processor.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_RTEMS_GENERIC_h
-#define __RTEMS_RTEMS_GENERIC_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/system.h>
-#include <rtems/init.h>
-#include <rtems/tasks.h>
-#include <rtems/intr.h>
-#include <rtems/clock.h>
-#include <rtems/extension.h>
-#include <rtems/timer.h>
-#include <rtems/sem.h>
-#include <rtems/message.h>
-#include <rtems/event.h>
-#include <rtems/signal.h>
-#include <rtems/event.h>
-#include <rtems/part.h>
-#include <rtems/region.h>
-#include <rtems/dpmem.h>
-#include <rtems/io.h>
-#include <rtems/fatal.h>
-#include <rtems/ratemon.h>
-#include <rtems/mp.h>
-
-/*
- * RTEMS basic type definitions
- */
-
-typedef unsigned8 rtems_unsigned8; /* unsigned 8-bit value */
-typedef unsigned16 rtems_unsigned16; /* unsigned 16-bit value */
-typedef unsigned32 rtems_unsigned32; /* unsigned 32-bit value */
-typedef unsigned64 rtems_unsigned64; /* unsigned 64-bit value */
-
-typedef signed8 rtems_signed8; /* signed 8-bit value */
-typedef signed16 rtems_signed16; /* signed 16-bit value */
-typedef signed32 rtems_signed32; /* signed 32-bit value */
-typedef signed64 rtems_signed64; /* signed 64-bit value */
-
-typedef single_precision rtems_single; /* single precision float */
-typedef double_precision rtems_double; /* double precision float */
-
-typedef boolean rtems_boolean;
-
-typedef Objects_Name rtems_name;
-typedef Objects_Id rtems_id;
-
-typedef Context_Control rtems_context;
-typedef Context_Control_fp rtems_context_fp;
-typedef CPU_Interrupt_frame rtems_interrupt_frame;
-
-#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
-
-#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 44d03f2802..0000000000
--- a/cpukit/rtems/include/rtems/rtems/asr.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* asr.h
- *
- * 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, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_ASR_h
-#define __RTEMS_ASR_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/modes.h>
-
-/*
- *
- * The following type defines the control block used to manage
- * each signal set.
- */
-
-typedef unsigned32 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 {
- rtems_asr_entry handler; /* address of RTEMS_ASR */
- rtems_mode mode_set; /* RTEMS_ASR mode */
- rtems_signal_set signals_posted; /* signal set */
- rtems_signal_set signals_pending; /* pending signal set */
- unsigned32 nest_level; /* nest level of RTEMS_ASR */
-} ASR_Information;
-
-/*
- * The following constants define the individual signals which may
- * be used to compose a signal set.
- */
-
-#define RTEMS_SIGNAL_0 0x00000001
-#define RTEMS_SIGNAL_1 0x00000002
-#define RTEMS_SIGNAL_2 0x00000004
-#define RTEMS_SIGNAL_3 0x00000008
-#define RTEMS_SIGNAL_4 0x00000010
-#define RTEMS_SIGNAL_5 0x00000020
-#define RTEMS_SIGNAL_6 0x00000040
-#define RTEMS_SIGNAL_7 0x00000080
-#define RTEMS_SIGNAL_8 0x00000100
-#define RTEMS_SIGNAL_9 0x00000200
-#define RTEMS_SIGNAL_10 0x00000400
-#define RTEMS_SIGNAL_11 0x00000800
-#define RTEMS_SIGNAL_12 0x00001000
-#define RTEMS_SIGNAL_13 0x00002000
-#define RTEMS_SIGNAL_14 0x00004000
-#define RTEMS_SIGNAL_15 0x00008000
-#define RTEMS_SIGNAL_16 0x00010000
-#define RTEMS_SIGNAL_17 0x00020000
-#define RTEMS_SIGNAL_18 0x00040000
-#define RTEMS_SIGNAL_19 0x00080000
-#define RTEMS_SIGNAL_20 0x00100000
-#define RTEMS_SIGNAL_21 0x00200000
-#define RTEMS_SIGNAL_22 0x00400000
-#define RTEMS_SIGNAL_23 0x00800000
-#define RTEMS_SIGNAL_24 0x01000000
-#define RTEMS_SIGNAL_25 0x02000000
-#define RTEMS_SIGNAL_26 0x04000000
-#define RTEMS_SIGNAL_27 0x08000000
-#define RTEMS_SIGNAL_28 0x10000000
-#define RTEMS_SIGNAL_29 0x20000000
-#define RTEMS_SIGNAL_30 0x40000000
-#define RTEMS_SIGNAL_31 0x80000000
-
-/*
- * _ASR_Initialize
- *
- * DESCRIPTION:
- *
- * This routine initializes the given RTEMS_ASR information record.
- */
-
-STATIC INLINE void _ASR_Initialize (
- ASR_Information *information
-);
-
-/*
- * _ASR_Swap_signals
- *
- * DESCRIPTION:
- *
- * This routine atomically swaps the pending and posted signal
- * sets. This is done when the thread alters its mode in such a
- * way that the RTEMS_ASR disable/enable flag changes.
- */
-
-STATIC INLINE void _ASR_Swap_signals (
- ASR_Information *information
-);
-
-/*
- * _ASR_Is_null_handler
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the given asr_handler is NULL and
- * FALSE otherwise.
- */
-
-STATIC INLINE boolean _ASR_Is_null_handler (
- rtems_asr_entry asr_handler
-);
-
-/*
- * _ASR_Are_signals_pending
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if there are signals pending in the
- * given RTEMS_ASR information record and FALSE otherwise.
- */
-
-STATIC INLINE boolean _ASR_Are_signals_pending (
- ASR_Information *information
-);
-
-/*
- * _ASR_Post_signals
- *
- * DESCRIPTION:
- *
- * This routine posts the given signals into the signal_set
- * passed in. The result is returned to the user in signal_set.
- *
- * NOTE: This must be implemented as a macro.
- */
-
-STATIC INLINE void _ASR_Post_signals(
- rtems_signal_set signals,
- rtems_signal_set *signal_set
-);
-
-#include <rtems/asr.inl>
-
-#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 1c59c98dcd..0000000000
--- a/cpukit/rtems/include/rtems/rtems/attr.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/* attr.h
- *
- * This include file contains all information about the Object Attributes
- * Handler.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_ATTRIBUTES_h
-#define __RTEMS_ATTRIBUTES_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* types */
-
-typedef unsigned32 rtems_attribute;
-
-/* constants */
-
-#define RTEMS_DEFAULT_ATTRIBUTES 0x00000000
-
-#define RTEMS_NO_FLOATING_POINT 0x00000000 /* don't use FP HW */
-#define RTEMS_FLOATING_POINT 0x00000001 /* utilize coprocessor */
-
-#define RTEMS_LOCAL 0x00000000 /* local resource */
-#define RTEMS_GLOBAL 0x00000002 /* global resource */
-
-#define RTEMS_FIFO 0x00000000 /* process RTEMS_FIFO */
-#define RTEMS_PRIORITY 0x00000004 /* process by priority */
-
-#define RTEMS_NO_LIMIT 0x00000000 /* unlimited Q entries */
-#define RTEMS_LIMIT 0x00000008 /* limit Q entries */
-
-#define RTEMS_COUNTING_SEMAPHORE 0x00000000
-#define RTEMS_BINARY_SEMAPHORE 0x00000010
-
-#define RTEMS_NO_INHERIT_PRIORITY 0x00000000
-#define RTEMS_INHERIT_PRIORITY 0x00000020
-
-#if ( CPU_HARDWARE_FP == TRUE )
-#define ATTRIBUTES_NOT_SUPPORTED 0
-#else
-#define ATTRIBUTES_NOT_SUPPORTED RTEMS_FLOATING_POINT
-#endif
-
-#if ( CPU_ALL_TASKS_ARE_FP == TRUE )
-#define ATTRIBUTES_REQUIRED RTEMS_FLOATING_POINT
-#else
-#define ATTRIBUTES_REQUIRED 0
-#endif
-
-/*
- * _Attributes_Handler_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs initialization for this handler.
- *
- * NOTE: There is no initialization required in C. Conditional compilation
- * takes care of this in C.
- */
-
-#define _Attributes_Handler_initialization()
-
-/*
- * _Attributes_Set
- *
- * DESCRIPTION:
- *
- * This function sets the requested new_attributes in the attribute_set
- * passed in. The result is returned to the user.
- */
-
-STATIC INLINE rtems_attribute _Attributes_Set (
- rtems_attribute new_attributes,
- rtems_attribute attribute_set
-);
-
-/*
- * _Attributes_Clear
- *
- * DESCRIPTION:
- *
- * This function clears the requested new_attributes in the attribute_set
- * passed in. The result is returned to the user.
- */
-
-STATIC INLINE rtems_attribute _Attributes_Clear (
- rtems_attribute attribute_set,
- rtems_attribute mask
-);
-
-/*
- * _Attributes_Is_floating_point
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the floating point attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Attributes_Is_floating_point(
- rtems_attribute attribute_set
-);
-
-/*
- * _Attributes_Is_global
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the global object attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Attributes_Is_global(
- rtems_attribute attribute_set
-);
-
-/*
- * _Attributes_Is_priority
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the priority attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Attributes_Is_priority(
- rtems_attribute attribute_set
-);
-
-/*
- * _Attributes_Is_limit
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the limited attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Attributes_Is_limit(
- rtems_attribute attribute_set
-);
-
-/*
- * _Attributes_Is_binary_semaphore
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the binary semaphore attribute is
- * enabled in the attribute_set and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Attributes_Is_binary_semaphore(
- rtems_attribute attribute_set
-);
-
-/*
- * _Attributes_Is_inherit_priority
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the priority inheritance attribute
- * is enabled in the attribute_set and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Attributes_Is_inherit_priority(
- rtems_attribute attribute_set
-);
-
-#include <rtems/attr.inl>
-
-#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 e849ab4f40..0000000000
--- a/cpukit/rtems/include/rtems/rtems/clock.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* clock.h
- *
- * 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
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_CLOCK_h
-#define __RTEMS_CLOCK_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/tod.h>
-
-/*
- * List of things which can be returned by the rtems_clock_get directive.
- */
-
-typedef enum {
- RTEMS_CLOCK_GET_TOD,
- RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH,
- RTEMS_CLOCK_GET_TICKS_SINCE_BOOT,
- RTEMS_CLOCK_GET_TICKS_PER_SECOND,
- RTEMS_CLOCK_GET_TIME_VALUE
-} rtems_clock_get_options;
-
-/*
- * Standard flavor style to return TOD in for a rtems_clock_get option.
- */
-
-typedef struct {
- unsigned32 seconds;
- unsigned32 microseconds;
-} rtems_clock_time_value;
-
-/*
- * rtems_clock_get
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_clock_get directive. It returns
- * one of the following:
- * + current time of day
- * + seconds since epoch
- * + ticks since boot
- * + ticks per second
- */
-
-rtems_status_code rtems_clock_get(
- rtems_clock_get_options option,
- void *time_buffer
-);
-
-/*
- * rtems_clock_set
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_clock_set directive. It sets
- * the current time of day to that in the time_buffer record.
- */
-
-rtems_status_code rtems_clock_set(
- rtems_time_of_day *time_buffer
-);
-
-/*
- * rtems_clock_tick
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_clock_tick directive. It is invoked
- * to inform RTEMS of the occurrence of a clock tick.
- */
-
-rtems_status_code rtems_clock_tick( void );
-
-#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 669eb394d8..0000000000
--- a/cpukit/rtems/include/rtems/rtems/dpmem.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/* dpmem.h
- *
- * 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, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_DUAL_PORTED_MEMORY_h
-#define __RTEMS_DUAL_PORTED_MEMORY_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/object.h>
-
-/*
- * 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 {
- Objects_Control Object;
- void *internal_base; /* base internal address */
- void *external_base; /* base external address */
- unsigned32 length; /* length of dual-ported area */
-} Dual_ported_memory_Control;
-
-/*
- * The following define the internal Dual Ported Memory information.
- */
-
-EXTERN Objects_Information _Dual_ported_memory_Information;
-
-/*
- * _Dual_ported_memory_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Dual_ported_memory_Manager_initialization(
- unsigned32 maximum_ports
-);
-
-/*
- * rtems_port_create
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_port_create directive. The port
- * will have the name 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.
- */
-
-rtems_status_code rtems_port_create(
- Objects_Name name,
- void *internal_start,
- void *external_start,
- unsigned32 length,
- Objects_Id *id
-);
-
-/*
- * rtems_port_ident
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_port_ident(
- Objects_Name name,
- Objects_Id *id
-);
-
-/*
- * rtems_port_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_port_delete directive. It deletes
- * the port associated with ID.
- */
-
-rtems_status_code rtems_port_delete(
- Objects_Id id
-);
-
-/*
- * rtems_port_external_to_internal
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_port_external_to_internal(
- Objects_Id id,
- void *external,
- void **internal
-);
-
-/*
- * rtems_port_internal_to_external
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_port_internal_to_external(
- Objects_Id id,
- void *internal,
- void **external
-);
-
-/*
- * _Dual_ported_memory_Allocate
- *
- * DESCRIPTION:
- *
- * This routine allocates a port control block from the inactive chain
- * of free port control blocks.
- */
-
-STATIC INLINE Dual_ported_memory_Control
- *_Dual_ported_memory_Allocate ( void );
-
-/*
- * _Dual_ported_memory_Free
- *
- * DESCRIPTION:
- *
- * This routine frees a port control block to the inactive chain
- * of free port control blocks.
- */
-
-STATIC INLINE void _Dual_ported_memory_Free (
- Dual_ported_memory_Control *the_port
-);
-
-/*
- * _Dual_ported_memory_Get
- *
- * DESCRIPTION:
- *
- * This function maps port IDs to port control blocks. If ID
- * corresponds to a local port, then it returns the_port control
- * pointer which maps to ID and location is set to OBJECTS_LOCAL.
- * Global ports are not supported, thus if ID does not map to a
- * local port, location is set to OBJECTS_ERROR and the_port is
- * undefined.
- */
-
-STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get (
- Objects_Id id,
- Objects_Locations *location
-);
-
-/*
- * _Dual_ported_memory_Is_null
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_port is NULL and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Dual_ported_memory_Is_null(
- Dual_ported_memory_Control *the_port
-);
-
-#include <rtems/dpmem.inl>
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* 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 aeb71b2abd..0000000000
--- a/cpukit/rtems/include/rtems/rtems/event.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* event.h
- *
- * 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, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_EVENT_h
-#define __RTEMS_EVENT_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-#include <rtems/eventset.h>
-
-/*
- * This constant is passed as the event_in to the
- * rtems_event_receive directive to determine which events are pending.
- */
-
-#define EVENT_CURRENT 0
-
-/*
- * _Event_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-STATIC INLINE void _Event_Manager_initialization( void );
-
-/*
- * rtems_event_send
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_event_send directive. It sends
- * event_in to the task specified by ID. If the task is blocked
- * waiting to receive events and the posting of event_in satisfies
- * the task's event condition, then it is unblocked.
- */
-
-rtems_status_code rtems_event_send (
- Objects_Id id,
- rtems_event_set event_in
-);
-
-/*
- * rtems_event_receive
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_event_receive directive. This
- * directive is invoked when the calling task wishes to receive
- * the event_in event condition. One of the fields in the option_set
- * parameter determines whether the receive request is satisfied if
- * any or all of the events are pending. If the event condition
- * is not satisfied immediately, then the task may block with an
- * optional timeout of TICKS clock ticks or return immediately.
- * This determination is based on another field in the option_set
- * parameter. This directive returns the events received in the
- * event_out parameter.
- */
-
-rtems_status_code rtems_event_receive (
- rtems_event_set event_in,
- rtems_option option_set,
- rtems_interval ticks,
- rtems_event_set *event_out
-);
-
-/*
- * _Event_Seize
- *
- * DESCRIPTION:
- *
- * This routine determines if the event condition event_in is
- * satisfied. If so or if the no_wait option is enabled in option_set,
- * then the procedure returns immediately. If neither of these
- * conditions is true, then the calling task is blocked with an
- * optional timeout of ticks clock ticks.
- */
-
-void _Event_Seize (
- rtems_event_set event_in,
- rtems_option option_set,
- rtems_interval ticks
-);
-
-/*
- * _Event_Surrender
- *
- * DESCRIPTION:
- *
- * This routine determines if the event condition of the_thread
- * has been satisfied. If so, it unblocks the_thread.
- */
-
-void _Event_Surrender (
- Thread_Control *the_thread
-);
-
-/*
- * _Event_Timeout
- *
- * DESCRIPTION:
- *
- * This routine is invoked when a task's event receive request
- * has not been satisfied after the specified timeout interval.
- * The task represented by ID will be unblocked and its status
- * code will be set in it's control block to indicate that a timeout
- * has occurred.
- */
-
-void _Event_Timeout (
- Objects_Id id,
- void *ignored
-);
-
-/*
- * The following defines the synchronization flag used by the
- * Event Manager to insure that signals sent to the currently
- * executing thread are received properly.
- */
-
-EXTERN boolean _Event_Sync; /* event manager sync flag */
-
-#include <rtems/event.inl>
-#include <rtems/eventmp.h>
-
-#ifdef __cplusplus
-}
-#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 9df2ef1e22..0000000000
--- a/cpukit/rtems/include/rtems/rtems/eventmp.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* eventmp.h
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Event Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_EVENT_MP_h
-#define __RTEMS_EVENT_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/event.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*
- * The following enumerated type defines the list of
- * remote event operations.
- */
-
-typedef enum {
- EVENT_MP_SEND_REQUEST = 0,
- EVENT_MP_SEND_RESPONSE = 1,
-} Event_MP_Remote_operations;
-
-/*
- * The following data structure defines the packet used to perform
- * remote event operations.
- */
-
-typedef struct {
- rtems_packet_prefix Prefix;
- Event_MP_Remote_operations operation;
- rtems_event_set event_in;
-} Event_MP_Packet;
-
-/*
- * _Event_MP_Send_process_packet
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-/*
- * _Event_MP_Send_request_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive operation can be initiated on another node.
- */
-
-rtems_status_code _Event_MP_Send_request_packet (
- Event_MP_Remote_operations operation,
- Objects_Id event_id,
- rtems_event_set event_in
-);
-
-/*
- * _Event_MP_Send_response_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive can be performed on another node.
- */
-
-void _Event_MP_Send_response_packet (
- Event_MP_Remote_operations operation,
- Thread_Control *the_thread
-);
-
-/*
- *
- * _Event_MP_Process_packet
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Event_MP_Send_object_was_deleted
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-/*
- * _Event_MP_Send_extract_proxy
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-/*
- * _Event_MP_Get_packet
- *
- * DESCRIPTION:
- *
- * This function is used to obtain a event mp packet.
- */
-
-Event_MP_Packet *_Event_MP_Get_packet ( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/eventset.h b/cpukit/rtems/include/rtems/rtems/eventset.h
deleted file mode 100644
index a25dabe58b..0000000000
--- a/cpukit/rtems/include/rtems/rtems/eventset.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* eventset.h
- *
- * This include file contains the information pertaining to the
- * Event Sets Handler. This handler provides methods for the manipulation
- * of event sets which will be sent and received by tasks.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_EVENT_SET_h
-#define __RTEMS_EVENT_SET_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The following defines the type used to control event sets.
- */
-
-typedef unsigned32 rtems_event_set;
-
-/*
- * The following constants define the individual events which may
- * be used to compose an event set.
- */
-
-#define RTEMS_PENDING_EVENTS 0 /* receive pending events */
-#define RTEMS_ALL_EVENTS 0xFFFFFFFF
-
-#define RTEMS_EVENT_0 0x00000001
-#define RTEMS_EVENT_1 0x00000002
-#define RTEMS_EVENT_2 0x00000004
-#define RTEMS_EVENT_3 0x00000008
-#define RTEMS_EVENT_4 0x00000010
-#define RTEMS_EVENT_5 0x00000020
-#define RTEMS_EVENT_6 0x00000040
-#define RTEMS_EVENT_7 0x00000080
-#define RTEMS_EVENT_8 0x00000100
-#define RTEMS_EVENT_9 0x00000200
-#define RTEMS_EVENT_10 0x00000400
-#define RTEMS_EVENT_11 0x00000800
-#define RTEMS_EVENT_12 0x00001000
-#define RTEMS_EVENT_13 0x00002000
-#define RTEMS_EVENT_14 0x00004000
-#define RTEMS_EVENT_15 0x00008000
-#define RTEMS_EVENT_16 0x00010000
-#define RTEMS_EVENT_17 0x00020000
-#define RTEMS_EVENT_18 0x00040000
-#define RTEMS_EVENT_19 0x00080000
-#define RTEMS_EVENT_20 0x00100000
-#define RTEMS_EVENT_21 0x00200000
-#define RTEMS_EVENT_22 0x00400000
-#define RTEMS_EVENT_23 0x00800000
-#define RTEMS_EVENT_24 0x01000000
-#define RTEMS_EVENT_25 0x02000000
-#define RTEMS_EVENT_26 0x04000000
-#define RTEMS_EVENT_27 0x08000000
-#define RTEMS_EVENT_28 0x10000000
-#define RTEMS_EVENT_29 0x20000000
-#define RTEMS_EVENT_30 0x40000000
-#define RTEMS_EVENT_31 0x80000000
-
-
-/*
- * The following constant is the value of an event set which
- * has no events pending.
- */
-
-#define EVENT_SETS_NONE_PENDING 0
-
-/*
- * _Event_sets_Is_empty
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if on events are posted in the event_set,
- * and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Event_sets_Is_empty(
- rtems_event_set the_event_set
-);
-
-/*
- * _Event_sets_Post
- *
- * DESCRIPTION:
- *
- * This routine posts the given new_events into the event_set
- * passed in. The result is returned to the user in event_set.
- */
-
-STATIC INLINE void _Event_sets_Post(
- rtems_event_set the_new_events,
- rtems_event_set *the_event_set
-);
-
-/*
- * _Event_sets_Get
- *
- * DESCRIPTION:
- *
- * This function returns the events in event_condition which are
- * set in event_set.
- */
-
-STATIC INLINE rtems_event_set _Event_sets_Get(
- rtems_event_set the_event_set,
- rtems_event_set the_event_condition
-);
-
-/*
- * _Event_sets_Clear
- *
- * DESCRIPTION:
- *
- * This function removes the events in mask from the event_set
- * passed in. The result is returned to the user in event_set.
- */
-
-STATIC INLINE rtems_event_set _Event_sets_Clear(
- rtems_event_set the_event_set,
- rtems_event_set the_mask
-);
-
-#include <rtems/eventset.inl>
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/intr.h b/cpukit/rtems/include/rtems/rtems/intr.h
deleted file mode 100644
index 3669af1ccc..0000000000
--- a/cpukit/rtems/include/rtems/rtems/intr.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* intr.h
- *
- * This include file contains all the constants and structures associated
- * with the Interrupt Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_INTERRUPT_h
-#define __RTEMS_INTERRUPT_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/isr.h>
-
-/*
- * Interrupt level type
- */
-
-typedef ISR_Level rtems_interrupt_level;
-
-/*
- * _Interrupt_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine initializes the interrupt manager.
- *
- */
-
-void _Interrupt_Manager_initialization( void );
-
-/*
- * rtems_interrupt_catch
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_interrupt_catch directive. This
- * directive installs new_isr_handler as the RTEMS interrupt service
- * routine for vector. The previous RTEMS interrupt service
- * routine is returned in old_isr_handler.
- */
-
-rtems_status_code rtems_interrupt_catch(
- rtems_isr_entry new_isr_handler,
- rtems_vector_number vector,
- rtems_isr_entry *old_isr_handler
-);
-
-/*
- * rtems_interrupt_disable
- *
- * DESCRIPTION:
- *
- * This routine disables all maskable interrupts and returns the
- * previous level in _isr_cookie.
- */
-
-#define rtems_interrupt_disable( _isr_cookie ) \
- _ISR_Disable(_isr_cookie)
-
-/*
- * rtems_interrupt_enable
- *
- * DESCRIPTION:
- *
- * This routine enables maskable interrupts to the level indicated
- * _isr_cookie.
- */
-
-#define rtems_interrupt_enable( _isr_cookie ) \
- _ISR_Enable(_isr_cookie)
-
-/*
- * rtems_interrupt_flash
- *
- * DESCRIPTION:
- *
- * This routine temporarily enables maskable interrupts to the
- * level in _isr_cookie before redisabling them.
- */
-
-#define rtems_interrupt_flash( _isr_cookie ) \
- _ISR_Flash(_isr_cookie)
-
-/*
- * rtems_interrupt_cause
- *
- * DESCRIPTION:
- *
- * This routine generates an interrupt.
- *
- * NOTE: No implementation.
- */
-
-#define rtems_interrupt_cause( _interrupt_to_cause )
-
-/*
- * rtems_interrupt_cause
- *
- * DESCRIPTION:
- *
- * This routine clears the specified interrupt.
- *
- * NOTE: No implementation.
- */
-
-#define rtems_interrupt_clear( _interrupt_to_clear )
-
-#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 aefcea3c36..0000000000
--- a/cpukit/rtems/include/rtems/rtems/message.h
+++ /dev/null
@@ -1,461 +0,0 @@
-/* message.h
- *
- * 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, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_MESSAGE_QUEUE_h
-#define __RTEMS_MESSAGE_QUEUE_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/chain.h>
-#include <rtems/object.h>
-#include <rtems/threadq.h>
-
-/*
- * The following defines the data types needed to manipulate
- * the contents of message buffers.
- */
-
-typedef struct {
- unsigned32 field1;
- unsigned32 field2;
- unsigned32 field3;
- unsigned32 field4;
-} Message_queue_Buffer;
-
-/*
- * The following records define the organization of a message
- * buffer.
- */
-
-typedef struct {
- Chain_Node Node;
- Message_queue_Buffer Contents;
-} Message_queue_Buffer_control;
-
-/*
- * The following records define the control block used to manage
- * each message queue.
- */
-
-typedef struct {
- Objects_Control Object;
- Thread_queue_Control Wait_queue;
- rtems_attribute attribute_set;
- unsigned32 maximum_pending_messages;
- unsigned32 number_of_pending_messages;
- Chain_Control Pending_messages;
-} Message_queue_Control;
-
-/*
- * The following defines the information control block used to
- * manage this class of objects.
- */
-
-EXTERN Objects_Information _Message_queue_Information;
-
-/*
- * The following defines the data structures used to
- * manage the pool of inactive message buffers.
- */
-
-EXTERN Chain_Control _Message_queue_Inactive_messages;
-
-/*
- * 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 {
- MESSAGE_QUEUE_SEND_REQUEST = 0,
- MESSAGE_QUEUE_URGENT_REQUEST = 1
-} Message_queue_Submit_types;
-
-/*
- * _Message_queue_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Message_queue_Manager_initialization(
- unsigned32 maximum_message_queues,
- unsigned32 maximum_messages
-);
-
-/*
- * rtems_message_queue_create
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_message_queue_create directive. The
- * message queue will have the name name. If the attribute_set indicates
- * that the message queue is to be limited in the number of messages
- * that can be outstanding, then count indicates the maximum number of
- * messages that will be held. It returns the id of the created
- * message queue in ID.
- */
-
-rtems_status_code rtems_message_queue_create(
- Objects_Name name,
- unsigned32 count,
- rtems_attribute attribute_set,
- Objects_Id *id
-);
-
-/*
- * rtems_message_queue_ident
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_message_queue_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-);
-
-/*
- * rtems_message_queue_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_message_queue_delete directive. The
- * message queue indicated by ID is deleted.
- */
-
-rtems_status_code rtems_message_queue_delete(
- Objects_Id id
-);
-
-/*
- * rtems_message_queue_send
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Id id,
- void *buffer
-);
-
-/*
- * rtems_message_queue_urgent
- *
- * DESCRIPTION:
- *
- * 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_urgent(
- Objects_Id id,
- void *buffer
-);
-
-/*
- * rtems_message_queue_broadcast
- *
- * DESCRIPTION:
- *
- * 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_broadcast(
- Objects_Id id,
- void *buffer,
- unsigned32 *count
-);
-
-/*
- * rtems_message_queue_receive
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_message_queue_receive(
- Objects_Id id,
- void *buffer,
- unsigned32 option_set,
- rtems_interval timeout
-);
-
-/*
- * rtems_message_queue_flush
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_message_queue_flush(
- Objects_Id id,
- unsigned32 *count
-);
-
-/*
- * _Message_queue_Copy_buffer
- *
- * DESCRIPTION:
- *
- * This routine copies the contents of the source message buffer
- * to the destination message buffer.
- */
-
-STATIC INLINE void _Message_queue_Copy_buffer (
- Message_queue_Buffer *source,
- Message_queue_Buffer *destination
-);
-
-/*
- * _Message_queue_Seize
- *
- * DESCRIPTION:
- *
- * This routine attempts to receive a message from the_message_queue.
- * If a message is available or if the RTEMS_NO_WAIT option is enabled in
- * option_set, then the routine returns. Otherwise, the calling task
- * is blocked until a message is available. If a message is returned
- * to the task, then buffer will contain its contents.
- */
-
-boolean _Message_queue_Seize(
- Message_queue_Control *the_message_queue,
- unsigned32 option_set,
- Message_queue_Buffer *buffer
-);
-
-/*
- * _Message_queue_Flush_support
- *
- * DESCRIPTION:
- *
- * This routine flushes all outstanding messages and returns
- * them to the inactive message chain.
- */
-
-unsigned32 _Message_queue_Flush_support(
- Message_queue_Control *the_message_queue
-);
-
-/*
- * _Message_queue_Submit
- *
- * DESCRIPTION:
- *
- * This routine provides the common foundation for the
- * rtems_message_queue_send and rtems_message_queue_urgent directives.
- */
-
-rtems_status_code _Message_queue_Submit(
- Objects_Id id,
- Message_queue_Buffer *buffer,
- Message_queue_Submit_types submit_type
-);
-
-/*
- * _Message_queue_Allocate_message_buffer
- *
- * DESCRIPTION:
- *
- * This function allocates a message buffer from the inactive
- * message buffer chain.
- */
-
-STATIC INLINE Message_queue_Buffer_control *
- _Message_queue_Allocate_message_buffer ( void );
-
-/*
- * _Message_queue_Free_message_buffer
- *
- * DESCRIPTION:
- *
- * This routine frees a message buffer to the inactive
- * message buffer chain.
- */
-
-STATIC INLINE void _Message_queue_Free_message_buffer (
- Message_queue_Buffer_control *the_message
-);
-
-/*
- * _Message_queue_Get_pending_message
- *
- * DESCRIPTION:
- *
- * This function removes the first message from the_message_queue
- * and returns a pointer to it.
- */
-
-STATIC INLINE
- Message_queue_Buffer_control *_Message_queue_Get_pending_message (
- Message_queue_Control *the_message_queue
-);
-
-/*
- * _Message_queue_Append
- *
- * DESCRIPTION:
- *
- * This routine places the_message at the rear of the outstanding
- * messages on the_message_queue.
- */
-
-STATIC INLINE void _Message_queue_Append (
- Message_queue_Control *the_message_queue,
- Message_queue_Buffer_control *the_message
-);
-
-/*
- * _Message_queue_Prepend
- *
- * DESCRIPTION:
- *
- * This routine places the_message at the rear of the outstanding
- * messages on the_message_queue.
- */
-
-STATIC INLINE void _Message_queue_Prepend (
- Message_queue_Control *the_message_queue,
- Message_queue_Buffer_control *the_message
-);
-
-/*
- * _Message_queue_Is_null
- *
- * DESCRIPTION:
- *
- * This function places the_message at the rear of the outstanding
- * messages on the_message_queue.
- */
-
-STATIC INLINE boolean _Message_queue_Is_null (
- Message_queue_Control *the_message_queue
-);
-
-/*
- * _Message_queue_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a message queue control block from
- * the inactive chain of free message queue control blocks.
- */
-
-STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void );
-
-/*
- * _Message_queue_Free
- *
- * DESCRIPTION:
- *
- * This routine allocates a message queue control block from
- * the inactive chain of free message queue control blocks.
- */
-
-STATIC INLINE void _Message_queue_Free (
- Message_queue_Control *the_message_queue
-);
-
-/*
- * _Message_queue_Get
- *
- * DESCRIPTION:
- *
- * This function maps message queue IDs to message queue control
- * blocks. If ID corresponds to a local message queue, then it
- * returns the_message_queue control pointer which maps to ID
- * and location is set to OBJECTS_LOCAL. If the message queue ID is
- * global and resides on a remote node, then location is set
- * to OBJECTS_REMOTE, and the_message_queue is undefined.
- * Otherwise, location is set to OBJECTS_ERROR and
- * the_message_queue is undefined.
- */
-
-STATIC INLINE Message_queue_Control *_Message_queue_Get (
- Objects_Id id,
- Objects_Locations *location
-);
-
-#include <rtems/message.inl>
-#include <rtems/msgmp.h>
-
-#ifdef __cplusplus
-}
-#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 9e714591ab..0000000000
--- a/cpukit/rtems/include/rtems/rtems/modes.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/* modes.h
- *
- * This include file contains all constants and structures associated
- * with the RTEMS thread and RTEMS_ASR modes.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_MODES_h
-#define __RTEMS_MODES_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/isr.h>
-
-/*
- * The following type defines the control block used to manage
- * each a mode set.
- */
-
-typedef unsigned32 rtems_mode;
-
-/*
- * 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
-
-#define RTEMS_DEFAULT_MODES 0x00000000
-#define RTEMS_CURRENT_MODE 0
-
-#define RTEMS_PREEMPT_MASK 0x00000100 /* preemption bit */
-#define RTEMS_TIMESLICE_MASK 0x00000200 /* timeslice bit */
-#define RTEMS_ASR_MASK 0x00000400 /* RTEMS_ASR enable bit */
-#define RTEMS_INTERRUPT_MASK CPU_MODES_INTERRUPT_MASK
-
-#define RTEMS_PREEMPT 0x00000000 /* enable preemption */
-#define RTEMS_NO_PREEMPT 0x00000100 /* disable preemption */
-
-#define RTEMS_NO_TIMESLICE 0x00000000 /* disable timeslicing */
-#define RTEMS_TIMESLICE 0x00000200 /* enable timeslicing */
-
-#define RTEMS_ASR 0x00000000 /* enable RTEMS_ASR */
-#define RTEMS_NO_ASR 0x00000400 /* disable RTEMS_ASR */
-
-/*
- * The number of bits for interrupt levels is CPU dependent.
- * RTEMS supports 0 to 256 levels in bits 0-7 of the mode.
- */
-
-/*
- * RTEMS_INTERRUPT_LEVEL
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (
- rtems_mode mode_set
-);
-
-/*
- * _Modes_Mask_changed
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if any of the mode flags in mask
- * are set in mode_set, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Modes_Mask_changed (
- rtems_mode mode_set,
- rtems_mode masks
-);
-
-/*
- * _Modes_Is_asr_disabled
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if mode_set indicates that Asynchronous
- * Signal Processing is disabled, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Modes_Is_asr_disabled (
- rtems_mode mode_set
-);
-
-/*
- * _Modes_Is_preempt
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if mode_set indicates that preemption
- * is enabled, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Modes_Is_preempt (
- rtems_mode mode_set
-);
-
-/*
- * _Modes_Is_timeslice
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if mode_set indicates that timeslicing
- * is enabled, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Modes_Is_timeslice (
- rtems_mode mode_set
-);
-
-/*
- * _Modes_Get_interrupt_level
- *
- * DESCRIPTION:
- *
- * This function returns the interrupt level portion of the mode_set.
- */
-
-STATIC INLINE ISR_Level _Modes_Get_interrupt_level (
- rtems_mode mode_set
-);
-
-/*
- * _Modes_Set_interrupt_level
- *
- * DESCRIPTION:
- *
- * This routine sets the current interrupt level to that specified
- * in the mode_set.
- */
-
-STATIC INLINE void _Modes_Set_interrupt_level (
- rtems_mode mode_set
-);
-
-/*
- * _Modes_Change
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-STATIC INLINE void _Modes_Change (
- rtems_mode old_mode_set,
- rtems_mode new_mode_set,
- rtems_mode mask,
- rtems_mode *out_mode_set,
- rtems_mode *changed
-);
-
-#include <rtems/modes.inl>
-
-#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 96147d3b44..0000000000
--- a/cpukit/rtems/include/rtems/rtems/mp.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* mp.h
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_MP_h
-#define __RTEMS_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- *
- * _Multiprocessing_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Multiprocessing_Manager_initialization ( void );
-
-/*
- *
- * rtems_multiprocessing_announce
- *
- * DESCRIPTION:
- *
- * 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 );
-
-/*
- *
- * _Multiprocessing_Receive_server
- *
- * DESCRIPTION:
- *
- * This routine is a server thread which processes remote requests
- * from other nodes.
- */
-
-Thread _Multiprocessing_Receive_server (
- Thread_Argument ignored
-);
-
-#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 486bf00002..0000000000
--- a/cpukit/rtems/include/rtems/rtems/msgmp.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* msgmp.h
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Message Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_MESSAGE_QUEUE_MP_h
-#define __RTEMS_MESSAGE_QUEUE_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/message.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*
- * 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_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;
- Objects_Name name;
- rtems_option option_set;
- Objects_Id proxy_id;
- unsigned32 count;
- unsigned32 pad0;
- unsigned32 pad1;
- unsigned32 pad2;
- Message_queue_Buffer Buffer;
-} Message_queue_MP_Packet;
-
-/*
- * _Message_queue_MP_Send_process_packet
- *
- * DESCRIPTION:
- *
- * 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,
- Objects_Name name,
- Objects_Id proxy_id
-);
-
-/*
- * _Message_queue_MP_Send_request_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive operation can be initiated on another node.
- */
-
-rtems_status_code _Message_queue_MP_Send_request_packet (
- Message_queue_MP_Remote_operations operation,
- Objects_Id message_queue_id,
- Message_queue_Buffer *buffer,
- rtems_option option_set,
- rtems_interval timeout
-);
-
-/*
- * _Message_queue_MP_Send_response_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive can be performed on another node.
- */
-
-void _Message_queue_MP_Send_response_packet (
- Message_queue_MP_Remote_operations operation,
- Objects_Id message_queue_id,
- Thread_Control *the_thread
-);
-
-/*
- *
- * _Message_queue_MP_Process_packet
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Message_queue_MP_Send_object_was_deleted
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Message_queue_MP_Send_extract_proxy
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Message_queue_MP_Get_packet
- *
- * DESCRIPTION:
- *
- * This function is used to obtain a message queue mp packet.
- */
-
-Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/options.h b/cpukit/rtems/include/rtems/rtems/options.h
deleted file mode 100644
index b318aad8c9..0000000000
--- a/cpukit/rtems/include/rtems/rtems/options.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* options.h
- *
- * This include file contains information which defines the
- * options available on many directives.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_OPTIONS_h
-#define __RTEMS_OPTIONS_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * The following type defines the control block used to manage
- * option sets.
- */
-
-typedef unsigned32 rtems_option;
-
-/*
- * The following constants define the individual options which may
- * be used to compose an option set.
- */
-
-#define RTEMS_DEFAULT_OPTIONS 0x00000000
-
-#define RTEMS_WAIT 0x00000000 /* wait on resource */
-#define RTEMS_NO_WAIT 0x00000001 /* do not wait on resource */
-
-#define RTEMS_EVENT_ALL 0x00000000 /* wait for all events */
-#define RTEMS_EVENT_ANY 0x00000002 /* wait on any event */
-
-/*
- * _Options_Is_no_wait
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the RTEMS_NO_WAIT option is enabled in
- * option_set, and FALSE otherwise.
- *
- */
-
-STATIC INLINE boolean _Options_Is_no_wait (
- rtems_option option_set
-);
-
-/*
- * _Options_Is_any
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the RTEMS_EVENT_ANY option is enabled in
- * OPTION_SET, and FALSE otherwise.
- *
- */
-
-STATIC INLINE boolean _Options_Is_any (
- rtems_option option_set
-);
-
-#include <rtems/options.inl>
-
-#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 e639029dc8..0000000000
--- a/cpukit/rtems/include/rtems/rtems/part.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/* partition.h
- *
- * 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, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_PARTITION_h
-#define __RTEMS_PARTITION_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/address.h>
-#include <rtems/attr.h>
-#include <rtems/object.h>
-
-/*
- * The following defines the control block used to manage each partition.
- */
-
-typedef struct {
- Objects_Control Object;
- void *starting_address; /* physical address */
- unsigned32 length; /* in bytes */
- unsigned32 buffer_size; /* in bytes */
- rtems_attribute attribute_set; /* attributes */
- unsigned32 number_of_used_blocks; /* or allocated buffers */
- Chain_Control Memory; /* buffer chain */
-} Partition_Control;
-
-/*
- * The following defines the information control block used to
- * manage this class of objects.
- */
-
-EXTERN Objects_Information _Partition_Information;
-
-/*
- * _Partition_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Partition_Manager_initialization(
- unsigned32 maximum_partitions
-);
-
-/*
- * rtems_partition_create
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Name name,
- void *starting_address,
- unsigned32 length,
- unsigned32 buffer_size,
- rtems_attribute attribute_set,
- Objects_Id *id
-);
-
-/*
- * rtems_partition_ident
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_partition_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-);
-
-/*
- * rtems_partition_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_partition_delete directive. The
- * partition indicated by ID is deleted.
- */
-
-rtems_status_code rtems_partition_delete(
- Objects_Id id
-);
-
-/*
- * rtems_partition_get_buffer
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_partition_get_buffer(
- Objects_Id id,
- void **buffer
-);
-
-/*
- * rtems_partition_return_buffer
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Id id,
- void *buffer
-);
-
-/*
- * _Partition_Allocate_buffer
- *
- * DESCRIPTION:
- *
- * This function attempts to allocate a buffer from the_partition.
- * If successful, it returns the address of the allocated buffer.
- * Otherwise, it returns NULL.
- */
-
-STATIC INLINE void *_Partition_Allocate_buffer (
- Partition_Control *the_partition
-);
-
-/*
- * _Partition_Free_buffer
- *
- * DESCRIPTION:
- *
- * This routine frees the_buffer to the_partition.
- */
-
-STATIC INLINE void _Partition_Free_buffer (
- Partition_Control *the_partition,
- Chain_Node *the_buffer
-);
-
-/*
- * _Partition_Is_buffer_on_boundary
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_buffer is on a valid buffer
- * boundary for the_partition, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Partition_Is_buffer_on_boundary (
- void *the_buffer,
- Partition_Control *the_partition
-);
-
-/*
- * _Partition_Is_buffer_valid
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_buffer is a valid buffer from
- * the_partition, otherwise FALSE is returned.
- */
-
-STATIC INLINE boolean _Partition_Is_buffer_valid (
- Chain_Node *the_buffer,
- Partition_Control *the_partition
-);
-
-/*
- * _Partition_Is_buffer_size_aligned
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-STATIC INLINE boolean _Partition_Is_buffer_size_aligned (
- unsigned32 buffer_size
-);
-
-/*
- * _Partition_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a partition control block from
- * the inactive chain of free partition control blocks.
- */
-
-STATIC INLINE Partition_Control *_Partition_Allocate ( void );
-
-/*
- * _Partition_Free
- *
- * DESCRIPTION:
- *
- * This routine frees a partition control block to the
- * inactive chain of free partition control blocks.
- */
-
-STATIC INLINE void _Partition_Free (
- Partition_Control *the_partition
-);
-
-/*
- * _Partition_Get
- *
- * DESCRIPTION:
- *
- * This function maps partition IDs to partition control blocks.
- * If ID corresponds to a local partition, then it returns
- * the_partition control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. If the partition ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_partition is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_partition is undefined.
- */
-
-STATIC INLINE Partition_Control *_Partition_Get (
- Objects_Id id,
- Objects_Locations *location
-);
-
-/*
- * _Partition_Is_null
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_partition is NULL
- * and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Partition_Is_null (
- Partition_Control *the_partition
-);
-
-#include <rtems/part.inl>
-#include <rtems/partmp.h>
-
-#ifdef __cplusplus
-}
-#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 deacaf7bd1..0000000000
--- a/cpukit/rtems/include/rtems/rtems/partmp.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* partmp.h
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Partition Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_PARTITION_MP_h
-#define __RTEMS_PARTITION_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/part.h>
-#include <rtems/thread.h>
-
-/*
- * 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;
- Objects_Name name;
- void *buffer;
- Objects_Id proxy_id;
-} Partition_MP_Packet;
-
-/*
- * _Partition_MP_Send_process_packet
- *
- * DESCRIPTION:
- *
- * 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,
- Objects_Name name,
- Objects_Id proxy_id
-);
-
-/*
- * _Partition_MP_Send_request_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive operation can be initiated on another node.
- */
-
-rtems_status_code _Partition_MP_Send_request_packet (
- Partition_MP_Remote_operations operation,
- Objects_Id partition_id,
- void *buffer
-);
-
-/*
- * _Partition_MP_Send_response_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive can be performed on another node.
- */
-
-void _Partition_MP_Send_response_packet (
- Partition_MP_Remote_operations operation,
- Objects_Id partition_id,
- Thread_Control *the_thread
-);
-
-/*
- *
- * _Partition_MP_Process_packet
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Partition_MP_Send_object_was_deleted
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-/*
- * _Partition_MP_Send_extract_proxy
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Partition_MP_Get_packet
- *
- * DESCRIPTION:
- *
- * This function is used to obtain a partition mp packet.
- */
-
-Partition_MP_Packet *_Partition_MP_Get_packet ( void );
-
-#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 86acfb9a38..0000000000
--- a/cpukit/rtems/include/rtems/rtems/ratemon.h
+++ /dev/null
@@ -1,285 +0,0 @@
-/* ratemon.h
- *
- * This include file contains all the constants, structures, and
- * prototypes associated with the Rate Monotonic Manager. This manager
- * provides facilities to implement tasks 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
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_RATE_MONOTONIC_h
-#define __RTEMS_RATE_MONOTONIC_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/object.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*
- * The following enumerated type defines the states in which a
- * period may be.
- */
-
-typedef enum {
- RATE_MONOTONIC_INACTIVE, /* off chain, never initialized */
- RATE_MONOTONIC_ACTIVE, /* on chain, running continuously */
- RATE_MONOTONIC_EXPIRED /* off chain, will be reset by next rm_period */
-} 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 RTEMS_NO_TIMEOUT
-
-/*
- * The following structure defines the control block used to manage
- * each period.
- */
-
-typedef struct {
- Objects_Control Object;
- Watchdog_Control Timer;
- Rate_Monotonic_Period_states state;
- Thread_Control *owner;
-} Rate_monotonic_Control;
-
-EXTERN Objects_Information _Rate_monotonic_Information;
-
-/*
- * _Rate_monotonic_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Rate_monotonic_Manager_initialization(
- unsigned32 maximum_periods
-);
-
-/*
- * rtems_rate_monotonic_create
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Name name,
- Objects_Id *id
-);
-
-/*
- * rtems_rate_monotonic_ident
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_rate_monotonic_ident directive.
- * This directive 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.
- */
-
-rtems_status_code rtems_rate_monotonic_ident(
- Objects_Name name,
- Objects_Id *id
-);
-
-/*
- * rtems_rate_monotonic_cancel
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_rate_monotonic_cancel directive. This
- * directive stops the period associated with ID from continuing to
- * run.
- */
-
-rtems_status_code rtems_rate_monotonic_cancel(
- Objects_Id id
-);
-
-/*
- * rtems_rate_monotonic_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_rate_monotonic_delete directive. The
- * period indicated by ID is deleted.
- */
-
-rtems_status_code rtems_rate_monotonic_delete(
- Objects_Id id
-);
-
-/*
- * rtems_rate_monotonic_period
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_rate_monotonic_period(
- Objects_Id id,
- rtems_interval length
-);
-
-/*
- * _Rate_monotonic_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a period control block from
- * the inactive chain of free period control blocks.
- */
-
-STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void );
-
-/*
- * _Rate_monotonic_Free
- *
- * DESCRIPTION:
- *
- * This routine allocates a period control block from
- * the inactive chain of free period control blocks.
- */
-
-STATIC INLINE void _Rate_monotonic_Free (
- Rate_monotonic_Control *the_period
-);
-
-/*
- * _Rate_monotonic_Get
- *
- * DESCRIPTION:
- *
- * This function maps period IDs to period control blocks.
- * If ID corresponds to a local period, then it returns
- * the_period control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. Otherwise, location is set
- * to OBJECTS_ERROR and the_period is undefined.
- */
-
-STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get (
- Objects_Id id,
- Objects_Locations *location
-);
-
-/*
- * _Rate_monotonic_Set_state
- *
- * DESCRIPTION:
- *
- * This function blocks the calling task so that it is waiting for
- * a period to expire. It returns TRUE if the task was successfully
- * blocked, and FALSE otherwise.
- */
-
-boolean _Rate_monotonic_Set_state(
- Rate_monotonic_Control *the_period
-);
-
-/*
- * _Rate_monotonic_Timeout
- *
- * DESCRIPTION:
- *
- * This routine is invoked when the period represented
- * by ID expires. If the task which owns this period is blocked
- * waiting for the period to expire, then it is readied and the
- * period is restarted. If the owning task is not waiting for the
- * period to expire, then the period is placed in the EXPIRED
- * state and not restarted.
- */
-
-void _Rate_monotonic_Timeout (
- Objects_Id id,
- void *ignored
-);
-
-/*
- * _Rate_monotonic_Is_active
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_period is in the ACTIVE state,
- * and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_active (
- Rate_monotonic_Control *the_period
-);
-
-/*
- * _Rate_monotonic_Is_inactive
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_period is in the ACTIVE state,
- * and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_inactive (
- Rate_monotonic_Control *the_period
-);
-
-/*
- * _Rate_monotonic_Is_expired
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_period is in the EXPIRED state,
- * and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_expired (
- Rate_monotonic_Control *the_period
-);
-
-/*
- * _Rate_monotonic_Is_null
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_period is NULL and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_null (
- Rate_monotonic_Control *the_period
-);
-
-#include <rtems/ratemon.inl>
-
-#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 c31e193c33..0000000000
--- a/cpukit/rtems/include/rtems/rtems/region.h
+++ /dev/null
@@ -1,311 +0,0 @@
-/* region.h
- *
- * 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, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_REGION_h
-#define __RTEMS_REGION_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/object.h>
-#include <rtems/threadq.h>
-#include <rtems/heap.h>
-#include <rtems/debug.h>
-
-/*
- * The following records define the control block used to manage
- * each region.
- */
-
-typedef struct {
- Objects_Control Object;
- Thread_queue_Control Wait_queue; /* waiting threads */
- void *starting_address; /* physical start addr */
- unsigned32 length; /* physical length(bytes) */
- unsigned32 page_size; /* in bytes */
- unsigned32 maximum_segment_size; /* in bytes */
- rtems_attribute attribute_set;
- unsigned32 number_of_used_blocks; /* blocks allocated */
- Heap_Control Memory;
-} Region_Control;
-
-/*
- * The following defines the information control block used to
- * manage this class of objects.
- */
-
-EXTERN Objects_Information _Region_Information;
-
-/*
- * _Region_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Region_Manager_initialization(
- unsigned32 maximum_regions
-);
-
-/*
- * rtems_region_create
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Name name,
- void *starting_address,
- unsigned32 length,
- unsigned32 page_size,
- rtems_attribute attribute_set,
- Objects_Id *id
-);
-
-/*
- * rtems_region_extend
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_region_extend(
- Objects_Id id,
- void *starting_address,
- unsigned32 length
-);
-
-/*
- * rtems_region_ident
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_region_ident(
- Objects_Name name,
- Objects_Id *id
-);
-
-/*
- * rtems_region_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_region_delete directive. The
- * region indicated by ID is deleted.
- */
-
-rtems_status_code rtems_region_delete(
- Objects_Id id
-);
-
-/*
- * rtems_region_get_segment
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_region_get_segment directive. It
- * attempts to allocate a segment from the region associated with ID.
- * If a segment of the requested size can be allocated, its address
- * is returned in segment. If no segment is available, then the task
- * may return immediately or block waiting for a segment with an optional
- * timeout of timeout clock ticks. Whether the task blocks or returns
- * immediately is based on the no_wait option in the option_set.
- */
-
-rtems_status_code rtems_region_get_segment(
- Objects_Id id,
- unsigned32 size,
- rtems_option option_set,
- rtems_interval timeout,
- void **segment
-);
-
-/*
- * rtems_region_get_segment_size
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_region_get_segment_size directive. It
- * returns the size in bytes of the specified user memory area.
- */
-
-rtems_status_code rtems_region_get_segment_size(
- Objects_Id id,
- void *segment,
- unsigned32 *size
-);
-
-/*
- * rtems_region_return_segment
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_region_return_segment(
- Objects_Id id,
- void *segment
-);
-
-/*
- * _Region_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a region control block from
- * the inactive chain of free region control blocks.
- */
-
-STATIC INLINE Region_Control *_Region_Allocate( void );
-
-/*
- * _Region_Free
- *
- * DESCRIPTION:
- *
- * This routine frees a region control block to the
- * inactive chain of free region control blocks.
- */
-
-STATIC INLINE void _Region_Free (
- Region_Control *the_region
-);
-
-/*
- * _Region_Get
- *
- * DESCRIPTION:
- *
- * This function maps region IDs to region control blocks.
- * If ID corresponds to a local region, then it returns
- * the_region control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. Otherwise, location is set
- * to OBJECTS_ERROR and the_region is undefined.
- */
-
-STATIC INLINE Region_Control *_Region_Get (
- Objects_Id id,
- Objects_Locations *location
-);
-
-/*
- * _Region_Allocate_segment
- *
- * DESCRIPTION:
- *
- * This function attempts to allocate a segment from the_region.
- * If successful, it returns the address of the allocated segment.
- * Otherwise, it returns NULL.
- */
-
-STATIC INLINE void *_Region_Allocate_segment (
- Region_Control *the_region,
- unsigned32 size
-);
-
-/*
- * _Region_Free_segment
- *
- * DESCRIPTION:
- *
- * This function frees the_segment to the_region.
- */
-
-STATIC INLINE boolean _Region_Free_segment (
- Region_Control *the_region,
- void *the_segment
-);
-
-/*
- * _Region_Is_null
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_region is NULL and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Region_Is_null (
- Region_Control *the_region
-);
-
-#include <rtems/region.inl>
-#include <rtems/regionmp.h>
-
-/*
- * _Region_Debug_Walk
- *
- * DESCRIPTION:
- *
- * This routine is invoked to verify the integrity of a heap associated
- * with the_region.
- */
-
-#ifdef RTEMS_DEBUG
-
-#define _Region_Debug_Walk( _the_region, _source ) \
- do { \
- if ( _Debug_Is_enabled( RTEMS_DEBUG_REGION ) ) \
- _Heap_Walk( &(_the_region)->Memory, _source, FALSE ); \
- } while ( 0 )
-
-#else
-
-#define _Region_Debug_Walk( _the_region, _source )
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/include/rtems/rtems/regionmp.h b/cpukit/rtems/include/rtems/rtems/regionmp.h
deleted file mode 100644
index 2810656078..0000000000
--- a/cpukit/rtems/include/rtems/rtems/regionmp.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* regionmp.h
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Region Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_REGION_MP_h
-#define __RTEMS_REGION_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/region.h>
-#include <rtems/thread.h>
-
-/*
- * The following enumerated type defines the list of
- * remote region operations.
- */
-
-typedef enum {
- REGION_MP_ANNOUNCE_CREATE = 0,
- REGION_MP_ANNOUNCE_DELETE = 1,
- REGION_MP_EXTRACT_PROXY = 2,
- REGION_MP_GET_SEGMENT_REQUEST = 3,
- REGION_MP_GET_SEGMENT_RESPONSE = 4,
- REGION_MP_RETURN_SEGMENT_REQUEST = 5,
- REGION_MP_RETURN_SEGMENT_RESPONSE = 6,
-} Region_MP_Remote_operations;
-
-/*
- * The following data structure defines the packet used to perform
- * remote region operations.
- */
-
-typedef struct {
- rtems_packet_prefix Prefix;
- Region_MP_Remote_operations operation;
- Objects_Name name;
- rtems_option option_set;
- unsigned32 size;
- Objects_Id proxy_id;
- void *segment;
-} Region_MP_Packet;
-
-/*
- * _Region_MP_Send_process_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * process operation can be performed on another node.
- */
-
-void _Region_MP_Send_process_packet (
- Region_MP_Remote_operations operation,
- Objects_Id region_id,
- Objects_Name name,
- Objects_Id proxy_id
-);
-
-/*
- * _Region_MP_Send_request_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive operation can be initiated on another node.
- */
-
-rtems_status_code _Region_MP_Send_request_packet (
- Region_MP_Remote_operations operation,
- Objects_Id region_id,
- void *segment,
- unsigned32 size,
- rtems_option option_set,
- rtems_interval timeout
-);
-
-/*
- * _Region_MP_Send_response_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive can be performed on another node.
- */
-
-void _Region_MP_Send_response_packet (
- Region_MP_Remote_operations operation,
- Objects_Id region_id,
- Thread_Control *the_thread
-);
-
-/*
- *
- * _Region_MP_Process_packet
- *
- * DESCRIPTION:
- *
- * This routine performs the actions specific to this package for
- * the request from another node.
- */
-
-void _Region_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-);
-
-/*
- * _Region_MP_Send_object_was_deleted
- *
- * DESCRIPTION:
- *
- * 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 Region since a region
- * cannot be deleted when segments are in use.
- */
-
-/*
- * _Region_MP_Send_extract_proxy
- *
- * DESCRIPTION:
- *
- * 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 _Region_MP_Send_extract_proxy (
- Thread_Control *the_thread
-);
-
-/*
- * _Region_MP_Get_packet
- *
- * DESCRIPTION:
- *
- * This function is used to obtain a region mp packet.
- */
-
-Region_MP_Packet *_Region_MP_Get_packet ( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/sem.h b/cpukit/rtems/include/rtems/rtems/sem.h
deleted file mode 100644
index 66f5ab82b8..0000000000
--- a/cpukit/rtems/include/rtems/rtems/sem.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/* semaphore.h
- *
- * 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
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_SEMAPHORE_h
-#define __RTEMS_SEMAPHORE_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/attr.h>
-#include <rtems/object.h>
-#include <rtems/threadq.h>
-
-/*
- * The following defines the control block used to manage each semaphore.
- */
-
-typedef struct {
- Objects_Control Object;
- Thread_queue_Control Wait_queue;
- rtems_attribute attribute_set;
- unsigned32 count;
- unsigned32 nest_count;
- Thread_Control *holder;
- Objects_Id holder_id;
-} Semaphore_Control;
-
-/*
- * The following defines the information control block used to manage
- * this class of objects.
- */
-
-EXTERN Objects_Information _Semaphore_Information;
-
-/*
- * _Semaphore_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Semaphore_Manager_initialization(
- unsigned32 maximum_semaphores
-);
-
-/*
- * rtems_semaphore_create
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Name name,
- unsigned32 count,
- rtems_attribute attribute_set,
- Objects_Id *id
-);
-
-/*
- * rtems_semaphore_ident
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_semaphore_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-);
-
-/*
- * rtems_semaphore_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_semaphore_delete directive. The
- * semaphore indicated by ID is deleted.
- */
-
-rtems_status_code rtems_semaphore_delete(
- Objects_Id id
-);
-
-/*
- * rtems_semaphore_obtain
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_semaphore_obtain(
- Objects_Id id,
- unsigned32 option_set,
- rtems_interval timeout
-);
-
-/*
- * rtems_semaphore_release
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Id id
-);
-
-/*
- * _Semaphore_Seize
- *
- * DESCRIPTION:
- *
- * This routine attempts to receive a unit from the_semaphore.
- * If a unit is available or if the RTEMS_NO_WAIT option is enabled in
- * option_set, then the routine returns. Otherwise, the calling task
- * is blocked until a unit becomes available.
- */
-
-boolean _Semaphore_Seize(
- Semaphore_Control *the_semaphore,
- unsigned32 option_set
-);
-
-/*
- * _Semaphore_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a semaphore control block from
- * the inactive chain of free semaphore control blocks.
- */
-
-STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void );
-
-/*
- * _Semaphore_Free
- *
- * DESCRIPTION:
- *
- * This routine frees a semaphore control block to the
- * inactive chain of free semaphore control blocks.
- */
-
-STATIC INLINE void _Semaphore_Free (
- Semaphore_Control *the_semaphore
-);
-
-/*
- * _Semaphore_Get
- *
- * DESCRIPTION:
- *
- * This function maps semaphore IDs to semaphore control blocks.
- * If ID corresponds to a local semaphore, then it returns
- * the_semaphore control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. if the semaphore ID is global and
- * resides on a remote node, then location is set to OBJECTS_REMOTE,
- * and the_semaphore is undefined. Otherwise, location is set
- * to OBJECTS_ERROR and the_semaphore is undefined.
- */
-
-STATIC INLINE Semaphore_Control *_Semaphore_Get (
- Objects_Id id,
- Objects_Locations *location
-);
-
-/*
- * _Semaphore_Is_null
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_semaphore is NULL and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Semaphore_Is_null (
- Semaphore_Control *the_semaphore
-);
-
-#include <rtems/sem.inl>
-#include <rtems/semmp.h>
-
-#ifdef __cplusplus
-}
-#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 2d0554c8cc..0000000000
--- a/cpukit/rtems/include/rtems/rtems/semmp.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* semmp.h
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Semaphore Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_SEMAPHORE_MP_h
-#define __RTEMS_SEMAPHORE_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/sem.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*
- * 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;
- Objects_Name name;
- rtems_option option_set;
- Objects_Id proxy_id;
-} Semaphore_MP_Packet;
-
-/*
- * _Semaphore_MP_Send_process_packet
- *
- * DESCRIPTION:
- *
- * 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,
- Objects_Name name,
- Objects_Id proxy_id
-);
-
-/*
- * _Semaphore_MP_Send_request_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive operation can be initiated on another node.
- */
-
-rtems_status_code _Semaphore_MP_Send_request_packet (
- Semaphore_MP_Remote_operations operation,
- Objects_Id semaphore_id,
- rtems_option option_set,
- rtems_interval timeout
-);
-
-/*
- * _Semaphore_MP_Send_response_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive can be performed on another node.
- */
-
-void _Semaphore_MP_Send_response_packet (
- Semaphore_MP_Remote_operations operation,
- Objects_Id semaphore_id,
- Thread_Control *the_thread
-);
-
-/*
- *
- * _Semaphore_MP_Process_packet
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Semaphore_MP_Send_object_was_deleted
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Semaphore_MP_Send_extract_proxy
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Semaphore_MP_Get_packet
- *
- * DESCRIPTION:
- *
- * This function is used to obtain a semaphore mp packet.
- */
-
-Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void );
-
-#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 2466a8f931..0000000000
--- a/cpukit/rtems/include/rtems/rtems/signal.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* signal.h
- *
- * This include file contains all the constants and structures associated
- * with the Signal Manager. This manager provides capabilities required
- * for asynchronous communication between tasks via signal sets.
- *
- * Directives provided are:
- *
- * + establish an asynchronous signal routine
- * + send a signal set to a task
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_SIGNAL_h
-#define __RTEMS_SIGNAL_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/asr.h>
-#include <rtems/modes.h>
-#include <rtems/object.h>
-#include <rtems/status.h>
-
-/*
- * rtems_signal_catch
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_signal_catch(
- rtems_asr_entry asr_handler,
- rtems_mode mode_set
-);
-
-/*
- * rtems_signal_send
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_signal_send directive. This directive
- * sends the signal_set to the task specified by ID.
- */
-
-rtems_status_code rtems_signal_send(
- Objects_Id id,
- rtems_signal_set signal_set
-);
-
-#include <rtems/signalmp.h>
-
-#ifdef __cplusplus
-}
-#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 36a2d81594..0000000000
--- a/cpukit/rtems/include/rtems/rtems/signalmp.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/* signalmp.h
- *
- * This include file contains all the constants and structures associated
- * with the Multiprocessing Support in the Signal Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_SIGNAL_MP_h
-#define __RTEMS_SIGNAL_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/asr.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*
- * The following enumerated type defines the list of
- * remote signal operations.
- */
-
-typedef enum {
- SIGNAL_MP_SEND_REQUEST = 0,
- SIGNAL_MP_SEND_RESPONSE = 1,
-} Signal_MP_Remote_operations;
-
-/*
- * The following data structure defines the packet used to perform
- * remote signal operations.
- */
-
-typedef struct {
- rtems_packet_prefix Prefix;
- Signal_MP_Remote_operations operation;
- rtems_signal_set signal_in;
-} Signal_MP_Packet;
-
-/*
- * _Signal_MP_Send_process_packet
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-/*
- * _Signal_MP_Send_request_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive operation can be initiated on another node.
- */
-
-rtems_status_code _Signal_MP_Send_request_packet (
- Signal_MP_Remote_operations operation,
- Objects_Id task_id,
- rtems_signal_set signal_in
-);
-
-/*
- * _Signal_MP_Send_response_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive can be performed on another node.
- */
-
-void _Signal_MP_Send_response_packet (
- Signal_MP_Remote_operations operation,
- Thread_Control *the_thread
-);
-
-/*
- *
- * _Signal_MP_Process_packet
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _Signal_MP_Send_object_was_deleted
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-/*
- * _Signal_MP_Send_extract_proxy
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-/*
- * _Signal_MP_Get_packet
- *
- * DESCRIPTION:
- *
- * This function is used to obtain a signal mp packet.
- */
-
-Signal_MP_Packet *_Signal_MP_Get_packet ( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of file */
diff --git a/cpukit/rtems/include/rtems/rtems/status.h b/cpukit/rtems/include/rtems/rtems/status.h
deleted file mode 100644
index 42b8754780..0000000000
--- a/cpukit/rtems/include/rtems/rtems/status.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* status.h
- *
- * This include file contains the status codes returned from the
- * executive directives.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_STATUS_h
-#define __RTEMS_STATUS_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* types */
-
-/* enumerated constants */
-
-typedef enum {
- RTEMS_SUCCESSFUL = 0, /* successful completion */
- RTEMS_TASK_EXITTED = 1, /* returned from a thread */
- RTEMS_MP_NOT_CONFIGURED = 2, /* multiprocessing not configured */
- RTEMS_INVALID_NAME = 3, /* invalid object name */
- RTEMS_INVALID_ID = 4, /* invalid object id */
- RTEMS_TOO_MANY = 5, /* too many */
- RTEMS_TIMEOUT = 6, /* timed out waiting */
- RTEMS_OBJECT_WAS_DELETED = 7, /* object deleted while waiting */
- RTEMS_INVALID_SIZE = 8, /* specified size was invalid */
- RTEMS_INVALID_ADDRESS = 9, /* address specified is invalid */
- RTEMS_INVALID_NUMBER = 10, /* number was invalid */
- RTEMS_NOT_DEFINED = 11, /* item has not been initialized */
- RTEMS_RESOURCE_IN_USE = 12, /* resources still outstanding */
- RTEMS_UNSATISFIED = 13, /* request not satisfied */
- RTEMS_INCORRECT_STATE = 14, /* thread is in wrong state */
- RTEMS_ALREADY_SUSPENDED = 15, /* thread already in state */
- RTEMS_ILLEGAL_ON_SELF = 16, /* illegal on calling thread */
- RTEMS_ILLEGAL_ON_REMOTE_OBJECT = 17, /* illegal for remote object */
- RTEMS_CALLED_FROM_ISR = 18, /* called from wrong environment */
- RTEMS_INVALID_PRIORITY = 19, /* invalid thread priority */
- RTEMS_INVALID_CLOCK = 20, /* invalid date/time */
- RTEMS_INVALID_NODE = 21, /* invalid node id */
- RTEMS_NOT_CONFIGURED = 22, /* directive not configured */
- RTEMS_NOT_OWNER_OF_RESOURCE = 23, /* not owner of resource */
- RTEMS_NOT_IMPLEMENTED = 24, /* directive not implemented */
- RTEMS_INTERNAL_ERROR = 25, /* RTEMS inconsistency detected */
- RTEMS_PROXY_BLOCKING = 26, /* internal multiprocessing only */
- RTEMS_NO_MEMORY = 27 /* could not get enough memory */
-} rtems_status_code;
-
-#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL
-#define RTEMS_STATUS_CODES_LAST RTEMS_NO_MEMORY
-
-/*
- * rtems_is_status_successful
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL,
- * and FALSE otherwise.
- */
-
-STATIC INLINE boolean rtems_is_status_successful (
- rtems_status_code code
-);
-
-/*
- * rtems_are_statuses_equal
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the status code1 is equal to code2,
- * and FALSE otherwise.
- */
-
-STATIC INLINE boolean rtems_are_statuses_equal (
- rtems_status_code code1,
- rtems_status_code code2
-);
-
-/*
- * _Status_Is_proxy_blocking
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the status code is equal to the
- * status which indicates that a proxy is blocking, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Status_Is_proxy_blocking (
- rtems_status_code code
-);
-
-#include <rtems/status.inl>
-
-#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 57ab50c630..0000000000
--- a/cpukit/rtems/include/rtems/rtems/taskmp.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/* taskmp.h
- *
- * This include file contains all the constants and structures associated
- * with the multiprocessing support in the task manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_RTEMS_TASKS_MP_h
-#define __RTEMS_RTEMS_TASKS_MP_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/priority.h>
-#include <rtems/tasks.h>
-#include <rtems/thread.h>
-
-/*
- * 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_GET_NOTE_REQUEST = 8,
- RTEMS_TASKS_MP_GET_NOTE_RESPONSE = 9,
- RTEMS_TASKS_MP_SET_NOTE_REQUEST = 10,
- RTEMS_TASKS_MP_SET_NOTE_RESPONSE = 11,
-} RTEMS_tasks_MP_Remote_operations;
-
-/*
- * The following data structure defines the packet used to perform
- * remote task operations.
- */
-
-typedef struct {
- rtems_packet_prefix Prefix;
- RTEMS_tasks_MP_Remote_operations operation;
- Objects_Name name;
- rtems_task_priority the_priority;
- unsigned32 notepad;
- unsigned32 note;
-} RTEMS_tasks_MP_Packet;
-
-/*
- * _RTEMS_tasks_MP_Send_process_packet
- *
- * DESCRIPTION:
- *
- * 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,
- Objects_Name name
-);
-
-/*
- * _RTEMS_tasks_MP_Send_request_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive operation can be initiated on another node.
- */
-
-rtems_status_code _RTEMS_tasks_MP_Send_request_packet (
- RTEMS_tasks_MP_Remote_operations operation,
- Objects_Id task_id,
- rtems_task_priority the_priority,
- unsigned32 notepad,
- unsigned32 note
-);
-
-/*
- * _RTEMS_tasks_MP_Send_response_packet
- *
- * DESCRIPTION:
- *
- * This routine performs a remote procedure call so that a
- * directive can be performed on another node.
- */
-
-void _RTEMS_tasks_MP_Send_response_packet (
- RTEMS_tasks_MP_Remote_operations operation,
- Thread_Control *the_thread
-);
-
-/*
- *
- * _RTEMS_tasks_MP_Process_packet
- *
- * DESCRIPTION:
- *
- * 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
-);
-
-/*
- * _RTEMS_tasks_MP_Send_object_was_deleted
- *
- * DESCRIPTION:
- *
- * 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
- *
- * DESCRIPTION:
- *
- * 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.
- *
- */
-
-/*
- * _RTEMS_tasks_MP_Get_packet
- *
- * DESCRIPTION:
- *
- * This function is used to obtain a task mp packet.
- */
-
-RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void );
-
-#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 d92913548e..0000000000
--- a/cpukit/rtems/include/rtems/rtems/tasks.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/* tasks.h
- *
- * 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
- * + get a task notepad entry
- * + set a task notepad entry
- * + wake up after interval
- * + wake up when specified
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_RTEMS_TASKS_h
-#define __RTEMS_RTEMS_TASKS_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/message.h>
-#include <rtems/object.h>
-#include <rtems/part.h>
-#include <rtems/region.h>
-#include <rtems/sem.h>
-#include <rtems/states.h>
-#include <rtems/thread.h>
-#include <rtems/threadq.h>
-
-/*
- * 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 RTEMS_NO_TIMEOUT
-
-/*
- * rtems_task_create
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_task_create(
- Objects_Name name,
- rtems_task_priority initial_priority,
- unsigned32 stack_size,
- rtems_mode initial_modes,
- rtems_attribute attribute_set,
- Objects_Id *id
-);
-
-/*
- * rtems_task_ident
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_task_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-);
-
-/*
- * rtems_task_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_task_delete directive. The
- * task indicated by ID is deleted.
- */
-
-rtems_status_code rtems_task_delete(
- Objects_Id id
-);
-
-/*
- * rtems_task_get_note
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_task_get_note directive. The
- * value of the indicated notepad for the task associated with ID
- * is returned in note.
- */
-
-rtems_status_code rtems_task_get_note(
- Objects_Id id,
- unsigned32 notepad,
- unsigned32 *note
-);
-
-/*
- * rtems_task_set_note
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_task_set_note directive. The
- * value of the indicated notepad for the task associated with ID
- * is returned in note.
- */
-
-rtems_status_code rtems_task_set_note(
- Objects_Id id,
- unsigned32 notepad,
- unsigned32 note
-);
-
-/*
- * rtems_task_mode
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_task_mode(
- rtems_mode mode_set,
- rtems_mode mask,
- rtems_mode *previous_mode_set
-);
-
-/*
- * rtems_task_restart
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_task_restart directive. The
- * task associated with ID is restarted at its initial entry
- * point with the new argument.
- */
-
-rtems_status_code rtems_task_restart(
- Objects_Id id,
- unsigned32 arg
-);
-
-/*
- * rtems_task_suspend
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_task_suspend directive. The
- * SUSPENDED state is set for task associated with ID.
- */
-
-rtems_status_code rtems_task_suspend(
- Objects_Id id
-);
-
-/*
- * rtems_task_resume
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_task_resume Directive. The
- * SUSPENDED state is cleared for task associated with ID.
- */
-
-rtems_status_code rtems_task_resume(
- Objects_Id id
-);
-
-/*
- * rtems_task_set_priority
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_task_set_priority(
- Objects_Id id,
- rtems_task_priority new_priority,
- rtems_task_priority *old_priority
-);
-
-/*
- * rtems_task_start
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Id id,
- rtems_task_entry entry_point,
- unsigned32 argument
-);
-
-/*
- * rtems_task_wake_when
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_task_wake_when(
- rtems_time_of_day *time_buffer
-);
-
-/*
- * rtems_task_wake_after
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_task_wake_after directive. The
- * calling task is blocked until the indicated number of clock
- * ticks have occurred.
- */
-
-rtems_status_code rtems_task_wake_after(
- rtems_interval ticks
-);
-
-/*
- * _RTEMS_tasks_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a task control block from
- * the inactive chain of free task control blocks.
- */
-
-STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void );
-
-/*
- * _RTEMS_tasks_Free
- *
- * DESCRIPTION:
- *
- * This routine frees a task control block to the
- * inactive chain of free task control blocks.
-
- */
-
-STATIC INLINE void _RTEMS_tasks_Free (
- Thread_Control *the_task
-);
-
-/*
- * _RTEMS_tasks_Cancel_wait
- *
- * DESCRIPTION:
- *
- * This routine unblocks the_thread and cancels any timers
- * which the_thread has active.
- */
-
-STATIC INLINE void _RTEMS_tasks_Cancel_wait(
- Thread_Control *the_thread
-);
-
-#include <rtems/tasks.inl>
-#include <rtems/taskmp.h>
-
-#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 f6ccb5f4a1..0000000000
--- a/cpukit/rtems/include/rtems/rtems/timer.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/* timer.h
- *
- * 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 a timer to fire after a number of ticks have passed
- * + set a timer to fire when a specified date and time has been reached
- * + reset a timer
- * + cancel a time
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_TIMER_h
-#define __RTEMS_TIMER_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <rtems/object.h>
-#include <rtems/tod.h>
-#include <rtems/watchdog.h>
-
-/*
- * The following enumerated type details the classes to which a timer
- * may belong.
- */
-
-typedef enum {
- TIMER_INTERVAL,
- TIMER_TIME_OF_DAY,
- TIMER_DORMANT
-} Timer_Classes;
-
-/*
- * The following defines the type of a Timer Service Routine.
- */
-
-typedef rtems_timer_service_routine_entry Timer_Service;
-
-/*
- * The following defines the information control block used to manage
- * this class of objects.
- */
-
-EXTERN Objects_Information _Timer_Information;
-
-/*
- * The following records define the control block used to manage
- * each timer.
- */
-
-typedef struct {
- Objects_Control Object;
- Watchdog_Control Ticker;
- Timer_Classes the_class;
-} Timer_Control;
-
-/*
- * _Timer_Manager_initialization
- *
- * DESCRIPTION:
- *
- * This routine performs the initialization necessary for this manager.
- */
-
-void _Timer_Manager_initialization(
- unsigned32 maximum_timers
-);
-
-/*
- * rtems_timer_create
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_timer_create(
- Objects_Name name,
- Objects_Id *id
-);
-
-/*
- * rtems_timer_ident
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_timer_ident(
- Objects_Name name,
- Objects_Id *id
-);
-
-/*
- * rtems_timer_cancel
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Id id
-);
-
-/*
- * rtems_timer_delete
- *
- * DESCRIPTION:
- *
- * This routine implements the rtems_timer_delete directive. The
- * timer indicated by ID is deleted.
- */
-
-rtems_status_code rtems_timer_delete(
- Objects_Id id
-);
-
-/*
- * rtems_timer_fire_after
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_timer_fire_after(
- Objects_Id id,
- rtems_interval ticks,
- Timer_Service routine,
- void *user_data
-);
-
-/*
- * rtems_timer_fire_when
- *
- * DESCRIPTION:
- *
- * 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.
- */
-
-rtems_status_code rtems_timer_fire_when(
- Objects_Id id,
- rtems_time_of_day *wall_time,
- Timer_Service routine,
- void *user_data
-);
-
-/*
- * rtems_timer_reset
- *
- * DESCRIPTION:
- *
- * 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(
- Objects_Id id
-);
-
-/*
- * _Timer_Allocate
- *
- * DESCRIPTION:
- *
- * This function allocates a timer control block from
- * the inactive chain of free timer control blocks.
- */
-
-STATIC INLINE Timer_Control *_Timer_Allocate( void );
-
-/*
- * _Timer_Free
- *
- * DESCRIPTION:
- *
- * This routine frees a timer control block to the
- * inactive chain of free timer control blocks.
- */
-
-STATIC INLINE void _Timer_Free (
- Timer_Control *the_timer
-);
-
-/*
- * _Timer_Get
- *
- * DESCRIPTION:
- *
- * This function maps timer IDs to timer control blocks.
- * If ID corresponds to a local timer, then it returns
- * the timer control pointer which maps to ID and location
- * is set to OBJECTS_LOCAL. Otherwise, location is set
- * to OBJECTS_ERROR and the returned value is undefined.
- */
-
-STATIC INLINE Timer_Control *_Timer_Get (
- Objects_Id id,
- Objects_Locations *location
-);
-
-/*
- * _Timer_Is_interval_class
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the class is that of an INTERVAL
- * timer, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Timer_Is_interval_class (
- Timer_Classes the_class
-);
-
-/*
- * _Timer_Is_time_of_day_class
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the class is that of an INTERVAL
- * timer, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Timer_Is_timer_of_day_class (
- Timer_Classes the_class
-);
-
-/*
- * _Timer_Is_dormant_class
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the class is that of a DORMANT
- * timer, and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Timer_Is_dormant_class (
- Timer_Classes the_class
-);
-
-/*
- * _Timer_Is_null
- *
- * DESCRIPTION:
- *
- * This function returns TRUE if the_timer is NULL and FALSE otherwise.
- */
-
-STATIC INLINE boolean _Timer_Is_null (
- Timer_Control *the_timer
-);
-
-#include <rtems/timer.inl>
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/asr.inl b/cpukit/rtems/inline/rtems/rtems/asr.inl
deleted file mode 100644
index a2da1ae311..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/asr.inl
+++ /dev/null
@@ -1,105 +0,0 @@
-/* inline/asr.inl
- *
- * This include file contains the implemenation of all routines
- * associated with the asynchronous signal handler which are inlined.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __INLINE_ASR_inl
-#define __INLINE_ASR_inl
-
-#include <rtems/isr.h>
-
-/*PAGE
- *
- * _ASR_Initialize
- *
- */
-
-STATIC INLINE void _ASR_Initialize (
- ASR_Information *information
-)
-{
- information->handler = NULL;
- information->mode_set = RTEMS_DEFAULT_MODES;
- information->signals_posted = 0;
- information->signals_pending = 0;
- information->nest_level = 0;
-}
-
-/*PAGE
- *
- * _ASR_Swap_signals
- *
- */
-
-STATIC INLINE void _ASR_Swap_signals (
- ASR_Information *information
-)
-{
- rtems_signal_set _signals;
- ISR_Level _level;
-
- _ISR_Disable( _level );
- _signals = information->signals_pending;
- information->signals_pending = information->signals_posted;
- information->signals_posted = _signals;
- _ISR_Enable( _level );
-}
-
-/*PAGE
- *
- * _ASR_Is_null_handler
- *
- */
-
-STATIC INLINE boolean _ASR_Is_null_handler (
- rtems_asr_entry asr_handler
-)
-{
- return asr_handler == NULL;
-}
-
-/*PAGE
- *
- * _ASR_Are_signals_pending
- *
- */
-
-STATIC INLINE boolean _ASR_Are_signals_pending (
- ASR_Information *information
-)
-{
- return information->signals_posted != 0;
-}
-
-/*PAGE
- *
- * _ASR_Post_signals
- *
- */
-
-STATIC INLINE void _ASR_Post_signals(
- rtems_signal_set signals,
- rtems_signal_set *signal_set
-)
-{
- ISR_Level _level;
-
- _ISR_Disable( _level );
- *signal_set |= signals;
- _ISR_Enable( _level );
-}
-
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/attr.inl b/cpukit/rtems/inline/rtems/rtems/attr.inl
deleted file mode 100644
index c657a08211..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/attr.inl
+++ /dev/null
@@ -1,125 +0,0 @@
-/* inline/attr.inl
- *
- * This include file contains all of the inlined routines associated
- * with attributes.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __INLINE_ATTRIBUTES_inl
-#define __INLINE_ATTRIBUTES_inl
-
-/*PAGE
- *
- * _Attributes_Set
- */
-
-STATIC INLINE rtems_attribute _Attributes_Set (
- rtems_attribute new_attributes,
- rtems_attribute attribute_set
-)
-{
- return attribute_set | new_attributes;
-}
-
-/*PAGE
- *
- * _Attributes_Clear
- */
-
-STATIC INLINE rtems_attribute _Attributes_Clear (
- rtems_attribute attribute_set,
- rtems_attribute mask
-)
-{
- return attribute_set & ~mask;
-}
-
-/*PAGE
- *
- * _Attributes_Is_floating_point
- *
- */
-
-STATIC INLINE boolean _Attributes_Is_floating_point(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_FLOATING_POINT );
-}
-
-/*PAGE
- *
- * _Attributes_Is_global
- *
- */
-
-STATIC INLINE boolean _Attributes_Is_global(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_GLOBAL );
-}
-
-/*PAGE
- *
- * _Attributes_Is_priority
- *
- */
-
-STATIC INLINE boolean _Attributes_Is_priority(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_PRIORITY );
-}
-
-/*PAGE
- *
- * _Attributes_Is_limit
- *
- */
-
-STATIC INLINE boolean _Attributes_Is_limit(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_LIMIT );
-}
-
-/*PAGE
- *
- * _Attributes_Is_binary_semaphore
- *
- */
-
-STATIC INLINE boolean _Attributes_Is_binary_semaphore(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_BINARY_SEMAPHORE );
-}
-
-/*PAGE
- *
- * _Attributes_Is_inherit_priority
- *
- */
-
-STATIC INLINE boolean _Attributes_Is_inherit_priority(
- rtems_attribute attribute_set
-)
-{
- return ( attribute_set & RTEMS_INHERIT_PRIORITY );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/dpmem.inl b/cpukit/rtems/inline/rtems/rtems/dpmem.inl
deleted file mode 100644
index 829ec5ab07..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/dpmem.inl
+++ /dev/null
@@ -1,75 +0,0 @@
-/* inline/dpmem.inl
- *
- * This include file contains the inline routine used in conjunction
- * with the Dual Ported Memory Manager
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __INLINE_DPMEM_inl
-#define __INLINE_DPMEM_inl
-
-
-/*PAGE
- *
- * _Dual_ported_memory_Allocate
- *
- */
-
-STATIC INLINE Dual_ported_memory_Control
- *_Dual_ported_memory_Allocate ( void )
-{
- return (Dual_ported_memory_Control *)
- _Objects_Allocate( &_Dual_ported_memory_Information );
-}
-
-/*PAGE
- *
- * _Dual_ported_memory_Free
- *
- */
-
-STATIC INLINE void _Dual_ported_memory_Free (
- Dual_ported_memory_Control *the_port
-)
-{
- _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object );
-}
-
-/*PAGE
- *
- * _Dual_ported_memory_Get
- *
- */
-
-STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Dual_ported_memory_Control *)
- _Objects_Get( &_Dual_ported_memory_Information, id, location );
-}
-
-/*PAGE
- *
- * _Dual_ported_memory_Is_null
- */
-
-STATIC INLINE boolean _Dual_ported_memory_Is_null(
- Dual_ported_memory_Control *the_port
-)
-{
- return ( the_port == NULL );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/event.inl b/cpukit/rtems/inline/rtems/rtems/event.inl
deleted file mode 100644
index 2f2f480001..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/event.inl
+++ /dev/null
@@ -1,30 +0,0 @@
-/* inline/event.inl
- *
- * This include file contains the static inline implementation of
- * macros for the Event Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MACROS_EVENT_inl
-#define __MACROS_EVENT_inl
-
-/*
- * Event_Manager_initialization
- */
-
-STATIC INLINE void _Event_Manager_initialization( void )
-{
- _Event_Sync = FALSE;
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/eventset.inl b/cpukit/rtems/inline/rtems/rtems/eventset.inl
deleted file mode 100644
index b38c61de1a..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/eventset.inl
+++ /dev/null
@@ -1,71 +0,0 @@
-/* inline/eventset.inl
- *
- * This include file contains the information pertaining to event sets.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __INLINE_EVENT_SET_inl
-#define __INLINE_EVENT_SET_inl
-
-/*PAGE
- *
- * _Event_sets_Is_empty
- */
-
-STATIC INLINE boolean _Event_sets_Is_empty(
- rtems_event_set the_event_set
-)
-{
- return ( the_event_set == 0 );
-}
-
-/*PAGE
- *
- * _Event_sets_Post
- */
-
-STATIC INLINE void _Event_sets_Post(
- rtems_event_set the_new_events,
- rtems_event_set *the_event_set
-)
-{
- *the_event_set |= the_new_events;
-}
-
-/*PAGE
- *
- * _Event_sets_Get
- */
-
-STATIC INLINE 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 );
-}
-
-/*PAGE
- *
- * _Event_sets_Clear
- */
-
-STATIC INLINE rtems_event_set _Event_sets_Clear(
- rtems_event_set the_event_set,
- rtems_event_set the_mask
-)
-{
- return ( the_event_set & ~(the_mask) );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/message.inl b/cpukit/rtems/inline/rtems/rtems/message.inl
deleted file mode 100644
index ee8d5f6cb1..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/message.inl
+++ /dev/null
@@ -1,160 +0,0 @@
-/* message.inl
- *
- * This include file contains the static inline implementation of all
- * inlined routines in the Message Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MESSAGE_QUEUE_inl
-#define __MESSAGE_QUEUE_inl
-
-/*PAGE
- *
- * _Message_queue_Copy_buffer
- *
- */
-
-STATIC INLINE void _Message_queue_Copy_buffer (
- Message_queue_Buffer *source,
- Message_queue_Buffer *destination
-)
-{
- *destination = *source;
-}
-
-/*PAGE
- *
- * _Message_queue_Allocate_message_buffer
- *
- */
-
-STATIC INLINE Message_queue_Buffer_control *
- _Message_queue_Allocate_message_buffer ( void )
-{
- return (Message_queue_Buffer_control *)
- _Chain_Get( &_Message_queue_Inactive_messages );
-}
-
-/*PAGE
- *
- * _Message_queue_Free_message_buffer
- *
- */
-
-STATIC INLINE void _Message_queue_Free_message_buffer (
- Message_queue_Buffer_control *the_message
-)
-{
- _Chain_Append( &_Message_queue_Inactive_messages, &the_message->Node );
-}
-
-/*PAGE
- *
- * _Message_queue_Get_pending_message
- *
- */
-
-STATIC INLINE
- Message_queue_Buffer_control *_Message_queue_Get_pending_message (
- Message_queue_Control *the_message_queue
-)
-{
- return (Message_queue_Buffer_control *)
- _Chain_Get_unprotected( &the_message_queue->Pending_messages );
-}
-
-/*PAGE
- *
- * _Message_queue_Append
- *
- */
-
-STATIC INLINE void _Message_queue_Append (
- Message_queue_Control *the_message_queue,
- Message_queue_Buffer_control *the_message
-)
-{
- _Chain_Append( &the_message_queue->Pending_messages, &the_message->Node );
-}
-
-/*PAGE
- *
- * _Message_queue_Prepend
- *
- */
-
-STATIC INLINE void _Message_queue_Prepend (
- Message_queue_Control *the_message_queue,
- Message_queue_Buffer_control *the_message
-)
-{
- _Chain_Prepend(
- &the_message_queue->Pending_messages,
- &the_message->Node
- );
-}
-
-/*PAGE
- *
- * _Message_queue_Is_null
- *
- */
-
-STATIC INLINE boolean _Message_queue_Is_null (
- Message_queue_Control *the_message_queue
-)
-{
- return ( the_message_queue == NULL );
-}
-
-/*PAGE
- *
- * _Message_queue_Allocate
- *
- */
-
-STATIC INLINE Message_queue_Control *_Message_queue_Allocate ( void )
-{
- return (Message_queue_Control *)
- _Objects_Allocate( &_Message_queue_Information );
-}
-
-/*PAGE
- *
- * _Message_queue_Free
- *
- */
-
-STATIC INLINE void _Message_queue_Free (
- Message_queue_Control *the_message_queue
-)
-{
- _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
-}
-
-/*PAGE
- *
- * _Message_queue_Get
- *
- */
-
-STATIC INLINE Message_queue_Control *_Message_queue_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Message_queue_Control *)
- _Objects_Get( &_Message_queue_Information, id, location );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/modes.inl b/cpukit/rtems/inline/rtems/rtems/modes.inl
deleted file mode 100644
index 6331a18a3a..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/modes.inl
+++ /dev/null
@@ -1,136 +0,0 @@
-/* modes.inl
- *
- * This include file contains the static inline implementation of the
- * inlined routines in the Mode Handler
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MODES_inl
-#define __MODES_inl
-
-/*PAGE
- *
- * RTEMS_INTERRUPT_LEVEL
- */
-
-STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (
- rtems_mode mode_set
-)
-{
- return mode_set & RTEMS_INTERRUPT_MASK;
-}
-
-/*PAGE
- *
- * _Modes_Mask_changed
- *
- */
-
-STATIC INLINE boolean _Modes_Mask_changed (
- rtems_mode mode_set,
- rtems_mode masks
-)
-{
- return ( mode_set & masks );
-}
-
-/*PAGE
- *
- * _Modes_Is_asr_disabled
- *
- */
-
-STATIC INLINE boolean _Modes_Is_asr_disabled (
- rtems_mode mode_set
-)
-{
- return ( mode_set & RTEMS_ASR_MASK );
-}
-
-/*PAGE
- *
- * _Modes_Is_preempt
- *
- */
-
-STATIC INLINE boolean _Modes_Is_preempt (
- rtems_mode mode_set
-)
-{
- return ( ( mode_set & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT );
-}
-
-/*PAGE
- *
- * _Modes_Is_timeslice
- *
- */
-
-STATIC INLINE boolean _Modes_Is_timeslice (
- rtems_mode mode_set
-)
-{
- return ((mode_set & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) ==
- (RTEMS_TIMESLICE|RTEMS_PREEMPT) );
-}
-
-/*PAGE
- *
- * _Modes_Get_interrupt_level
- *
- */
-
-STATIC INLINE ISR_Level _Modes_Get_interrupt_level (
- rtems_mode mode_set
-)
-{
- return ( mode_set & RTEMS_INTERRUPT_MASK );
-}
-
-/*PAGE
- *
- * _Modes_Set_interrupt_level
- *
- */
-
-STATIC INLINE void _Modes_Set_interrupt_level (
- rtems_mode mode_set
-)
-{
- _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );
-}
-
-/*PAGE
- *
- * _Modes_Change
- *
- */
-
-STATIC INLINE void _Modes_Change (
- rtems_mode old_mode_set,
- rtems_mode new_mode_set,
- rtems_mode mask,
- rtems_mode *out_mode_set,
- rtems_mode *changed
-)
-{
- rtems_mode _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;
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/options.inl b/cpukit/rtems/inline/rtems/rtems/options.inl
deleted file mode 100644
index b3c7312010..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/options.inl
+++ /dev/null
@@ -1,47 +0,0 @@
-/* options.inl
- *
- * This file contains the static inline implementation of the inlined
- * routines from the Options Handler.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __OPTIONS_inl
-#define __OPTIONS_inl
-
-/*PAGE
- *
- * _Options_Is_no_wait
- *
- */
-
-STATIC INLINE boolean _Options_Is_no_wait (
- rtems_option option_set
-)
-{
- return (option_set & RTEMS_NO_WAIT);
-}
-
-/*PAGE
- *
- * _Options_Is_any
- *
- */
-
-STATIC INLINE boolean _Options_Is_any (
- rtems_option option_set
-)
-{
- return (option_set & RTEMS_EVENT_ANY);
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/part.inl b/cpukit/rtems/inline/rtems/rtems/part.inl
deleted file mode 100644
index 78f86dcefc..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/part.inl
+++ /dev/null
@@ -1,157 +0,0 @@
-/* part.inl
- *
- * This file contains the macro implementation of all inlined routines
- * in the Partition Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __PARTITION_inl
-#define __PARTITION_inl
-
-/*PAGE
- *
- * _Partition_Allocate_buffer
- *
- */
-
-STATIC INLINE void *_Partition_Allocate_buffer (
- Partition_Control *the_partition
-)
-{
- return _Chain_Get( &the_partition->Memory );
-}
-
-/*PAGE
- *
- * _Partition_Free_buffer
- *
- */
-
-STATIC INLINE void _Partition_Free_buffer (
- Partition_Control *the_partition,
- Chain_Node *the_buffer
-)
-{
- _Chain_Append( &the_partition->Memory, the_buffer );
-}
-
-/*PAGE
- *
- * _Partition_Is_buffer_on_boundary
- *
- */
-
-STATIC INLINE boolean _Partition_Is_buffer_on_boundary (
- void *the_buffer,
- Partition_Control *the_partition
-)
-{
- unsigned32 offset;
-
- offset = (unsigned32) _Addresses_Subtract(
- the_buffer,
- the_partition->starting_address
- );
-
- return ((offset % the_partition->buffer_size) == 0);
-}
-
-/*PAGE
- *
- * _Partition_Is_buffer_valid
- *
- */
-
-STATIC INLINE boolean _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 )
- );
-}
-
-/*PAGE
- *
- * _Partition_Is_buffer_size_aligned
- *
- */
-
-STATIC INLINE boolean _Partition_Is_buffer_size_aligned (
- unsigned32 buffer_size
-)
-{
- return ((buffer_size % CPU_PARTITION_ALIGNMENT) == 0);
-}
-
-/*PAGE
- *
- * _Partition_Allocate
- *
- */
-
-STATIC INLINE Partition_Control *_Partition_Allocate ( void )
-{
- return (Partition_Control *) _Objects_Allocate( &_Partition_Information );
-}
-
-/*PAGE
- *
- * _Partition_Free
- *
- */
-
-STATIC INLINE void _Partition_Free (
- Partition_Control *the_partition
-)
-{
- _Objects_Free( &_Partition_Information, &the_partition->Object );
-}
-
-/*PAGE
- *
- * _Partition_Get
- *
- */
-
-STATIC INLINE Partition_Control *_Partition_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Partition_Control *)
- _Objects_Get( &_Partition_Information, id, location );
-}
-
-/*PAGE
- *
- * _Partition_Is_null
- *
- */
-
-STATIC INLINE boolean _Partition_Is_null (
- Partition_Control *the_partition
-)
-{
- return ( the_partition == NULL );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/ratemon.inl b/cpukit/rtems/inline/rtems/rtems/ratemon.inl
deleted file mode 100644
index b748f919b3..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/ratemon.inl
+++ /dev/null
@@ -1,113 +0,0 @@
-/* ratemon.inl
- *
- * This file contains the static inline implementation of the inlined
- * routines in the Rate Monotonic Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RATE_MONOTONIC_inl
-#define __RATE_MONOTONIC_inl
-
-/*PAGE
- *
- * _Rate_monotonic_Allocate
- *
- */
-
-STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Allocate( void )
-{
- return (Rate_monotonic_Control *)
- _Objects_Allocate( &_Rate_monotonic_Information );
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Free
- *
- */
-
-STATIC INLINE void _Rate_monotonic_Free (
- Rate_monotonic_Control *the_period
-)
-{
- _Objects_Free( &_Rate_monotonic_Information, &the_period->Object );
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Get
- *
- */
-
-STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Rate_monotonic_Control *)
- _Objects_Get( &_Rate_monotonic_Information, id, location );
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Is_active
- *
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_active (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period->state == RATE_MONOTONIC_ACTIVE);
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Is_inactive
- *
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_inactive (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period->state == RATE_MONOTONIC_INACTIVE);
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Is_expired
- *
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_expired (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period->state == RATE_MONOTONIC_EXPIRED);
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Is_null
- *
- */
-
-STATIC INLINE boolean _Rate_monotonic_Is_null (
- Rate_monotonic_Control *the_period
-)
-{
- return (the_period == NULL);
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/region.inl b/cpukit/rtems/inline/rtems/rtems/region.inl
deleted file mode 100644
index 5a0e4da1bf..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/region.inl
+++ /dev/null
@@ -1,101 +0,0 @@
-/* region.inl
- *
- * This file contains the macro implementation of the inlined
- * routines from the Region Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __REGION_inl
-#define __REGION_inl
-
-/*PAGE
- *
- * _Region_Allocate
- *
- */
-
-STATIC INLINE Region_Control *_Region_Allocate( void )
-{
- return (Region_Control *) _Objects_Allocate( &_Region_Information );
-}
-
-/*PAGE
- *
- * _Region_Free
- *
- */
-
-STATIC INLINE void _Region_Free (
- Region_Control *the_region
-)
-{
- _Objects_Free( &_Region_Information, &the_region->Object );
-}
-
-/*PAGE
- *
- * _Region_Get
- *
- */
-
-STATIC INLINE Region_Control *_Region_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Region_Control *)
- _Objects_Get( &_Region_Information, id, location );
-}
-
-/*PAGE
- *
- * _Region_Allocate_segment
- *
- */
-
-STATIC INLINE void *_Region_Allocate_segment (
- Region_Control *the_region,
- unsigned32 size
-)
-{
- return _Heap_Allocate( &the_region->Memory, size );
-}
-
-/*PAGE
- *
- * _Region_Free_segment
- *
- */
-
-STATIC INLINE boolean _Region_Free_segment (
- Region_Control *the_region,
- void *the_segment
-)
-{
- return _Heap_Free( &the_region->Memory, the_segment );
-}
-
-/*PAGE
- *
- * _Region_Is_null
- *
- */
-
-STATIC INLINE boolean _Region_Is_null (
- Region_Control *the_region
-)
-{
- return ( the_region == NULL );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/sem.inl b/cpukit/rtems/inline/rtems/rtems/sem.inl
deleted file mode 100644
index 518684a97a..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/sem.inl
+++ /dev/null
@@ -1,73 +0,0 @@
-/* sem.inl
- *
- * This file contains the static inlin implementation of the inlined
- * routines from the Semaphore Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __SEMAPHORE_inl
-#define __SEMAPHORE_inl
-
-/*PAGE
- *
- * _Semaphore_Allocate
- *
- */
-
-STATIC INLINE Semaphore_Control *_Semaphore_Allocate( void )
-{
- return (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information );
-}
-
-/*PAGE
- *
- * _Semaphore_Free
- *
- */
-
-STATIC INLINE void _Semaphore_Free (
- Semaphore_Control *the_semaphore
-)
-{
- _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );
-}
-
-/*PAGE
- *
- * _Semaphore_Get
- *
- */
-
-STATIC INLINE Semaphore_Control *_Semaphore_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Semaphore_Control *)
- _Objects_Get( &_Semaphore_Information, id, location );
-}
-
-/*PAGE
- *
- * _Semaphore_Is_null
- *
- */
-
-STATIC INLINE boolean _Semaphore_Is_null (
- Semaphore_Control *the_semaphore
-)
-{
- return ( the_semaphore == NULL );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/status.inl b/cpukit/rtems/inline/rtems/rtems/status.inl
deleted file mode 100644
index bd158e535b..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/status.inl
+++ /dev/null
@@ -1,60 +0,0 @@
-/* inline/status.inl
- *
- * This include file contains the implementations of the inlined
- * routines for the status package.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __INLINE_STATUS_inl
-#define __INLINE_STATUS_inl
-
-/*PAGE
- *
- * rtems_is_status_successful
- *
- */
-
-STATIC INLINE boolean rtems_is_status_successful(
- rtems_status_code code
-)
-{
- return (code == RTEMS_SUCCESSFUL);
-}
-
-/*PAGE
- *
- * rtems_are_statuses_equal
- *
- */
-
-STATIC INLINE boolean rtems_are_statuses_equal(
- rtems_status_code code1,
- rtems_status_code code2
-)
-{
- return (code1 == code2);
-}
-
-/*
- * _Status_Is_proxy_blocking
- *
- */
-
-STATIC INLINE boolean _Status_Is_proxy_blocking (
- rtems_status_code code
-)
-{
- return (code == RTEMS_PROXY_BLOCKING);
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/tasks.inl b/cpukit/rtems/inline/rtems/rtems/tasks.inl
deleted file mode 100644
index d5df18831a..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/tasks.inl
+++ /dev/null
@@ -1,90 +0,0 @@
-/* tasks.inl
- *
- * This file contains the static inline implementation of all inlined
- * routines in the with RTEMS Tasks Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_TASKS_inl
-#define __RTEMS_TASKS_inl
-
-/*PAGE
- *
- * _RTEMS_tasks_Allocate
- *
- */
-
-STATIC INLINE Thread_Control *_RTEMS_tasks_Allocate( void )
-{
- return (Thread_Control *) _Objects_Allocate( &_Thread_Information );
-}
-
-/*PAGE
- *
- * _RTEMS_tasks_Free
- *
- */
-
-STATIC INLINE void _RTEMS_tasks_Free (
- Thread_Control *the_task
-)
-{
- _Objects_Free( &_Thread_Information, &the_task->Object );
-}
-
-/*PAGE
- *
- * _RTEMS_tasks_Cancel_wait
- *
- */
-
-STATIC INLINE void _RTEMS_tasks_Cancel_wait(
- Thread_Control *the_thread
-)
-{
- States_Control state;
- States_Control remote_state;
-
- state = the_thread->current_state;
-
- if ( _States_Is_waiting_on_thread_queue( state ) ) {
- if ( _States_Is_waiting_for_rpc_reply( state ) &&
- _States_Is_locally_blocked( state ) ) {
- remote_state = _States_Clear(
- STATES_WAITING_FOR_RPC_REPLY | STATES_TRANSIENT,
- state
- );
-
- switch ( remote_state ) {
-
- case STATES_WAITING_FOR_BUFFER:
- _Partition_MP_Send_extract_proxy( the_thread );
- break;
- case STATES_WAITING_FOR_SEGMENT:
- _Region_MP_Send_extract_proxy( the_thread );
- break;
- case STATES_WAITING_FOR_SEMAPHORE:
- _Semaphore_MP_Send_extract_proxy( the_thread );
- break;
- case STATES_WAITING_FOR_MESSAGE:
- _Message_queue_MP_Send_extract_proxy( the_thread );
- break;
- }
- }
- _Thread_queue_Extract( the_thread->Wait.queue, the_thread );
- }
- else if ( _Watchdog_Is_active( &the_thread->Timer ) )
- (void) _Watchdog_Remove( &the_thread->Timer );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/inline/rtems/rtems/timer.inl b/cpukit/rtems/inline/rtems/rtems/timer.inl
deleted file mode 100644
index 7af3b9fa3d..0000000000
--- a/cpukit/rtems/inline/rtems/rtems/timer.inl
+++ /dev/null
@@ -1,112 +0,0 @@
-/* timer.inl
- *
- * This file contains the static inline implementation of the inlined routines
- * from the Timer Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __TIMER_inl
-#define __TIMER_inl
-
-/*PAGE
- *
- * _Timer_Allocate
- *
- */
-
-STATIC INLINE Timer_Control *_Timer_Allocate( void )
-{
- return (Timer_Control *) _Objects_Allocate( &_Timer_Information );
-}
-
-/*PAGE
- *
- * _Timer_Free
- *
- */
-
-STATIC INLINE void _Timer_Free (
- Timer_Control *the_timer
-)
-{
- _Objects_Free( &_Timer_Information, &the_timer->Object );
-}
-
-/*PAGE
- *
- * _Timer_Get
- *
- */
-
-STATIC INLINE Timer_Control *_Timer_Get (
- Objects_Id id,
- Objects_Locations *location
-)
-{
- return (Timer_Control *)
- _Objects_Get( &_Timer_Information, id, location );
-}
-
-/*PAGE
- *
- * _Timer_Is_interval_class
- *
- */
-
-STATIC INLINE boolean _Timer_Is_interval_class (
- Timer_Classes the_class
-)
-{
- return ( the_class == TIMER_INTERVAL );
-}
-
-/*PAGE
- *
- * _Timer_Is_time_of_day_class
- *
- */
-
-STATIC INLINE boolean _Timer_Is_timer_of_day_class (
- Timer_Classes the_class
-)
-{
- return ( the_class == TIMER_TIME_OF_DAY );
-}
-
-/*PAGE
- *
- * _Timer_Is_dormant_class
- *
- */
-
-STATIC INLINE boolean _Timer_Is_dormant_class (
- Timer_Classes the_class
-)
-{
- return ( the_class == TIMER_DORMANT );
-}
-
-/*PAGE
- *
- * _Timer_Is_null
- *
- */
-
-STATIC INLINE boolean _Timer_Is_null (
- Timer_Control *the_timer
-)
-{
- return ( the_timer == NULL );
-}
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/asr.inl b/cpukit/rtems/macros/rtems/rtems/asr.inl
deleted file mode 100644
index 421755879b..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/asr.inl
+++ /dev/null
@@ -1,89 +0,0 @@
-/* macros/asr.h
- *
- * This include file contains the implemenation of all routines
- * associated with the asynchronous signal handler which are inlined.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __INLINE_ASR_h
-#define __INLINE_ASR_h
-
-#include <rtems/isr.h>
-
-/*PAGE
- *
- * _ASR_Initialize
- *
- */
-
-#define _ASR_Initialize( _information ) \
-{ \
- (_information)->handler = NULL; \
- (_information)->mode_set = RTEMS_DEFAULT_MODES; \
- (_information)->signals_posted = 0; \
- (_information)->signals_pending = 0; \
- (_information)->nest_level = 0; \
-}
-
-/*PAGE
- *
- * _ASR_Swap_signals
- *
- */
-
-#define _ASR_Swap_signals( _information ) \
-{ \
- rtems_signal_set _signals; \
- ISR_Level _level; \
- \
- _ISR_Disable( _level ); \
- _signals = (_information)->signals_pending; \
- (_information)->signals_pending = (_information)->signals_posted; \
- (_information)->signals_posted = _signals; \
- _ISR_Enable( _level ); \
-}
-
-/*PAGE
- *
- * _ASR_Is_null_handler
- *
- */
-
-#define _ASR_Is_null_handler( _asr_handler ) \
- ( (_asr_handler) == NULL )
-
-/*PAGE
- *
- * _ASR_Are_signals_pending
- *
- */
-
-#define _ASR_Are_signals_pending( _information ) \
- ( (_information)->signals_posted != 0 )
-
-/*PAGE
- *
- * _ASR_Post_signals
- *
- */
-
-#define _ASR_Post_signals( _signals, _signal_set ) \
- do { \
- ISR_Level _level; \
- \
- _ISR_Disable( _level ); \
- *(_signal_set) |= (_signals); \
- _ISR_Enable( _level ); \
- } while ( 0 )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/attr.inl b/cpukit/rtems/macros/rtems/rtems/attr.inl
deleted file mode 100644
index 602622ca35..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/attr.inl
+++ /dev/null
@@ -1,91 +0,0 @@
-/* macros/attr.h
- *
- * This include file contains all of the inlined routines associated
- * with attributes.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MACROS_ATTRIBUTES_h
-#define __MACROS_ATTRIBUTES_h
-
-/*PAGE
- *
- * _Attributes_Set
- */
-
-#define _Attributes_Set( _new_attributes, _attribute_set ) \
- ( (_attribute_set) | (_new_attributes) )
-
-/*PAGE
- *
- * _Attributes_Clear
- */
-
-#define _Attributes_Clear( _attribute_set, _mask ) \
- ( (_attribute_set) & ~(_mask) )
-
-/*PAGE
- *
- * _Attributes_Is_floating_point
- *
- */
-
-#define _Attributes_Is_floating_point( _attribute_set ) \
- ( (_attribute_set) & RTEMS_FLOATING_POINT )
-
-/*PAGE
- *
- * _Attributes_Is_global
- *
- */
-
-#define _Attributes_Is_global( _attribute_set ) \
- ( (_attribute_set) & RTEMS_GLOBAL )
-
-/*PAGE
- *
- * _Attributes_Is_priority
- *
- */
-
-#define _Attributes_Is_priority( _attribute_set ) \
- ( (_attribute_set) & RTEMS_PRIORITY )
-
-/*PAGE
- *
- * _Attributes_Is_limit
- *
- */
-
-#define _Attributes_Is_limit( _attribute_set ) \
- ( (_attribute_set) & RTEMS_LIMIT )
-
-/*PAGE
- *
- * _Attributes_Is_binary_semaphore
- *
- */
-
-#define _Attributes_Is_binary_semaphore( _attribute_set ) \
- ( (_attribute_set) & RTEMS_BINARY_SEMAPHORE )
-
-/*PAGE
- *
- * _Attributes_Is_inherit_priority
- *
- */
-
-#define _Attributes_Is_inherit_priority( _attribute_set ) \
- ( (_attribute_set) & RTEMS_INHERIT_PRIORITY )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/dpmem.inl b/cpukit/rtems/macros/rtems/rtems/dpmem.inl
deleted file mode 100644
index 3e1d7bce95..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/dpmem.inl
+++ /dev/null
@@ -1,59 +0,0 @@
-/* macros/dpmem.h
- *
- * This include file contains the inline routine used in conjunction
- * with the Dual Ported Memory Manager
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MACROS_DPMEM_h
-#define __MACROS_DPMEM_h
-
-/*PAGE
- *
- * _Dual_ported_memory_Allocate
- *
- */
-
-#define _Dual_ported_memory_Allocate() \
- (Dual_ported_memory_Control *) \
- _Objects_Allocate( &_Dual_ported_memory_Information )
-
-/*PAGE
- *
- * _Dual_ported_memory_Free
- *
- */
-
-#define _Dual_ported_memory_Free( _the_port ) \
- _Objects_Free( &_Dual_ported_memory_Information, &(_the_port)->Object )
-
-/*PAGE
- *
- * _Dual_ported_memory_Get
- *
- */
-
-#define _Dual_ported_memory_Get( _id, _location ) \
- (Dual_ported_memory_Control *) \
- _Objects_Get( &_Dual_ported_memory_Information, (_id), (_location) )
-
-
-/*PAGE
- *
- * _Dual_ported_memory_Is_null
- */
-
-#define _Dual_ported_memory_Is_null( _the_port ) \
- ( (_the_port) == NULL )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/event.inl b/cpukit/rtems/macros/rtems/rtems/event.inl
deleted file mode 100644
index 1d4cb78237..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/event.inl
+++ /dev/null
@@ -1,28 +0,0 @@
-/* macros/event.h
- *
- * This include file contains the implementation of macros for
- * the Event Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MACROS_EVENT_h
-#define __MACROS_EVENT_h
-
-/*
- * Event_Manager_initialization
- */
-
-#define _Event_Manager_initialization() \
- _Event_Sync = FALSE
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/eventset.inl b/cpukit/rtems/macros/rtems/rtems/eventset.inl
deleted file mode 100644
index 1803d18637..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/eventset.inl
+++ /dev/null
@@ -1,53 +0,0 @@
-/* eventset.inl
- *
- * This include file contains the macro implementation of inlined
- * routines in the event set object.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __EVENT_SET_inl
-#define __EVENT_SET_inl
-
-/*PAGE
- *
- * _Event_sets_Is_empty
- */
-
-#define _Event_sets_Is_empty( _the_event_set ) \
- ((_the_event_set) == 0 )
-
-/*PAGE
- *
- * _Event_sets_Is_empty
- */
-
-#define _Event_sets_Post( _the_new_events, _the_event_set ) \
- *(_the_event_set) |= (_the_new_events)
-
-/*PAGE
- *
- * _Event_sets_Is_empty
- */
-
-#define _Event_sets_Get( _the_event_set, _the_event_condition ) \
- ((_the_event_set) & (_the_event_condition))
-
-/*PAGE
- *
- * _Event_sets_Clear
- */
-
-#define _Event_sets_Clear( _the_event_set, _the_mask ) \
- ((_the_event_set) & ~(_the_mask))
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/message.inl b/cpukit/rtems/macros/rtems/rtems/message.inl
deleted file mode 100644
index 5415708ac5..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/message.inl
+++ /dev/null
@@ -1,118 +0,0 @@
-/* message.inl
- *
- * This include file contains the macro implementation of all
- * inlined routines in the Message Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MESSAGE_QUEUE_inl
-#define __MESSAGE_QUEUE_inl
-
-/*PAGE
- *
- * _Message_queue_Copy_buffer
- */
-
-#define _Message_queue_Copy_buffer( _source, _destination ) \
- *(Message_queue_Buffer *)(_destination) = \
- *(Message_queue_Buffer *)(_source)
-
-/*PAGE
- *
- * _Message_queue_Allocate_message_buffer
- *
- */
-
-#define _Message_queue_Allocate_message_buffer() \
- (Message_queue_Buffer_control *) \
- _Chain_Get( &_Message_queue_Inactive_messages )
-
-/*PAGE
- *
- * _Message_queue_Free_message_buffer
- *
- */
-
-#define _Message_queue_Free_message_buffer( _the_message ) \
- _Chain_Append( &_Message_queue_Inactive_messages, &(_the_message)->Node )
-
-/*PAGE
- *
- * _Message_queue_Get_pending_message
- *
- */
-
-#define _Message_queue_Get_pending_message( _the_message_queue ) \
- (Message_queue_Buffer_control *) \
- _Chain_Get_unprotected( &(_the_message_queue)->Pending_messages )
-
-/*PAGE
- *
- * _Message_queue_Append
- *
- */
-
-#define _Message_queue_Append( _the_message_queue, _the_message ) \
- _Chain_Append( &(_the_message_queue)->Pending_messages, \
- &(_the_message)->Node )
-
-/*PAGE
- *
- * _Message_queue_Prepend
- *
- */
-
-#define _Message_queue_Prepend( _the_message_queue, _the_message ) \
- _Chain_Prepend( &(_the_message_queue)->Pending_messages, \
- &(_the_message)->Node )
-
-/*PAGE
- *
- * _Message_queue_Is_null
- *
- */
-
-#define _Message_queue_Is_null( _the_message_queue ) \
- ( (_the_message_queue) == NULL )
-
-/*PAGE
- *
- * _Message_queue_Allocate
- *
- */
-
-#define _Message_queue_Allocate() \
- (Message_queue_Control *) \
- _Objects_Allocate( &_Message_queue_Information )
-
-/*PAGE
- *
- * _Message_queue_Free
- *
- */
-
-#define _Message_queue_Free( _the_message_queue ) \
- _Objects_Free( &_Message_queue_Information, \
- &(_the_message_queue)->Object )
-
-/*PAGE
- *
- * _Message_queue_Get
- *
- */
-
-#define _Message_queue_Get( _id, _location ) \
- (Message_queue_Control *) \
- _Objects_Get( &_Message_queue_Information, (_id), (_location) )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/modes.inl b/cpukit/rtems/macros/rtems/rtems/modes.inl
deleted file mode 100644
index f8ac061dce..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/modes.inl
+++ /dev/null
@@ -1,101 +0,0 @@
-/* modes.inl
- *
- * This include file contains the macro implementation of the
- * inlined routines in the Mode Handler.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MODES_inl
-#define __MODES_inl
-
-/*PAGE
- *
- * RTEMS_INTERRUPT_LEVEL
- */
-
-#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \
- ( (_mode_set) & RTEMS_INTERRUPT_MASK )
-
-/*PAGE
- *
- * _Modes_Mask_changed
- *
- */
-
-#define _Modes_Mask_changed( _mode_set, _masks ) \
- ( (_mode_set) & (_masks) )
-
-/*PAGE
- *
- * _Modes_Is_asr_disabled
- *
- */
-
-#define _Modes_Is_asr_disabled( _mode_set ) \
- ( (_mode_set) & RTEMS_ASR_MASK )
-
-/*PAGE
- *
- * _Modes_Is_preempt
- *
- */
-
-#define _Modes_Is_preempt( _mode_set ) \
- ( ( (_mode_set) & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT )
-
-/*PAGE
- *
- * _Modes_Is_timeslice
- *
- */
-
-#define _Modes_Is_timeslice( _mode_set ) \
- (((_mode_set) & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == \
- (RTEMS_TIMESLICE|RTEMS_PREEMPT) )
-
-/*PAGE
- *
- * _Modes_Get_interrupt_level
- *
- */
-
-#define _Modes_Get_interrupt_level( _mode_set ) \
- ( (_mode_set) & RTEMS_INTERRUPT_MASK )
-
-/*PAGE
- *
- * _Modes_Set_interrupt_level
- *
- */
-
-#define _Modes_Set_interrupt_level( _mode_set ) \
- _ISR_Set_level( _Modes_Get_interrupt_level( (_mode_set) ) )
-
-/*PAGE
- *
- * _Modes_Change
- *
- */
-
-#define _Modes_Change( _old_mode_set, _new_mode_set, \
- _mask, _out_mode_set, _changed ) \
- { rtems_mode _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; \
- }
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/options.inl b/cpukit/rtems/macros/rtems/rtems/options.inl
deleted file mode 100644
index 7c14e4fe4f..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/options.inl
+++ /dev/null
@@ -1,39 +0,0 @@
-/* options.inl
- *
- * This file contains the macro implementation of the inlined
- * routines from the Options Handler.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __OPTIONS_inl
-#define __OPTIONS_inl
-
-/*PAGE
- *
- * _Options_Is_no_wait
- *
- */
-
-#define _Options_Is_no_wait( _option_set ) \
- ( (_option_set) & RTEMS_NO_WAIT )
-
-/*PAGE
- *
- * _Options_Is_any
- *
- */
-
-#define _Options_Is_any( _option_set ) \
- ( (_option_set) & RTEMS_EVENT_ANY )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/part.inl b/cpukit/rtems/macros/rtems/rtems/part.inl
deleted file mode 100644
index 55c188b210..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/part.inl
+++ /dev/null
@@ -1,117 +0,0 @@
-/* part.inl
- *
- * This file contains the macro implementation of all inlined routines
- * in the Partition Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __PARTITION_inl
-#define __PARTITION_inl
-
-/*PAGE
- *
- * _Partition_Allocate_buffer
- *
- */
-
-#define _Partition_Allocate_buffer( _the_partition ) \
- _Chain_Get( &(_the_partition)->Memory )
-
-/*PAGE
- *
- * _Partition_Free_buffer
- *
- */
-
-#define _Partition_Free_buffer( _the_partition, _the_buffer ) \
- _Chain_Append( &(_the_partition)->Memory, (_the_buffer) )
-
-/*PAGE
- *
- * _Partition_Is_buffer_on_boundary
- *
- */
-
-#define _Partition_Is_buffer_on_boundary( _the_buffer, _the_partition ) \
- ((((unsigned32) _Addresses_Subtract( \
- (_the_buffer), \
- (_the_partition)->starting_address ) \
- ) % \
- (_the_partition)->buffer_size) == 0)
-
-/*PAGE
- *
- * _Partition_Is_buffer_valid
- *
- */
-
-#define _Partition_Is_buffer_valid( _the_buffer, _the_partition ) \
- ( \
- _Addresses_Is_in_range( \
- (_the_buffer), \
- (_the_partition)->starting_address, \
- _Addresses_Add_offset( \
- (_the_partition)->starting_address, \
- (_the_partition)->length \
- ) \
- ) && \
- _Partition_Is_buffer_on_boundary( (_the_buffer), (_the_partition) ) \
- )
-
-/*PAGE
- *
- * _Partition_Is_buffer_size_aligned
- *
- */
-
-#define _Partition_Is_buffer_size_aligned( _buffer_size ) \
- ((_buffer_size) % CPU_PARTITION_ALIGNMENT == 0)
-
-/*PAGE
- *
- * _Partition_Allocate
- *
- */
-
-#define _Partition_Allocate() \
- (Partition_Control *) _Objects_Allocate( &_Partition_Information )
-
-/*PAGE
- *
- * _Partition_Free
- *
- */
-
-#define _Partition_Free( _the_partition ) \
- _Objects_Free( &_Partition_Information, &(_the_partition)->Object )
-
-/*PAGE
- *
- * _Partition_Get
- *
- */
-
-#define _Partition_Get( _id, _location ) \
- (Partition_Control *) \
- _Objects_Get( &_Partition_Information, (_id), (_location) )
-
-/*PAGE
- *
- * _Partition_Is_null
- *
- */
-
-#define _Partition_Is_null( _the_partition ) \
- ( (_the_partition) == NULL )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/ratemon.inl b/cpukit/rtems/macros/rtems/rtems/ratemon.inl
deleted file mode 100644
index ebb182e6f1..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/ratemon.inl
+++ /dev/null
@@ -1,85 +0,0 @@
-/* ratemon.inl
- *
- * This file contains the macro implementation of the inlined
- * routines in the Rate Monotonic Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RATE_MONOTONIC_inl
-#define __RATE_MONOTONIC_inl
-
-/*PAGE
- *
- * _Rate_monotonic_Allocate
- *
- */
-
-#define _Rate_monotonic_Allocate() \
- (Rate_monotonic_Control *) \
- _Objects_Allocate( &_Rate_monotonic_Information )
-
-/*PAGE
- *
- * _Rate_monotonic_Free
- *
- */
-
-#define _Rate_monotonic_Free( _the_period ) \
- _Objects_Free( &_Rate_monotonic_Information, &(_the_period)->Object )
-
-/*PAGE
- *
- * _Rate_monotonic_Get
- *
- */
-
-#define _Rate_monotonic_Get( _id, _location ) \
- (Rate_monotonic_Control *) \
- _Objects_Get( &_Rate_monotonic_Information, (_id), (_location) )
-
-/*PAGE
- *
- * _Rate_monotonic_Is_active
- *
- */
-
-#define _Rate_monotonic_Is_active( _the_period ) \
- ((_the_period)->state == RATE_MONOTONIC_ACTIVE)
-
-/*PAGE
- *
- * _Rate_monotonic_Is_inactive
- *
- */
-
-#define _Rate_monotonic_Is_inactive( _the_period ) \
- ((_the_period)->state == RATE_MONOTONIC_INACTIVE)
-
-/*PAGE
- *
- * _Rate_monotonic_Is_expired
- *
- */
-
-#define _Rate_monotonic_Is_expired( _the_period ) \
- ((_the_period)->state == RATE_MONOTONIC_EXPIRED)
-
-/*PAGE
- *
- * _Rate_monotonic_Is_null
- *
- */
-
-#define _Rate_monotonic_Is_null( _the_period ) ( (_the_period) == NULL )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/region.inl b/cpukit/rtems/macros/rtems/rtems/region.inl
deleted file mode 100644
index 667d77e307..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/region.inl
+++ /dev/null
@@ -1,75 +0,0 @@
-/* region.inl
- *
- * This file contains the macro implementation of the inlined
- * routines from the Region Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __REGION_inl
-#define __REGION_inl
-
-/*PAGE
- *
- * _Region_Allocate
- *
- */
-
-#define _Region_Allocate() \
- (Region_Control *) _Objects_Allocate( &_Region_Information )
-
-/*PAGE
- *
- * _Region_Free
- *
- */
-
-#define _Region_Free( _the_region ) \
- _Objects_Free( &_Region_Information, &(_the_region)->Object )
-
-/*PAGE
- *
- * _Region_Get
- *
- */
-
-#define _Region_Get( _id, _location ) \
- (Region_Control *) \
- _Objects_Get( &_Region_Information, (_id), (_location) )
-
-/*PAGE
- *
- * _Region_Allocate_segment
- *
- */
-
-#define _Region_Allocate_segment( _the_region, _size ) \
- _Heap_Allocate( &(_the_region)->Memory, (_size) )
-
-/*PAGE
- *
- * _Region_Free_segment
- *
- */
-
-#define _Region_Free_segment( _the_region, _the_segment ) \
- _Heap_Free( &(_the_region)->Memory, (_the_segment) )
-
-/*PAGE
- *
- * _Region_Is_null
- *
- */
-
-#define _Region_Is_null( _the_region ) ( (_the_region) == NULL )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/sem.inl b/cpukit/rtems/macros/rtems/rtems/sem.inl
deleted file mode 100644
index 7e94069009..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/sem.inl
+++ /dev/null
@@ -1,58 +0,0 @@
-/* sem.inl
- *
- * This file contains the macro implementation of the inlined
- * routines from the Semaphore Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __SEMAPHORE_inl
-#define __SEMAPHORE_inl
-
-/*PAGE
- *
- * _Semaphore_Allocate
- *
- */
-
-#define _Semaphore_Allocate() \
- (Semaphore_Control *) _Objects_Allocate( &_Semaphore_Information )
-
-/*PAGE
- *
- * _Semaphore_Free
- *
- */
-
-#define _Semaphore_Free( _the_semaphore ) \
- _Objects_Free( &_Semaphore_Information, &(_the_semaphore)->Object )
-
-/*PAGE
- *
- * _Semaphore_Get
- *
- */
-
-#define _Semaphore_Get( _id, _location ) \
- (Semaphore_Control *) \
- _Objects_Get( &_Semaphore_Information, (_id), (_location) )
-
-/*PAGE
- *
- * _Semaphore_Is_null
- *
- */
-
-#define _Semaphore_Is_null( _the_semaphore ) \
- ( (_the_semaphore) == NULL )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/status.inl b/cpukit/rtems/macros/rtems/rtems/status.inl
deleted file mode 100644
index c4f8a523df..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/status.inl
+++ /dev/null
@@ -1,47 +0,0 @@
-/* macros/status.h
- *
- * This include file contains the implementations of the inlined
- * routines for the status package.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __MACROS_STATUS_h
-#define __MACROS_STATUS_h
-
-/*PAGE
- *
- * rtems_is_status_successful
- *
- */
-
-#define rtems_is_status_successful( _code ) \
- ( (_code) == RTEMS_SUCCESSFUL )
-
-/*PAGE
- *
- * rtems_are_statuses_equal
- *
- */
-
-#define rtems_are_statuses_equal( _code1, _code2 ) \
- ((_code1) == (_code2))
-
-/*
- * _Status_Is_proxy_blocking
- *
- */
-
-#define _Status_Is_proxy_blocking( _code ) \
- ( (_code) == RTEMS_PROXY_BLOCKING )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/tasks.inl b/cpukit/rtems/macros/rtems/rtems/tasks.inl
deleted file mode 100644
index 7b40cbf7fd..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/tasks.inl
+++ /dev/null
@@ -1,82 +0,0 @@
-/* tasks.inl
- *
- * This file contains the macro implementation of all inlined
- * routines in the with RTEMS Tasks Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __RTEMS_TASKS_inl
-#define __RTEMS_TASKS_inl
-
-/*PAGE
- *
- * _RTEMS_tasks_Allocate
- *
- */
-
-#define _RTEMS_tasks_Allocate() \
- (Thread_Control *) _Objects_Allocate( &_Thread_Information )
-
-/*PAGE
- *
- * _RTEMS_tasks_Free
- *
- */
-
-#define _RTEMS_tasks_Free( _the_task ) \
- _Objects_Free( &_Thread_Information, &(_the_task)->Object )
-
-/*PAGE
- *
- * _RTEMS_tasks_Cancel_wait
- *
- */
-
-#define _RTEMS_tasks_Cancel_wait( _the_thread ) \
- { \
- States_Control _state; \
- States_Control _remote_state; \
- \
- _state = (_the_thread)->current_state; \
- \
- if ( _States_Is_waiting_on_thread_queue( _state ) ) { \
- if ( _States_Is_waiting_for_rpc_reply( _state ) && \
- _States_Is_locally_blocked( _state ) ) { \
- _remote_state = _States_Clear( \
- STATES_WAITING_FOR_RPC_REPLY + STATES_TRANSIENT, \
- _state \
- ); \
- \
- switch ( _remote_state ) { \
- \
- case STATES_WAITING_FOR_BUFFER: \
- _Partition_MP_Send_extract_proxy( (_the_thread) ); \
- break; \
- case STATES_WAITING_FOR_SEGMENT: \
- _Region_MP_Send_extract_proxy( (_the_thread) ); \
- break; \
- case STATES_WAITING_FOR_SEMAPHORE: \
- _Semaphore_MP_Send_extract_proxy( (_the_thread) ); \
- break; \
- case STATES_WAITING_FOR_MESSAGE: \
- _Message_queue_MP_Send_extract_proxy( (_the_thread) ); \
- break; \
- } \
- } \
- _Thread_queue_Extract( (_the_thread)->Wait.queue, (_the_thread) ); \
- } \
- else if ( _Watchdog_Is_active( &(_the_thread)->Timer ) ) \
- (void) _Watchdog_Remove( &(_the_thread)->Timer ); \
- }
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/macros/rtems/rtems/timer.inl b/cpukit/rtems/macros/rtems/rtems/timer.inl
deleted file mode 100644
index 9026bed570..0000000000
--- a/cpukit/rtems/macros/rtems/rtems/timer.inl
+++ /dev/null
@@ -1,85 +0,0 @@
-/* timer.inl
- *
- * This file contains the macro implementation of the inlined routines
- * from the Timer Manager.
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#ifndef __TIMER_inl
-#define __TIMER_inl
-
-/*PAGE
- *
- * _Timer_Allocate
- *
- */
-
-#define _Timer_Allocate() \
- (Timer_Control *) _Objects_Allocate( &_Timer_Information )
-
-/*PAGE
- *
- * _Timer_Free
- *
- */
-
-#define _Timer_Free( _the_timer ) \
- _Objects_Free( &_Timer_Information, &(_the_timer)->Object )
-
-/*PAGE
- *
- * _Timer_Get
- *
- */
-
-#define _Timer_Get( _id, _location ) \
- (Timer_Control *) \
- _Objects_Get( &_Timer_Information, (_id), (_location) )
-
-/*PAGE
- *
- * _Timer_Is_interval_class
- *
- */
-
-#define _Timer_Is_interval_class( _the_class ) \
- ( (_the_class) == TIMER_INTERVAL )
-
-/*PAGE
- *
- * _Timer_Is_time_of_day_class
- *
- */
-
-#define _Timer_Is_time_of_day_class( _the_class ) \
- ( (_the_class) == TIMER_TIME_OF_DAY )
-
-/*PAGE
- *
- * _Timer_Is_dormant_class
- *
- */
-
-#define _Timer_Is_dormant_class( _the_class ) \
- ( (_the_class) == TIMER_DORMANT )
-
-/*PAGE
- *
- * _Timer_Is_null
- *
- */
-
-#define _Timer_Is_null( _the_timer ) \
- ( (_the_timer) == NULL )
-
-#endif
-/* end of include file */
diff --git a/cpukit/rtems/src/dpmem.c b/cpukit/rtems/src/dpmem.c
deleted file mode 100644
index 0aacecec5b..0000000000
--- a/cpukit/rtems/src/dpmem.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Dual Port Memory Manager
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/address.h>
-#include <rtems/dpmem.h>
-#include <rtems/object.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * _Dual_ported_memory_Manager_initialization
- *
- * This routine initializes all dual-ported memory manager related
- * data structures.
- *
- * Input parameters:
- * maximum_ports - number of ports to initialize
- *
- * Output parameters: NONE
- */
-
-void _Dual_ported_memory_Manager_initialization(
- unsigned32 maximum_ports
-)
-{
- _Objects_Initialize_information(
- &_Dual_ported_memory_Information,
- FALSE,
- maximum_ports,
- sizeof( Dual_ported_memory_Control )
- );
-}
-
-/*PAGE
- *
- * rtems_port_create
- *
- * This directive creates a port into a dual-ported memory area.
- *
- * Input parameters:
- * name - user defined port name
- * internal_start - internal start address of port
- * external_start - external start address of port
- * length - physical length in bytes
- * id - address of port id to set
- *
- * Output parameters:
- * id - port id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_port_create(
- Objects_Name name,
- void *internal_start,
- void *external_start,
- unsigned32 length,
- Objects_Id *id
-)
-{
- register Dual_ported_memory_Control *the_port;
-
- if ( !_Objects_Is_name_valid( name) )
- return ( RTEMS_INVALID_NAME );
-
- if ( !_Addresses_Is_aligned( internal_start ) ||
- !_Addresses_Is_aligned( external_start ) )
- return( RTEMS_INVALID_ADDRESS );
-
- _Thread_Disable_dispatch(); /* to prevent deletion */
-
- the_port = _Dual_ported_memory_Allocate();
-
- if ( !the_port ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- the_port->internal_base = internal_start;
- the_port->external_base = external_start;
- the_port->length = length - 1;
-
- _Objects_Open( &_Dual_ported_memory_Information,
- &the_port->Object, name );
- *id = the_port->Object.id;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_port_ident
- *
- * This directive returns the system ID associated with
- * the port name.
- *
- * Input parameters:
- * name - user defined port name
- * id - pointer to port id
- *
- * Output parameters:
- * *id - port id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_port_ident(
- Objects_Name name,
- Objects_Id *id
-)
-{
- return(
- _Objects_Name_to_id(
- &_Dual_ported_memory_Information,
- name,
- RTEMS_SEARCH_ALL_NODES,
- id
- )
- );
-}
-
-/*PAGE
- *
- * rtems_port_delete
- *
- * This directive allows a thread to delete a dual-ported memory area
- * specified by the dual-ported memory identifier.
- *
- * Input parameters:
- * id - dual-ported memory area id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_port_delete(
- Objects_Id id
-)
-{
- register Dual_ported_memory_Control *the_port;
- Objects_Locations location;
-
- the_port = _Dual_ported_memory_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- _Objects_Close( &_Dual_ported_memory_Information, &the_port->Object );
- _Dual_ported_memory_Free( the_port );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_port_internal_to_external
- *
- * This directive converts an internal dual-ported memory address to an
- * external dual-ported memory address. If the given internal address
- * is an invalid dual-ported address, then the external address is set
- * to the given internal address.
- *
- * Input parameters:
- * id - id of dual-ported memory object
- * internal - internal address to set
- * external - pointer to external address
- *
- * Output parameters:
- * external - external address
- * RTEMS_SUCCESSFUL - always succeeds
- */
-
-rtems_status_code rtems_port_internal_to_external(
- Objects_Id id,
- void *internal,
- void **external
-)
-{
- register Dual_ported_memory_Control *the_port;
- Objects_Locations location;
- unsigned32 ending;
-
- the_port = _Dual_ported_memory_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- ending = _Addresses_Subtract( internal, the_port->internal_base );
- if ( ending > the_port->length )
- *external = internal;
- else
- *external = _Addresses_Add_offset( the_port->external_base,
- ending );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_port_external_to_internal
- *
- * This directive converts an external dual-ported memory address to an
- * internal dual-ported memory address. If the given external address
- * is an invalid dual-ported address, then the internal address is set
- * to the given external address.
- *
- * Input parameters:
- * id - id of dp memory object
- * external - external address
- * internal - pointer of internal address to set
- *
- * Output parameters:
- * internal - internal address
- * RTEMS_SUCCESSFUL - always succeeds
- */
-
-rtems_status_code rtems_port_external_to_internal(
- Objects_Id id,
- void *external,
- void **internal
-)
-{
- register Dual_ported_memory_Control *the_port;
- Objects_Locations location;
- unsigned32 ending;
-
- the_port = _Dual_ported_memory_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- ending = _Addresses_Subtract( external, the_port->external_base );
- if ( ending > the_port->length )
- *internal = external;
- else
- *internal = _Addresses_Add_offset( the_port->internal_base,
- ending );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
diff --git a/cpukit/rtems/src/event.c b/cpukit/rtems/src/event.c
deleted file mode 100644
index 6a25ae81c3..0000000000
--- a/cpukit/rtems/src/event.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Event Manager
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/event.h>
-#include <rtems/isr.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/states.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * rtems_event_send
- *
- * This directive allows a thread send an event set to another thread.
- *
- * Input parameters:
- * id - thread id
- * event - event set
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_event_send(
- Objects_Id id,
- rtems_event_set event_in
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return(
- _Event_MP_Send_request_packet(
- EVENT_MP_SEND_REQUEST,
- id,
- event_in
- )
- );
- case OBJECTS_LOCAL:
- _Event_sets_Post( event_in, &the_thread->pending_events );
- _Event_Surrender( the_thread );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_event_receive
- *
- * This directive allows a thread to receive a set of events.
- *
- * Input parameters:
- * event_in - input event condition
- * option_set - options
- * ticks - number of ticks to wait (0 means wait forever)
- * event_out - pointer to output event set
- *
- * Output parameters:
- * event out - event set
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_event_receive(
- rtems_event_set event_in,
- rtems_option option_set,
- rtems_interval ticks,
- rtems_event_set *event_out
-)
-{
- if ( _Event_sets_Is_empty( event_in ) ) {
- *event_out = _Thread_Executing->pending_events;
- return( RTEMS_SUCCESSFUL );
- }
-
- _Thread_Disable_dispatch();
- _Event_Seize( event_in, option_set, ticks );
- _Thread_Enable_dispatch();
- *event_out = _Thread_Executing->events_out;
- return( _Thread_Executing->Wait.return_code );
-}
-
-/*PAGE
- *
- * _Event_Seize
- *
- * This routine attempts to satisfy the requested event condition
- * for the running thread.
- *
- * Input parameters:
- * event_in - the event condition to satisfy
- * option_set - acquire event options
- * ticks - interval to wait
- *
- * Output parameters: NONE
- *
- * INTERRUPT LATENCY:
- * available
- * wait
- * check sync
- */
-
-void _Event_Seize(
- rtems_event_set event_in,
- rtems_option option_set,
- rtems_interval ticks
-)
-{
- Thread_Control *executing;
- rtems_event_set seized_events;
- rtems_event_set pending_events;
- ISR_Level level;
-
- executing = _Thread_Executing;
- executing->Wait.return_code = RTEMS_SUCCESSFUL;
-
- _ISR_Disable( level );
- pending_events = executing->pending_events;
- seized_events = _Event_sets_Get( pending_events, event_in );
-
- if ( !_Event_sets_Is_empty( seized_events ) &&
- (seized_events == event_in || _Options_Is_any( option_set )) ) {
- executing->pending_events =
- _Event_sets_Clear( pending_events, seized_events );
- _ISR_Enable( level );
- executing->events_out = seized_events;
- return;
- }
-
- if ( _Options_Is_no_wait( option_set ) ) {
- _ISR_Enable( level );
- executing->Wait.return_code = RTEMS_UNSATISFIED;
- executing->events_out = seized_events;
- return;
- }
-
- _Event_Sync = TRUE;
- executing->Wait.option_set = option_set;
- executing->Wait.Extra.event_condition = event_in;
-
- _ISR_Enable( level );
- _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );
-
- if ( ticks ) {
- _Watchdog_Initialize(
- &executing->Timer,
- _Event_Timeout,
- executing->Object.id,
- NULL
- );
- _Watchdog_Insert_ticks(
- &executing->Timer,
- ticks,
- WATCHDOG_NO_ACTIVATE
- );
- }
-
- _ISR_Disable( level );
- if ( _Event_Sync == TRUE ) {
- _Event_Sync = FALSE;
- if ( ticks )
- _Watchdog_Activate( &executing->Timer );
- _ISR_Enable( level );
- return;
- }
- _ISR_Enable( level );
- (void) _Watchdog_Remove( &executing->Timer );
- _Thread_Unblock( executing );
- return;
-}
-
-/*PAGE
- *
- * _Event_Surrender
- *
- * This routines remove a thread from the specified threadq.
- *
- * Input parameters:
- * the_thread - pointer to thread to be dequeued
- *
- * Output parameters: NONE
- *
- * INTERRUPT LATENCY:
- * before flash
- * after flash
- * check sync
- */
-
-void _Event_Surrender(
- Thread_Control *the_thread
-)
-{
- ISR_Level level;
- rtems_event_set pending_events;
- rtems_event_set event_condition;
- rtems_event_set seized_events;
-
- _ISR_Disable( level );
- pending_events = the_thread->pending_events;
- event_condition = the_thread->Wait.Extra.event_condition;
-
- seized_events = _Event_sets_Get( pending_events, event_condition );
-
- if ( !_Event_sets_Is_empty( seized_events ) ) {
- if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {
- if ( seized_events == event_condition ||
- _Options_Is_any( the_thread->Wait.option_set ) ) {
- the_thread->pending_events =
- _Event_sets_Clear( pending_events, seized_events );
- (rtems_event_set *)the_thread->events_out = seized_events;
-
- _ISR_Flash( level );
-
- if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {
- _ISR_Enable( level );
- _Thread_Unblock( the_thread );
- }
- else {
- _Watchdog_Deactivate( &the_thread->Timer );
- _ISR_Enable( level );
- (void) _Watchdog_Remove( &the_thread->Timer );
- _Thread_Unblock( the_thread );
- }
- return;
- }
- }
- else if ( _Thread_Is_executing( the_thread ) && _Event_Sync == TRUE ) {
- if ( seized_events == event_condition ||
- _Options_Is_any( the_thread->Wait.option_set ) ) {
- the_thread->pending_events =
- _Event_sets_Clear( pending_events,seized_events );
- (rtems_event_set *)the_thread->events_out = seized_events;
- _Event_Sync = FALSE;
- }
- }
- }
- _ISR_Enable( level );
-}
-
-/*PAGE
- *
- * _Event_Timeout
- *
- * This routine processes a thread which timeouts while waiting to
- * receive an event_set. It is called by the watchdog handler.
- *
- * Input parameters:
- * id - thread id
- *
- * Output parameters: NONE
- */
-
-void _Event_Timeout(
- Objects_Id id,
- void *ignored
-)
-{
- Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- case OBJECTS_REMOTE: /* impossible */
- break;
- case OBJECTS_LOCAL:
- the_thread->Wait.return_code = RTEMS_TIMEOUT;
- _Thread_Unblock( the_thread );
- _Thread_Unnest_dispatch();
- break;
- }
-}
diff --git a/cpukit/rtems/src/eventmp.c b/cpukit/rtems/src/eventmp.c
deleted file mode 100644
index 4bc5925c2a..0000000000
--- a/cpukit/rtems/src/eventmp.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Multiprocessing Support for the Event Manager
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/event.h>
-#include <rtems/mpci.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/states.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * _Event_MP_Send_process_packet
- *
- * This subprogram is not needed since there are no process
- * packets to be sent by this manager.
- *
- */
-
-/*PAGE
- *
- * _Event_MP_Send_request_packet
- *
- */
-
-rtems_status_code _Event_MP_Send_request_packet (
- Event_MP_Remote_operations operation,
- Objects_Id event_id,
- rtems_event_set event_in
-)
-{
- Event_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case EVENT_MP_SEND_REQUEST:
-
- the_packet = _Event_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_EVENT;
- the_packet->Prefix.length = sizeof ( Event_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Event_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = event_id;
- the_packet->event_in = event_in;
-
- return
- _MPCI_Send_request_packet(
- rtems_get_node( event_id ),
- &the_packet->Prefix,
- STATES_READY
- );
-
- break;
-
- case EVENT_MP_SEND_RESPONSE:
- break;
-
- }
- /*
- * The following line is included to satisfy compilers which
- * produce warnings when a function does not end with a return.
- */
- return RTEMS_SUCCESSFUL;
-}
-
-/*PAGE
- *
- * _Event_MP_Send_response_packet
- *
- */
-
-void _Event_MP_Send_response_packet (
- Event_MP_Remote_operations operation,
- Thread_Control *the_thread
-)
-{
- Event_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case EVENT_MP_SEND_RESPONSE:
-
- the_packet = ( Event_MP_Packet *) the_thread->receive_packet;
-
-/*
- * The packet being returned already contains the class, length, and
- * to_convert fields, therefore they are not set in this routine.
- */
- the_packet->operation = operation;
- the_packet->Prefix.id = the_packet->Prefix.source_tid;
-
- _MPCI_Send_response_packet(
- rtems_get_node( the_packet->Prefix.source_tid ),
- &the_packet->Prefix
- );
- break;
-
- case EVENT_MP_SEND_REQUEST:
- break;
-
- }
-}
-
-/*PAGE
- *
- *
- * _Event_MP_Process_packet
- *
- */
-
-void _Event_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-)
-{
- Event_MP_Packet *the_packet;
- Thread_Control *the_thread;
-
- the_packet = (Event_MP_Packet *) the_packet_prefix;
-
- switch ( the_packet->operation ) {
-
- case EVENT_MP_SEND_REQUEST:
-
- the_packet->Prefix.return_code = rtems_event_send(
- the_packet->Prefix.id,
- the_packet->event_in
- );
-
- _Event_MP_Send_response_packet(
- EVENT_MP_SEND_RESPONSE,
- _Thread_Executing
- );
- break;
-
- case EVENT_MP_SEND_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _MPCI_Return_packet( the_packet_prefix );
-
- break;
-
- }
-}
-
-/*PAGE
- *
- * _Event_MP_Send_object_was_deleted
- *
- * This subprogram is not needed since there are no objects
- * deleted by this manager.
- *
- */
-
-/*PAGE
- *
- * _Event_MP_Send_extract_proxy
- *
- * This subprogram is not needed since there are no objects
- * deleted by this manager.
- *
- */
-
-/*PAGE
- *
- * _Event_MP_Get_packet
- *
- */
-
-Event_MP_Packet *_Event_MP_Get_packet ( void )
-{
- return ( (Event_MP_Packet *) _MPCI_Get_packet() );
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/intr.c b/cpukit/rtems/src/intr.c
deleted file mode 100644
index 25f5176967..0000000000
--- a/cpukit/rtems/src/intr.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Interrupt Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/isr.h>
-#include <rtems/stack.h>
-#include <rtems/intr.h>
-#include <rtems/wkspace.h>
-
-/* _Interrupt_Manager_initialization
- *
- * This routine initializes the interrupt manager.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- */
-
-void _Interrupt_Manager_initialization( void )
-{
-#if ( CPU_ALLOCATE_INTERRUPT_STACK == TRUE )
-
- if ( _CPU_Table.interrupt_stack_size < RTEMS_MINIMUM_STACK_SIZE )
- rtems_fatal_error_occurred( RTEMS_INVALID_SIZE );
-
- _CPU_Interrupt_stack_low =
- _Workspace_Allocate_or_fatal_error( _CPU_Table.interrupt_stack_size );
-
- _CPU_Interrupt_stack_high = _Addresses_Add_offset(
- _CPU_Interrupt_stack_low,
- _CPU_Table.interrupt_stack_size
- );
-
-#endif
-
-#if ( CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE )
- _CPU_Install_interrupt_stack();
-#endif
-
-}
-
-/* rtems_interrupt_catch
- *
- * This directive allows a thread to specify what action to take when
- * catching signals.
- *
- * Input parameters:
- * new_isr_handler - address of interrupt service routine (isr)
- * vector - interrupt vector number
- * old_isr_handler - address at which to store previous ISR address
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - always succeeds
- * *old_isr_handler - 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
-)
-{
- if ( !_ISR_Is_vector_number_valid( vector ) )
- return( RTEMS_INVALID_NUMBER );
-
- if ( !_ISR_Is_valid_user_handler( new_isr_handler ) )
- return( RTEMS_INVALID_ADDRESS );
-
- _ISR_Install_vector(
- vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler );
-
- return( RTEMS_SUCCESSFUL );
-}
diff --git a/cpukit/rtems/src/mp.c b/cpukit/rtems/src/mp.c
deleted file mode 100644
index f9522b2296..0000000000
--- a/cpukit/rtems/src/mp.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Multiprocessing Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/config.h>
-#include <rtems/cpu.h>
-#include <rtems/event.h>
-#include <rtems/fatal.h>
-#include <rtems/intthrd.h>
-#include <rtems/message.h>
-#include <rtems/mp.h>
-#include <rtems/mpci.h>
-#include <rtems/mppkt.h>
-#include <rtems/part.h>
-#include <rtems/sem.h>
-#include <rtems/signal.h>
-#include <rtems/states.h>
-#include <rtems/tasks.h>
-#include <rtems/thread.h>
-#include <rtems/threadq.h>
-#include <rtems/watchdog.h>
-
-/*PAGE
- *
- * _Multiprocessing_Manager_initialization
- *
- */
-
-void _Multiprocessing_Manager_initialization ( void )
-{
- if ( _Configuration_MP_table->node < 1 ||
- _Configuration_MP_table->node > _Configuration_MP_table->maximum_nodes )
- rtems_fatal_error_occurred( RTEMS_INVALID_NODE );
-
- _Internal_threads_Set_MP_receive_server( _Multiprocessing_Receive_server );
-}
-
-/*PAGE
- *
- * rtems_multiprocessing_announce
- *
- */
-
-void rtems_multiprocessing_announce ( void )
-{
- _Thread_MP_Ready();
-}
-
-/*PAGE
- *
- * _Multiprocessing_Receive_server
- *
- */
-
-Thread _Multiprocessing_Receive_server (
- Thread_Argument ignored
-)
-{
-
- rtems_packet_prefix *the_packet;
-
- _Thread_Dispatch_disable_level = 1;
-
- for ( ; ; ) {
-
- _Internal_threads_System_initialization_thread->Notepads[ 0 ] = 1;
-
- the_packet = _MPCI_Receive_packet();
-
- if ( ! the_packet ) {
- _Thread_MP_Block();
- _Thread_Dispatch_disable_level = 1;
- }
- else {
-
- _Thread_Executing->receive_packet = the_packet;
-
- switch ( the_packet->the_class ) {
-
- case RTEMS_MP_PACKET_INTERNAL_THREADS:
- _Internal_threads_MP_Process_packet( the_packet );
- break;
-
- case RTEMS_MP_PACKET_TASKS:
- _RTEMS_tasks_MP_Process_packet( the_packet );
- break;
-
- case RTEMS_MP_PACKET_MESSAGE_QUEUE:
- _Message_queue_MP_Process_packet( the_packet );
- break;
-
- case RTEMS_MP_PACKET_SEMAPHORE:
- _Semaphore_MP_Process_packet( the_packet );
- break;
-
- case RTEMS_MP_PACKET_PARTITION:
- _Partition_MP_Process_packet( the_packet );
- break;
-
- case RTEMS_MP_PACKET_REGION:
- /* Global regions are unsupported at this time */
- break;
-
- case RTEMS_MP_PACKET_EVENT:
- _Event_MP_Process_packet( the_packet );
- break;
-
- case RTEMS_MP_PACKET_SIGNAL:
- _Signal_MP_Process_packet( the_packet );
- break;
- }
- }
- }
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/msg.c b/cpukit/rtems/src/msg.c
deleted file mode 100644
index 7cfe683ce5..0000000000
--- a/cpukit/rtems/src/msg.c
+++ /dev/null
@@ -1,708 +0,0 @@
-/*
- * Message Queue Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/attr.h>
-#include <rtems/chain.h>
-#include <rtems/config.h>
-#include <rtems/isr.h>
-#include <rtems/message.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/states.h>
-#include <rtems/thread.h>
-#include <rtems/wkspace.h>
-#include <rtems/mpci.h>
-
-/*PAGE
- *
- * _Message_queue_Manager_initialization
- *
- * This routine initializes all message queue manager related
- * data structures.
- *
- * Input parameters:
- * maximum_message_queues - number of message queues to initialize
- * maximum_message - number of messages per queue
- *
- * Output parameters: NONE
- */
-
-void _Message_queue_Manager_initialization(
- unsigned32 maximum_message_queues,
- unsigned32 maximum_messages
-)
-{
-
- _Objects_Initialize_information(
- &_Message_queue_Information,
- TRUE,
- maximum_message_queues,
- sizeof( Message_queue_Control )
- );
-
- if ( maximum_messages == 0 ) {
-
- _Chain_Initialize_empty( &_Message_queue_Inactive_messages );
-
- } else {
-
-
- _Chain_Initialize(
- &_Message_queue_Inactive_messages,
- _Workspace_Allocate_or_fatal_error(
- maximum_messages * sizeof( Message_queue_Buffer_control )
- ),
- maximum_messages,
- sizeof( Message_queue_Buffer_control )
- );
-
- }
-}
-
-/*PAGE
- *
- * rtems_message_queue_create
- *
- * This directive creates a message queue by allocating and initializing
- * a message queue data structure.
- *
- * Input parameters:
- * name - user defined queue name
- * count - maximum message and reserved buffer count
- * attribute_set - process method
- * id - pointer to queue
- *
- * Output parameters:
- * id - queue id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_create(
- Objects_Name name,
- unsigned32 count,
- rtems_attribute attribute_set,
- Objects_Id *id
-)
-{
- register Message_queue_Control *the_message_queue;
-
- if ( !_Objects_Is_name_valid( name ) )
- return ( RTEMS_INVALID_NAME );
-
- if ( _Attributes_Is_global( attribute_set ) &&
- !_Configuration_Is_multiprocessing() )
- return( RTEMS_MP_NOT_CONFIGURED );
-
- _Thread_Disable_dispatch(); /* protects object pointer */
-
- the_message_queue = _Message_queue_Allocate();
-
- if ( !the_message_queue ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- if ( _Attributes_Is_global( attribute_set ) &&
- !( _Objects_MP_Open( &_Message_queue_Information, name,
- the_message_queue->Object.id, FALSE ) ) ) {
- _Message_queue_Free( the_message_queue );
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- if ( _Attributes_Is_limit( attribute_set ) )
- the_message_queue->maximum_pending_messages = count;
- else
- the_message_queue->maximum_pending_messages = 0xffffffff;
-
- the_message_queue->attribute_set = attribute_set;
- the_message_queue->number_of_pending_messages = 0;
-
- _Chain_Initialize_empty( &the_message_queue->Pending_messages );
-
- _Thread_queue_Initialize( &the_message_queue->Wait_queue, attribute_set,
- STATES_WAITING_FOR_MESSAGE );
-
- _Objects_Open( &_Message_queue_Information,
- &the_message_queue->Object, name );
-
- *id = the_message_queue->Object.id;
-
- if ( _Attributes_Is_global( attribute_set ) )
- _Message_queue_MP_Send_process_packet(
- MESSAGE_QUEUE_MP_ANNOUNCE_CREATE,
- the_message_queue->Object.id,
- name,
- 0
- );
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_message_queue_ident
- *
- * This directive returns the system ID associated with
- * the message queue name.
- *
- * Input parameters:
- * name - user defined message queue name
- * node - node(s) to be searched
- * id - pointer to message queue id
- *
- * Output parameters:
- * *id - message queue id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-)
-{
- return( _Objects_Name_to_id( &_Message_queue_Information, name,
- node, id ) );
-}
-
-/*PAGE
- *
- * rtems_message_queue_delete
- *
- * This directive allows a thread to delete the message queue specified
- * by the given queue identifier.
- *
- * Input parameters:
- * id - queue id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_delete(
- Objects_Id id
-)
-{
- register Message_queue_Control *the_message_queue;
- Objects_Locations location;
-
- the_message_queue = _Message_queue_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Dispatch();
- return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
- case OBJECTS_LOCAL:
- _Objects_Close( &_Message_queue_Information,
- &the_message_queue->Object );
-
- if ( the_message_queue->number_of_pending_messages != 0 )
- (void) _Message_queue_Flush_support( the_message_queue );
- else
- _Thread_queue_Flush(
- &the_message_queue->Wait_queue,
- _Message_queue_MP_Send_object_was_deleted
- );
-
- _Message_queue_Free( the_message_queue );
-
- if ( _Attributes_Is_global( the_message_queue->attribute_set ) ) {
- _Objects_MP_Close(
- &_Message_queue_Information,
- the_message_queue->Object.id
- );
-
- _Message_queue_MP_Send_process_packet(
- MESSAGE_QUEUE_MP_ANNOUNCE_DELETE,
- the_message_queue->Object.id,
- 0, /* Not used */
- MPCI_DEFAULT_TIMEOUT
- );
- }
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_message_queue_send
- *
- * This routine implements the directives q_send. It sends a
- * message to the specified message queue.
- *
- * Input parameters:
- * id - pointer to message queue
- * buffer - pointer to message buffer
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_send(
- Objects_Id id,
- void *buffer
-)
-{
- return( _Message_queue_Submit(
- id,
- (Message_queue_Buffer *) buffer,
- MESSAGE_QUEUE_SEND_REQUEST
- )
- );
-}
-
-/*PAGE
- *
- * rtems_message_queue_urgent
- *
- * This routine implements the directives q_urgent. It urgents a
- * message to the specified message queue.
- *
- * Input parameters:
- * id - pointer to message queue
- * buffer - pointer to message buffer
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_urgent(
- Objects_Id id,
- void *buffer
-)
-{
- return( _Message_queue_Submit(
- id,
- (Message_queue_Buffer *) buffer,
- MESSAGE_QUEUE_URGENT_REQUEST
- )
- );
-}
-
-/*PAGE
- *
- * rtems_message_queue_broadcast
- *
- * This directive sends a message for every thread waiting on the queue
- * designated by id.
- *
- * Input parameters:
- * id - pointer to message queue
- * buffer - pointer to message buffer
- * count - pointer to area to store number of threads made ready
- *
- * Output parameters:
- * count - number of threads made ready
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_broadcast(
- Objects_Id id,
- void *buffer,
- unsigned32 *count
-)
-{
- register Message_queue_Control *the_message_queue;
- Objects_Locations location;
- Thread_Control *the_thread;
- unsigned32 number_broadcasted;
-
- the_message_queue = _Message_queue_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Executing->Wait.return_argument = count;
-
- return
- _Message_queue_MP_Send_request_packet(
- MESSAGE_QUEUE_MP_BROADCAST_REQUEST,
- id,
- (Message_queue_Buffer *) buffer,
- 0, /* Not used */
- MPCI_DEFAULT_TIMEOUT
- );
-
- case OBJECTS_LOCAL:
- number_broadcasted = 0;
- while ( (the_thread =
- _Thread_queue_Dequeue(&the_message_queue->Wait_queue)) ) {
- number_broadcasted += 1;
- _Message_queue_Copy_buffer(
- (Message_queue_Buffer *) buffer,
- the_thread->Wait.return_argument
- );
-
- if ( !_Objects_Is_local_id( the_thread->Object.id ) ) {
- the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL;
-
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_RECEIVE_RESPONSE,
- id,
- the_thread
- );
- }
- }
- _Thread_Enable_dispatch();
- *count = number_broadcasted;
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_message_queue_receive
- *
- * This directive dequeues a message from the designated message queue
- * and copies it into the requesting thread's buffer.
- *
- * Input parameters:
- * id - queue id
- * buffer - pointer to message buffer
- * option_set - options on receive
- * timeout - number of ticks to wait
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_receive(
- Objects_Id id,
- void *buffer,
- unsigned32 option_set,
- rtems_interval timeout
-)
-{
- register Message_queue_Control *the_message_queue;
- Objects_Locations location;
-
- the_message_queue = _Message_queue_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Executing->Wait.return_argument = buffer;
- return
- _Message_queue_MP_Send_request_packet(
- MESSAGE_QUEUE_MP_RECEIVE_REQUEST,
- id,
- buffer,
- option_set,
- timeout
- );
-
- case OBJECTS_LOCAL:
- if ( !_Message_queue_Seize( the_message_queue, option_set, buffer ) )
- _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
- _Thread_Enable_dispatch();
- return( _Thread_Executing->Wait.return_code );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_message_queue_flush
- *
- * This directive removes all pending messages from a queue and returns
- * the number of messages removed. If no messages were present then
- * a count of zero is returned.
- *
- * Input parameters:
- * id - queue id
- * count - return area for count
- *
- * Output parameters:
- * count - number of messages removed ( 0 = empty queue )
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_message_queue_flush(
- Objects_Id id,
- unsigned32 *count
-)
-{
- register Message_queue_Control *the_message_queue;
- Objects_Locations location;
-
- the_message_queue = _Message_queue_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Executing->Wait.return_argument = count;
-
- return
- _Message_queue_MP_Send_request_packet(
- MESSAGE_QUEUE_MP_FLUSH_REQUEST,
- id,
- 0, /* Not used */
- 0, /* Not used */
- MPCI_DEFAULT_TIMEOUT
- );
-
- case OBJECTS_LOCAL:
- if ( the_message_queue->number_of_pending_messages != 0 )
- *count = _Message_queue_Flush_support( the_message_queue );
- else
- *count = 0;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * _Message_queue_Seize
- *
- * This kernel routine dequeues a message, copies the message buffer to
- * a given destination buffer, and frees the message buffer to the
- * inactive message pool.
- *
- * Input parameters:
- * the_message_queue - pointer to message queue
- * option_set - options on receive
- * the_buffer - pointer to message buffer to be filled
- *
- * Output parameters:
- * TRUE - if message received or RTEMS_NO_WAIT and no message
- * FALSE - if thread is to block
- *
- * NOTE: Dependent on BUFFER_LENGTH
- *
- * INTERRUPT LATENCY:
- * available
- * wait
- */
-
-boolean _Message_queue_Seize(
- Message_queue_Control *the_message_queue,
- rtems_option option_set,
- Message_queue_Buffer *buffer
-)
-{
- ISR_Level level;
- Message_queue_Buffer_control *the_message;
- Thread_Control *executing;
-
- executing = _Thread_Executing;
- executing->Wait.return_code = RTEMS_SUCCESSFUL;
- _ISR_Disable( level );
- if ( the_message_queue->number_of_pending_messages != 0 ) {
- the_message_queue->number_of_pending_messages -= 1;
-
- the_message = _Message_queue_Get_pending_message( the_message_queue );
- _ISR_Enable( level );
- _Message_queue_Copy_buffer( &the_message->Contents, buffer );
- _Message_queue_Free_message_buffer( the_message );
- return( TRUE );
- }
-
- if ( _Options_Is_no_wait( option_set ) ) {
- _ISR_Enable( level );
- executing->Wait.return_code = RTEMS_UNSATISFIED;
- return( TRUE );
- }
-
- the_message_queue->Wait_queue.sync = TRUE;
- executing->Wait.queue = &the_message_queue->Wait_queue;
- executing->Wait.id = the_message_queue->Object.id;
- executing->Wait.option_set = option_set;
- executing->Wait.return_argument = (unsigned32 *)buffer;
- _ISR_Enable( level );
- return( FALSE );
-}
-
-/*PAGE
- *
- * _Message_queue_Flush_support
- *
- * This message manager routine removes all messages from a message queue
- * and returns them to the inactive message pool.
- *
- * Input parameters:
- * the_message_queue - pointer to message queue
- *
- * Output parameters:
- * returns - number of messages placed on inactive chain
- *
- * INTERRUPT LATENCY:
- * only case
- */
-
-unsigned32 _Message_queue_Flush_support(
- Message_queue_Control *the_message_queue
-)
-{
- ISR_Level level;
- Chain_Node *inactive_first;
- Chain_Node *message_queue_first;
- Chain_Node *message_queue_last;
- unsigned32 count;
-
- _ISR_Disable( level );
- inactive_first = _Message_queue_Inactive_messages.first;
- message_queue_first = the_message_queue->Pending_messages.first;
- message_queue_last = the_message_queue->Pending_messages.last;
-
- _Message_queue_Inactive_messages.first = message_queue_first;
- message_queue_last->next = inactive_first;
- inactive_first->previous = message_queue_last;
- message_queue_first->previous =
- _Chain_Head( &_Message_queue_Inactive_messages );
-
- _Chain_Initialize_empty( &the_message_queue->Pending_messages );
-
- count = the_message_queue->number_of_pending_messages;
- the_message_queue->number_of_pending_messages = 0;
- _ISR_Enable( level );
- return( count );
-}
-
-/*PAGE
- *
- * _Message_queue_Submit
- *
- * This routine implements the directives q_send and q_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.
- *
- * Input parameters:
- * id - pointer to message queue
- * the_buffer - pointer to message buffer
- * submit_type - send or urgent message
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code _Message_queue_Submit(
- Objects_Id id,
- Message_queue_Buffer *buffer,
- Message_queue_Submit_types submit_type
-)
-{
- register Message_queue_Control *the_message_queue;
- Objects_Locations location;
- Thread_Control *the_thread;
- Message_queue_Buffer_control *the_message;
-
- the_message_queue = _Message_queue_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- switch ( submit_type ) {
- case MESSAGE_QUEUE_SEND_REQUEST:
- return
- _Message_queue_MP_Send_request_packet(
- MESSAGE_QUEUE_MP_SEND_REQUEST,
- id,
- buffer,
- 0, /* Not used */
- MPCI_DEFAULT_TIMEOUT
- );
-
- case MESSAGE_QUEUE_URGENT_REQUEST:
- return
- _Message_queue_MP_Send_request_packet(
- MESSAGE_QUEUE_MP_URGENT_REQUEST,
- id,
- buffer,
- 0, /* Not used */
- MPCI_DEFAULT_TIMEOUT
- );
- }
- case OBJECTS_LOCAL:
- the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
-
- if ( the_thread ) {
-
- _Message_queue_Copy_buffer(
- buffer,
- the_thread->Wait.return_argument
- );
-
- if ( !_Objects_Is_local_id( the_thread->Object.id ) ) {
- the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL;
-
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_RECEIVE_RESPONSE,
- id,
- the_thread
- );
-
- }
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- if ( the_message_queue->number_of_pending_messages ==
- the_message_queue->maximum_pending_messages ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- the_message = _Message_queue_Allocate_message_buffer();
-
- if ( !the_message ) {
- _Thread_Enable_dispatch();
- return( RTEMS_UNSATISFIED );
- }
-
- _Message_queue_Copy_buffer( buffer, &the_message->Contents );
-
- the_message_queue->number_of_pending_messages += 1;
-
- switch ( submit_type ) {
- case MESSAGE_QUEUE_SEND_REQUEST:
- _Message_queue_Append( the_message_queue, the_message );
- break;
- case MESSAGE_QUEUE_URGENT_REQUEST:
- _Message_queue_Prepend( the_message_queue, the_message );
- break;
- }
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
diff --git a/cpukit/rtems/src/msgmp.c b/cpukit/rtems/src/msgmp.c
deleted file mode 100644
index d3a1a02f33..0000000000
--- a/cpukit/rtems/src/msgmp.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * Multiprocessing Support for the Message Queue Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/message.h>
-#include <rtems/mpci.h>
-#include <rtems/msgmp.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*PAGE
- *
- * _Message_queue_MP_Send_process_packet
- *
- */
-
-void _Message_queue_MP_Send_process_packet (
- Message_queue_MP_Remote_operations operation,
- Objects_Id message_queue_id,
- Objects_Name name,
- Objects_Id proxy_id
-)
-{
- Message_queue_MP_Packet *the_packet;
- unsigned32 node;
-
- switch ( operation ) {
-
- case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE:
- case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE:
- case MESSAGE_QUEUE_MP_EXTRACT_PROXY:
-
- the_packet = _Message_queue_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_MESSAGE_QUEUE;
- the_packet->Prefix.length = sizeof ( Message_queue_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Message_queue_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = message_queue_id;
- the_packet->name = name;
- the_packet->proxy_id = proxy_id;
-
- if ( operation == MESSAGE_QUEUE_MP_EXTRACT_PROXY )
- node = rtems_get_node( message_queue_id );
- else
- node = MPCI_ALL_NODES;
-
- _MPCI_Send_process_packet( node, &the_packet->Prefix );
- break;
-
- case MESSAGE_QUEUE_MP_RECEIVE_REQUEST:
- case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE:
- case MESSAGE_QUEUE_MP_SEND_REQUEST:
- case MESSAGE_QUEUE_MP_SEND_RESPONSE:
- case MESSAGE_QUEUE_MP_URGENT_REQUEST:
- case MESSAGE_QUEUE_MP_URGENT_RESPONSE:
- case MESSAGE_QUEUE_MP_BROADCAST_REQUEST:
- case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE:
- case MESSAGE_QUEUE_MP_FLUSH_REQUEST:
- case MESSAGE_QUEUE_MP_FLUSH_RESPONSE:
- break;
-
- }
-}
-
-/*PAGE
- *
- * _Message_queue_MP_Send_request_packet
- *
- */
-
-rtems_status_code _Message_queue_MP_Send_request_packet (
- Message_queue_MP_Remote_operations operation,
- Objects_Id message_queue_id,
- Message_queue_Buffer *buffer,
- rtems_option option_set,
- rtems_interval timeout
-)
-{
- Message_queue_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case MESSAGE_QUEUE_MP_RECEIVE_REQUEST:
- case MESSAGE_QUEUE_MP_SEND_REQUEST:
- case MESSAGE_QUEUE_MP_URGENT_REQUEST:
- case MESSAGE_QUEUE_MP_BROADCAST_REQUEST:
- case MESSAGE_QUEUE_MP_FLUSH_REQUEST:
-
- the_packet = _Message_queue_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_MESSAGE_QUEUE;
- the_packet->Prefix.length = sizeof ( Message_queue_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Message_queue_MP_Packet ) -
- sizeof ( Message_queue_Buffer );
- if ( ! _Options_Is_no_wait(option_set))
- the_packet->Prefix.timeout = timeout;
-
- the_packet->operation = operation;
- the_packet->Prefix.id = message_queue_id;
- the_packet->option_set = option_set;
-
- if ( buffer )
- _Message_queue_Copy_buffer( buffer, &the_packet->Buffer );
-
- return
- _MPCI_Send_request_packet(
- rtems_get_node( message_queue_id ),
- &the_packet->Prefix,
- STATES_WAITING_FOR_MESSAGE
- );
- break;
-
- case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE:
- case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE:
- case MESSAGE_QUEUE_MP_EXTRACT_PROXY:
- case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE:
- case MESSAGE_QUEUE_MP_SEND_RESPONSE:
- case MESSAGE_QUEUE_MP_URGENT_RESPONSE:
- case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE:
- case MESSAGE_QUEUE_MP_FLUSH_RESPONSE:
- break;
-
- }
- /*
- * The following line is included to satisfy compilers which
- * produce warnings when a function does not end with a return.
- */
- return RTEMS_SUCCESSFUL;
-}
-
-/*PAGE
- *
- * _Message_queue_MP_Send_response_packet
- *
- */
-
-void _Message_queue_MP_Send_response_packet (
- Message_queue_MP_Remote_operations operation,
- Objects_Id message_queue_id,
- Thread_Control *the_thread
-)
-{
- Message_queue_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE:
- case MESSAGE_QUEUE_MP_SEND_RESPONSE:
- case MESSAGE_QUEUE_MP_URGENT_RESPONSE:
- case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE:
- case MESSAGE_QUEUE_MP_FLUSH_RESPONSE:
-
- the_packet = ( Message_queue_MP_Packet *) the_thread->receive_packet;
-
-/*
- * The packet being returned already contains the class, length, and
- * to_convert fields, therefore they are not set in this routine.
- */
- the_packet->operation = operation;
- the_packet->Prefix.id = the_packet->Prefix.source_tid;
-
- _MPCI_Send_response_packet(
- rtems_get_node( the_packet->Prefix.source_tid ),
- &the_packet->Prefix
- );
- break;
-
- case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE:
- case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE:
- case MESSAGE_QUEUE_MP_EXTRACT_PROXY:
- case MESSAGE_QUEUE_MP_RECEIVE_REQUEST:
- case MESSAGE_QUEUE_MP_SEND_REQUEST:
- case MESSAGE_QUEUE_MP_URGENT_REQUEST:
- case MESSAGE_QUEUE_MP_BROADCAST_REQUEST:
- case MESSAGE_QUEUE_MP_FLUSH_REQUEST:
- break;
-
- }
-}
-
-/*PAGE
- *
- *
- * _Message_queue_MP_Process_packet
- *
- */
-
-void _Message_queue_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-)
-{
- Message_queue_MP_Packet *the_packet;
- Thread_Control *the_thread;
- boolean ignored;
-
- the_packet = (Message_queue_MP_Packet *) the_packet_prefix;
-
- switch ( the_packet->operation ) {
-
- case MESSAGE_QUEUE_MP_ANNOUNCE_CREATE:
-
- ignored = _Objects_MP_Open(
- &_Message_queue_Information,
- the_packet->name,
- the_packet->Prefix.id,
- TRUE
- );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case MESSAGE_QUEUE_MP_ANNOUNCE_DELETE:
-
- _Objects_MP_Close( &_Message_queue_Information, the_packet->Prefix.id );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case MESSAGE_QUEUE_MP_EXTRACT_PROXY:
-
- the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id );
-
- if ( ! _Thread_Is_null( the_thread ) )
- _Thread_queue_Extract( the_thread->Wait.queue, the_thread );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case MESSAGE_QUEUE_MP_RECEIVE_REQUEST:
-
- the_packet->Prefix.return_code = rtems_message_queue_receive(
- the_packet->Prefix.id,
- &the_packet->Buffer,
- the_packet->option_set,
- the_packet->Prefix.timeout
- );
-
- if ( ! _Status_Is_proxy_blocking( the_packet->Prefix.return_code ) )
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_RECEIVE_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case MESSAGE_QUEUE_MP_RECEIVE_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _Message_queue_Copy_buffer(
- &the_packet->Buffer,
- (Message_queue_Buffer *) the_thread->Wait.return_argument
- );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case MESSAGE_QUEUE_MP_SEND_REQUEST:
-
- the_packet->Prefix.return_code = rtems_message_queue_send(
- the_packet->Prefix.id,
- &the_packet->Buffer
- );
-
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_SEND_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case MESSAGE_QUEUE_MP_SEND_RESPONSE:
- case MESSAGE_QUEUE_MP_URGENT_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case MESSAGE_QUEUE_MP_URGENT_REQUEST:
-
- the_packet->Prefix.return_code = rtems_message_queue_urgent(
- the_packet->Prefix.id,
- &the_packet->Buffer
- );
-
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_URGENT_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case MESSAGE_QUEUE_MP_BROADCAST_REQUEST:
-
- the_packet->Prefix.return_code = rtems_message_queue_broadcast(
- the_packet->Prefix.id,
- &the_packet->Buffer,
- &the_packet->count
- );
-
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_BROADCAST_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE:
- case MESSAGE_QUEUE_MP_FLUSH_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- *(unsigned32 *)the_thread->Wait.return_argument = the_packet->count;
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case MESSAGE_QUEUE_MP_FLUSH_REQUEST:
-
- the_packet->Prefix.return_code = rtems_message_queue_flush(
- the_packet->Prefix.id,
- &the_packet->count
- );
-
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_FLUSH_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- }
-}
-
-/*PAGE
- *
- * _Message_queue_MP_Send_object_was_deleted
- *
- */
-
-void _Message_queue_MP_Send_object_was_deleted (
- Thread_Control *the_proxy
-)
-{
- the_proxy->receive_packet->return_code = RTEMS_OBJECT_WAS_DELETED;
-
- _Message_queue_MP_Send_response_packet(
- MESSAGE_QUEUE_MP_RECEIVE_RESPONSE,
- the_proxy->Wait.id,
- the_proxy
- );
-}
-
-/*PAGE
- *
- * _Message_queue_MP_Send_extract_proxy
- *
- */
-
-void _Message_queue_MP_Send_extract_proxy (
- Thread_Control *the_thread
-)
-{
- _Message_queue_MP_Send_process_packet(
- MESSAGE_QUEUE_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
- (Objects_Name) 0,
- the_thread->Object.id
- );
-}
-
-/*PAGE
- *
- * _Message_queue_MP_Get_packet
- *
- */
-
-Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void )
-{
- return ( (Message_queue_MP_Packet *) _MPCI_Get_packet() );
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/part.c b/cpukit/rtems/src/part.c
deleted file mode 100644
index 1fa2e0e716..0000000000
--- a/cpukit/rtems/src/part.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Partition Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/address.h>
-#include <rtems/config.h>
-#include <rtems/object.h>
-#include <rtems/part.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * _Partition_Manager_initialization
- *
- * This routine initializes all partition manager related
- * data structures.
- *
- * Input parameters:
- * maximum_partitions - number of partitions to initialize
- *
- * Output parameters: NONE
- */
-
-void _Partition_Manager_initialization(
- unsigned32 maximum_partitions
-)
-{
- _Objects_Initialize_information(
- &_Partition_Information,
- TRUE,
- maximum_partitions,
- sizeof( Partition_Control )
- );
-
-}
-
-/*PAGE
- *
- * rtems_partition_create
- *
- * This directive creates a partiton of fixed sized buffers from the
- * given contiguous memory area.
- *
- * Input parameters:
- * name - user defined partition name
- * starting_address - physical start address of partition
- * length - physical length in bytes
- * buffer_size - size of buffers in bytes
- * attribute_set - partition attributes
- * id - pointer to partition id
- *
- * Output parameters:
- * id - partition id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_partition_create(
- Objects_Name name,
- void *starting_address,
- unsigned32 length,
- unsigned32 buffer_size,
- rtems_attribute attribute_set,
- Objects_Id *id
-)
-{
- register Partition_Control *the_partition;
-
- if ( !_Objects_Is_name_valid( name ) )
- return ( RTEMS_INVALID_NAME );
-
- if ( length == 0 || buffer_size == 0 || length < buffer_size ||
- !_Partition_Is_buffer_size_aligned( buffer_size ) )
- return ( RTEMS_INVALID_SIZE );
-
- if ( !_Addresses_Is_aligned( starting_address ) )
- return( RTEMS_INVALID_ADDRESS );
-
- if ( _Attributes_Is_global( attribute_set ) &&
- !_Configuration_Is_multiprocessing() )
- return( RTEMS_MP_NOT_CONFIGURED );
-
- _Thread_Disable_dispatch(); /* prevents deletion */
-
- the_partition = _Partition_Allocate();
-
- if ( !the_partition ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- if ( _Attributes_Is_global( attribute_set ) &&
- !( _Objects_MP_Open( &_Partition_Information, name,
- the_partition->Object.id, FALSE ) ) ) {
- _Partition_Free( the_partition );
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
- 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 );
-
- _Objects_Open( &_Partition_Information, &the_partition->Object, name );
-
- *id = the_partition->Object.id;
- if ( _Attributes_Is_global( attribute_set ) )
- _Partition_MP_Send_process_packet(
- PARTITION_MP_ANNOUNCE_CREATE,
- the_partition->Object.id,
- name,
- 0 /* Not used */
- );
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_partition_ident
- *
- * This directive returns the system ID associated with
- * the partition name.
- *
- * Input parameters:
- * name - user defined partition name
- * node - node(s) to be searched
- * id - pointer to partition id
- *
- * Output parameters:
- * *id - partition id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_partition_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-)
-{
- return( _Objects_Name_to_id( &_Partition_Information, name, node, id ) );
-}
-
-/*PAGE
- *
- * rtems_partition_delete
- *
- * This directive allows a thread to delete a partition specified by
- * the partition identifier, provided that none of its buffers are
- * still allocated.
- *
- * Input parameters:
- * id - partition id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_partition_delete(
- Objects_Id id
-)
-{
- register Partition_Control *the_partition;
- Objects_Locations location;
-
- the_partition = _Partition_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Dispatch();
- return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
- case OBJECTS_LOCAL:
- if ( the_partition->number_of_used_blocks == 0 ) {
- _Objects_Close( &_Partition_Information, &the_partition->Object );
- _Partition_Free( the_partition );
- if ( _Attributes_Is_global( the_partition->attribute_set ) ) {
-
- _Objects_MP_Close(
- &_Partition_Information,
- the_partition->Object.id
- );
-
- _Partition_MP_Send_process_packet(
- PARTITION_MP_ANNOUNCE_DELETE,
- the_partition->Object.id,
- 0, /* Not used */
- 0 /* Not used */
- );
- }
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_RESOURCE_IN_USE );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_partition_get_buffer
- *
- * This directive will obtain a buffer from a buffer partition.
- *
- * Input parameters:
- * id - partition id
- * buffer - pointer to buffer address
- *
- * Output parameters:
- * buffer - pointer to buffer address filled in
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_partition_get_buffer(
- Objects_Id id,
- void **buffer
-)
-{
- register Partition_Control *the_partition;
- Objects_Locations location;
- void *the_buffer;
-
- the_partition = _Partition_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Executing->Wait.return_argument = buffer;
- return(
- _Partition_MP_Send_request_packet(
- PARTITION_MP_GET_BUFFER_REQUEST,
- id,
- 0 /* Not used */
- )
- );
- case OBJECTS_LOCAL:
- the_buffer = _Partition_Allocate_buffer( the_partition );
- if ( the_buffer ) {
- the_partition->number_of_used_blocks += 1;
- _Thread_Enable_dispatch();
- *buffer = the_buffer;
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_UNSATISFIED );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_partition_return_buffer
- *
- * This directive will return the given buffer to the specified
- * buffer partition.
- *
- * Input parameters:
- * id - partition id
- * buffer - pointer to buffer address
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_partition_return_buffer(
- Objects_Id id,
- void *buffer
-)
-{
- register Partition_Control *the_partition;
- Objects_Locations location;
-
- the_partition = _Partition_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return(
- _Partition_MP_Send_request_packet(
- PARTITION_MP_RETURN_BUFFER_REQUEST,
- id,
- buffer
- )
- );
- case OBJECTS_LOCAL:
- if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) {
- _Partition_Free_buffer( the_partition, buffer );
- the_partition->number_of_used_blocks -= 1;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_INVALID_ADDRESS );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
diff --git a/cpukit/rtems/src/partmp.c b/cpukit/rtems/src/partmp.c
deleted file mode 100644
index 9cc1723106..0000000000
--- a/cpukit/rtems/src/partmp.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Multiprocessing Support for the Partition Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/mpci.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/part.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * _Partition_MP_Send_process_packet
- *
- */
-
-void _Partition_MP_Send_process_packet (
- Partition_MP_Remote_operations operation,
- Objects_Id partition_id,
- Objects_Name name,
- Objects_Id proxy_id
-)
-{
- Partition_MP_Packet *the_packet;
- unsigned32 node;
-
- switch ( operation ) {
-
- case PARTITION_MP_ANNOUNCE_CREATE:
- case PARTITION_MP_ANNOUNCE_DELETE:
- case PARTITION_MP_EXTRACT_PROXY:
-
- the_packet = _Partition_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_PARTITION;
- the_packet->Prefix.length = sizeof ( Partition_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Partition_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = partition_id;
- the_packet->name = name;
- the_packet->proxy_id = proxy_id;
-
- if ( operation == PARTITION_MP_EXTRACT_PROXY )
- node = rtems_get_node( partition_id );
- else
- node = MPCI_ALL_NODES;
-
- _MPCI_Send_process_packet( node, &the_packet->Prefix );
- break;
-
- case PARTITION_MP_GET_BUFFER_REQUEST:
- case PARTITION_MP_GET_BUFFER_RESPONSE:
- case PARTITION_MP_RETURN_BUFFER_REQUEST:
- case PARTITION_MP_RETURN_BUFFER_RESPONSE:
- break;
- }
-}
-
-/*PAGE
- *
- * _Partition_MP_Send_request_packet
- *
- */
-
-rtems_status_code _Partition_MP_Send_request_packet (
- Partition_MP_Remote_operations operation,
- Objects_Id partition_id,
- void *buffer
-)
-{
- Partition_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case PARTITION_MP_GET_BUFFER_REQUEST:
- case PARTITION_MP_RETURN_BUFFER_REQUEST:
-
- the_packet = _Partition_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_PARTITION;
- the_packet->Prefix.length = sizeof ( Partition_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Partition_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = partition_id;
- the_packet->buffer = buffer;
-
- return
- _MPCI_Send_request_packet(
- rtems_get_node( partition_id ),
- &the_packet->Prefix,
- STATES_READY /* Not used */
- );
-
- break;
-
- case PARTITION_MP_ANNOUNCE_CREATE:
- case PARTITION_MP_ANNOUNCE_DELETE:
- case PARTITION_MP_EXTRACT_PROXY:
- case PARTITION_MP_GET_BUFFER_RESPONSE:
- case PARTITION_MP_RETURN_BUFFER_RESPONSE:
- break;
-
- }
- /*
- * The following line is included to satisfy compilers which
- * produce warnings when a function does not end with a return.
- */
- return RTEMS_SUCCESSFUL;
-}
-
-/*PAGE
- *
- * _Partition_MP_Send_response_packet
- *
- */
-
-void _Partition_MP_Send_response_packet (
- Partition_MP_Remote_operations operation,
- Objects_Id partition_id,
- Thread_Control *the_thread
-)
-{
- Partition_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case PARTITION_MP_GET_BUFFER_RESPONSE:
- case PARTITION_MP_RETURN_BUFFER_RESPONSE:
-
- the_packet = ( Partition_MP_Packet *) the_thread->receive_packet;
-
-/*
- * The packet being returned already contains the class, length, and
- * to_convert fields, therefore they are not set in this routine.
- */
- the_packet->operation = operation;
- the_packet->Prefix.id = the_packet->Prefix.source_tid;
-
- _MPCI_Send_response_packet(
- rtems_get_node( the_packet->Prefix.source_tid ),
- &the_packet->Prefix
- );
- break;
-
- case PARTITION_MP_ANNOUNCE_CREATE:
- case PARTITION_MP_ANNOUNCE_DELETE:
- case PARTITION_MP_EXTRACT_PROXY:
- case PARTITION_MP_GET_BUFFER_REQUEST:
- case PARTITION_MP_RETURN_BUFFER_REQUEST:
- break;
-
- }
-}
-
-/*PAGE
- *
- *
- * _Partition_MP_Process_packet
- *
- */
-
-void _Partition_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-)
-{
- Partition_MP_Packet *the_packet;
- Thread_Control *the_thread;
- boolean ignored;
-
- the_packet = (Partition_MP_Packet *) the_packet_prefix;
-
- switch ( the_packet->operation ) {
-
- case PARTITION_MP_ANNOUNCE_CREATE:
-
- ignored = _Objects_MP_Open(
- &_Partition_Information,
- the_packet->name,
- the_packet->Prefix.id,
- TRUE
- );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case PARTITION_MP_ANNOUNCE_DELETE:
-
- _Objects_MP_Close( &_Partition_Information, the_packet->Prefix.id );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case PARTITION_MP_EXTRACT_PROXY:
-
- the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id );
-
- if ( ! _Thread_Is_null( the_thread ) )
- _Thread_queue_Extract( the_thread->Wait.queue, the_thread );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case PARTITION_MP_GET_BUFFER_REQUEST:
-
- the_packet->Prefix.return_code = rtems_partition_get_buffer(
- the_packet->Prefix.id,
- &the_packet->buffer
- );
-
- _Partition_MP_Send_response_packet(
- PARTITION_MP_GET_BUFFER_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case PARTITION_MP_GET_BUFFER_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- *(void **)the_thread->Wait.return_argument = the_packet->buffer;
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case PARTITION_MP_RETURN_BUFFER_REQUEST:
-
- the_packet->Prefix.return_code = rtems_partition_return_buffer(
- the_packet->Prefix.id,
- the_packet->buffer
- );
-
- _Partition_MP_Send_response_packet(
- PARTITION_MP_RETURN_BUFFER_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case PARTITION_MP_RETURN_BUFFER_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- }
-}
-
-/*PAGE
- *
- * _Partition_MP_Send_object_was_deleted
- *
- * This routine is not needed by the Partition since a partition
- * cannot be deleted when buffers are in use.
- *
- */
-
-/*PAGE
- *
- * _Partition_MP_Send_extract_proxy
- *
- */
-
-void _Partition_MP_Send_extract_proxy (
- Thread_Control *the_thread
-)
-{
- _Partition_MP_Send_process_packet(
- PARTITION_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
- (Objects_Name) 0,
- the_thread->Object.id
- );
-
-}
-
-/*PAGE
- *
- * _Partition_MP_Get_packet
- *
- */
-
-Partition_MP_Packet *_Partition_MP_Get_packet ( void )
-{
- return ( (Partition_MP_Packet *) _MPCI_Get_packet() );
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/ratemon.c b/cpukit/rtems/src/ratemon.c
deleted file mode 100644
index 3c0733a3ab..0000000000
--- a/cpukit/rtems/src/ratemon.c
+++ /dev/null
@@ -1,401 +0,0 @@
-/*
- * Rate Monotonic Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/isr.h>
-#include <rtems/object.h>
-#include <rtems/ratemon.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * _Rate_monotonic_Manager_initialization
- *
- * This routine initializes all Rate Monotonic Manager related
- * data structures.
- *
- * Input parameters:
- * maximum_periods - number of periods timers to initialize
- *
- * Output parameters: NONE
- *
- * NOTE: The Rate Monotonic Manager is built on top of the Watchdog
- * Handler.
- */
-
-void _Rate_monotonic_Manager_initialization(
- unsigned32 maximum_periods
-)
-{
- _Objects_Initialize_information(
- &_Rate_monotonic_Information,
- FALSE,
- maximum_periods,
- sizeof( Rate_monotonic_Control )
- );
-}
-
-/*PAGE
- *
- * rtems_rate_monotonic_create
- *
- * This directive creates a rate monotonic timer and performs
- * some initialization.
- *
- * Input parameters:
- * name - name of period
- * id - pointer to rate monotonic id
- *
- * Output parameters:
- * id - rate monotonic id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_rate_monotonic_create(
- Objects_Name name,
- Objects_Id *id
-)
-{
- Rate_monotonic_Control *the_period;
-
- if ( !_Objects_Is_name_valid( name ) )
- return( RTEMS_INVALID_NAME );
-
- _Thread_Disable_dispatch(); /* to prevent deletion */
-
- the_period = _Rate_monotonic_Allocate();
-
- if ( !the_period ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- the_period->owner = _Thread_Executing;
- the_period->state = RATE_MONOTONIC_INACTIVE;
-
- _Objects_Open( &_Rate_monotonic_Information, &the_period->Object, name );
-
- *id = the_period->Object.id;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_rate_monotonic_ident
- *
- * This directive returns the system ID associated with
- * the rate monotonic period name.
- *
- * Input parameters:
- * name - user defined period name
- * id - pointer to period id
- *
- * Output parameters:
- * *id - region id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_rate_monotonic_ident(
- Objects_Name name,
- Objects_Id *id
-)
-{
- return _Objects_Name_to_id(
- &_Rate_monotonic_Information,
- name,
- RTEMS_SEARCH_LOCAL_NODE,
- id
- );
-}
-
-/*PAGE
- *
- * rtems_rate_monotonic_cancel
- *
- * This directive allows a thread to cancel a rate monotonic timer.
- *
- * Input parameters:
- * id - rate monotonic id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful and caller is not the owning thread
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_rate_monotonic_cancel(
- Objects_Id id
-)
-{
- Rate_monotonic_Control *the_period;
- Objects_Locations location;
-
- the_period = _Rate_monotonic_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- if ( !_Thread_Is_executing( the_period->owner ) ) {
- _Thread_Enable_dispatch();
- return( RTEMS_NOT_OWNER_OF_RESOURCE );
- }
- (void) _Watchdog_Remove( &the_period->Timer );
- the_period->state = RATE_MONOTONIC_INACTIVE;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_rate_monotonic_delete
- *
- * This directive allows a thread to delete a rate monotonic timer.
- *
- * Input parameters:
- * id - rate monotonic id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_rate_monotonic_delete(
- Objects_Id id
-)
-{
- Rate_monotonic_Control *the_period;
- Objects_Locations location;
-
- the_period = _Rate_monotonic_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- _Objects_Close( &_Rate_monotonic_Information, &the_period->Object );
- (void) _Watchdog_Remove( &the_period->Timer );
- the_period->state = RATE_MONOTONIC_INACTIVE;
- _Rate_monotonic_Free( the_period );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_rate_monotonic_period
- *
- * This directive allows a thread to manipulate a rate monotonic timer.
- *
- * Input parameters:
- * id - rate monotonic id
- * length - length of period (in ticks)
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_rate_monotonic_period(
- Objects_Id id,
- rtems_interval length
-)
-{
- Rate_monotonic_Control *the_period;
- Objects_Locations location;
- rtems_status_code return_value;
-
- the_period = _Rate_monotonic_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- if ( !_Thread_Is_executing( the_period->owner ) ) {
- _Thread_Enable_dispatch();
- return( RTEMS_NOT_OWNER_OF_RESOURCE );
- }
-
- if ( length == RTEMS_PERIOD_STATUS ) {
- switch ( the_period->state ) {
- case RATE_MONOTONIC_INACTIVE:
- return_value = RTEMS_NOT_DEFINED;
- break;
- case RATE_MONOTONIC_ACTIVE:
- return_value = RTEMS_SUCCESSFUL;
- break;
- case RATE_MONOTONIC_EXPIRED:
- return_value = RTEMS_TIMEOUT;
- break;
- default: /* unreached -- only to remove warnings */
- return_value = RTEMS_INTERNAL_ERROR;
- break;
- }
- _Thread_Enable_dispatch();
- return( return_value );
- }
-
- switch ( the_period->state ) {
- case RATE_MONOTONIC_INACTIVE:
- the_period->state = RATE_MONOTONIC_ACTIVE;
- _Watchdog_Initialize(
- &the_period->Timer,
- _Rate_monotonic_Timeout,
- id,
- NULL
- );
- _Watchdog_Insert_ticks(
- &the_period->Timer, length, WATCHDOG_ACTIVATE_NOW );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-
- case RATE_MONOTONIC_ACTIVE:
-/* following is and could be a critical section problem */
- _Thread_Executing->Wait.id = the_period->Object.id;
- if ( _Rate_monotonic_Set_state( the_period ) ) {
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- /* has expired -- fall into next case */
- case RATE_MONOTONIC_EXPIRED:
- the_period->state = RATE_MONOTONIC_ACTIVE;
- _Watchdog_Insert_ticks(
- &the_period->Timer, length, WATCHDOG_ACTIVATE_NOW );
- _Thread_Enable_dispatch();
- return( RTEMS_TIMEOUT );
- }
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Set_state
- *
- * This kernel routine sets the STATES_WAITING_FOR_PERIOD state in
- * the running thread's tcb if the specified period has not expired.
- * The ready chain is adjusted if necessary.
- *
- * Input parameters:
- * the_period - pointer to period control block
- *
- * Output parameters:
- * TRUE - if blocked successfully for period
- * FALSE - if period has expired
- *
- * INTERRUPT LATENCY:
- * delete node
- * priority map
- * select heir
- */
-
-boolean _Rate_monotonic_Set_state(
-Rate_monotonic_Control *the_period
-)
-{
- Thread_Control *executing;
- Chain_Control *ready;
- ISR_Level level;
- States_Control old_state;
-
- executing = _Thread_Executing;
- ready = executing->ready;
- _ISR_Disable( level );
-
- old_state = executing->current_state;
-
- if ( _Rate_monotonic_Is_expired( the_period ) ) {
- _ISR_Enable( level );
- return( FALSE );
- }
-
- executing->current_state =
- _States_Set( STATES_WAITING_FOR_PERIOD, old_state );
-
- if ( _States_Is_ready( old_state ) ) {
- if ( _Chain_Has_only_one_node( ready ) ) {
- _Chain_Initialize_empty( ready );
- _Priority_Remove_from_bit_map( &executing->Priority_map );
- _ISR_Flash( level );
- } else {
- _Chain_Extract_unprotected( &executing->Object.Node );
- _ISR_Flash( level );
- }
-
- if ( _Thread_Is_heir( executing ) )
- _Thread_Calculate_heir();
-
- _Context_Switch_necessary = TRUE;
- }
-
- _ISR_Enable( level );
- return( TRUE );
-}
-
-/*PAGE
- *
- * _Rate_monotonic_Timeout
- *
- * This routine processes a period ending. If the owning thread
- * is waiting for the period, that thread is unblocked and the
- * period reinitiated. Otherwise, the period is expired.
- * This routine is called by the watchdog handler.
- *
- * Input parameters:
- * id - period id
- *
- * Output parameters: NONE
- */
-
-void _Rate_monotonic_Timeout(
- Objects_Id id,
- void *ignored
-)
-{
- Rate_monotonic_Control *the_period;
- Objects_Locations location;
- Thread_Control *the_thread;
-
- the_period = _Rate_monotonic_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- case OBJECTS_REMOTE: /* impossible */
- break;
- case OBJECTS_LOCAL:
- the_thread = the_period->owner;
- if ( _States_Is_waiting_for_period( the_thread->current_state ) &&
- the_thread->Wait.id == the_period->Object.id ) {
- _Thread_Unblock( the_thread );
- _Watchdog_Reset( &the_period->Timer );
- }
- else
- the_period->state = RATE_MONOTONIC_EXPIRED;
- _Thread_Unnest_dispatch();
- break;
- }
-}
-
diff --git a/cpukit/rtems/src/region.c b/cpukit/rtems/src/region.c
deleted file mode 100644
index c62214eaf6..0000000000
--- a/cpukit/rtems/src/region.c
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * Region Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/config.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/region.h>
-#include <rtems/states.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * _Region_Manager_initialization
- *
- * This routine initializes all region manager related data structures.
- *
- * Input parameters:
- * maximum_regions - number of regions to initialize
- *
- * Output parameters: NONE
- */
-
-void _Region_Manager_initialization(
- unsigned32 maximum_regions
-)
-{
- _Objects_Initialize_information(
- &_Region_Information,
- FALSE,
- maximum_regions,
- sizeof( Region_Control )
- );
-}
-
-/*PAGE
- *
- * rtems_region_create
- *
- * This directive creates a region of physical contiguous memory area
- * from which variable sized segments can be allocated.
- *
- * Input parameters:
- * name - user defined region name
- * starting_address - physical start address of region
- * length - physical length in bytes
- * page_size - page size in bytes
- * attribute_set - region attributes
- * id - address of region id to set
- *
- * Output parameters:
- * id - region id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_region_create(
- Objects_Name name,
- void *starting_address,
- unsigned32 length,
- unsigned32 page_size,
- rtems_attribute attribute_set,
- Objects_Id *id
-)
-{
- Region_Control *the_region;
-
- if ( !_Objects_Is_name_valid( name ) )
- return ( RTEMS_INVALID_NAME );
-
- if ( !_Addresses_Is_aligned( starting_address ) )
- return( RTEMS_INVALID_ADDRESS );
-
- _Thread_Disable_dispatch(); /* to prevent deletion */
-
- the_region = _Region_Allocate();
-
- if ( !the_region ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- the_region->maximum_segment_size =
- _Heap_Initialize(&the_region->Memory, starting_address, length, page_size);
-
- if ( !the_region->maximum_segment_size ) {
- _Region_Free( the_region );
- _Thread_Enable_dispatch();
- return( RTEMS_INVALID_SIZE );
- }
-
- the_region->starting_address = starting_address;
- the_region->length = length;
- the_region->page_size = page_size;
- the_region->attribute_set = attribute_set;
- the_region->number_of_used_blocks = 0;
-
- _Thread_queue_Initialize(
- &the_region->Wait_queue, attribute_set, STATES_WAITING_FOR_SEGMENT );
-
- _Objects_Open( &_Region_Information, &the_region->Object, name );
-
- *id = the_region->Object.id;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_region_ident
- *
- * This directive returns the system ID associated with
- * the region name.
- *
- * Input parameters:
- * name - user defined region name
- * id - pointer to region id
- *
- * Output parameters:
- * *id - region id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_region_ident(
- Objects_Name name,
- Objects_Id *id
-)
-{
- return _Objects_Name_to_id(
- &_Region_Information,
- name,
- RTEMS_SEARCH_LOCAL_NODE,
- id
- );
-}
-
-/*PAGE
- *
- * rtems_region_delete
- *
- * This directive allows a thread to delete a region specified by
- * the region identifier, provided that none of its segments are
- * still allocated.
- *
- * Input parameters:
- * id - region id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_region_delete(
- Objects_Id id
-)
-{
- register Region_Control *the_region;
- Objects_Locations location;
-
- the_region = _Region_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- _Region_Debug_Walk( the_region, 5 );
- if ( the_region->number_of_used_blocks == 0 ) {
- _Objects_Close( &_Region_Information, &the_region->Object );
- _Region_Free( the_region );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_RESOURCE_IN_USE );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_region_extend
- *
- * This directive attempts to grow a region of physical contiguous memory area
- * from which variable sized segments can be allocated.
- *
- * Input parameters:
- * id - id of region to grow
- * start - starting address of memory area for extension
- * length - physical length in bytes to grow the region
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_region_extend(
- Objects_Id id,
- void *starting_address,
- unsigned32 length
-)
-{
- Region_Control *the_region;
- Objects_Locations location;
- unsigned32 amount_extended;
- Heap_Extend_status heap_status;
- rtems_status_code status;
-
- status = RTEMS_SUCCESSFUL;
-
- the_region = _Region_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
-
- heap_status = _Heap_Extend(
- &the_region->Memory,
- starting_address,
- length,
- &amount_extended
- );
-
- switch ( heap_status ) {
- case HEAP_EXTEND_SUCCESSFUL:
- the_region->length += amount_extended;
- the_region->maximum_segment_size += amount_extended;
- break;
- case HEAP_EXTEND_ERROR:
- status = RTEMS_INVALID_ADDRESS;
- break;
- case HEAP_EXTEND_NOT_IMPLEMENTED:
- status = RTEMS_NOT_IMPLEMENTED;
- break;
- }
- _Thread_Enable_dispatch();
- return( status );
- }
-
- return( RTEMS_INTERNAL_ERROR );
-}
-
-/*PAGE
- *
- * rtems_region_get_segment
- *
- * This directive will obtain a segment from the given region.
- *
- * Input parameters:
- * id - region id
- * size - segment size in bytes
- * option_set - wait option
- * timeout - number of ticks to wait (0 means wait forever)
- * segment - pointer to segment address
- *
- * Output parameters:
- * segment - pointer to segment address filled in
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_region_get_segment(
- Objects_Id id,
- unsigned32 size,
- rtems_option option_set,
- rtems_interval timeout,
- void **segment
-)
-{
- register Region_Control *the_region;
- Objects_Locations location;
- Thread_Control *executing;
- void *the_segment;
-
- if ( size == 0 )
- return( RTEMS_INVALID_SIZE );
-
- executing = _Thread_Executing;
- the_region = _Region_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- if ( size > the_region->maximum_segment_size ) {
- _Thread_Enable_dispatch();
- return( RTEMS_INVALID_SIZE );
- }
-
- _Region_Debug_Walk( the_region, 1 );
-
- the_segment = _Region_Allocate_segment( the_region, size );
-
- _Region_Debug_Walk( the_region, 2 );
-
- if ( the_segment ) {
- the_region->number_of_used_blocks += 1;
- _Thread_Enable_dispatch();
- *segment = the_segment;
- return( RTEMS_SUCCESSFUL );
- }
-
- if ( _Options_Is_no_wait( option_set ) ) {
- _Thread_Enable_dispatch();
- return( RTEMS_UNSATISFIED );
- }
-
- executing->Wait.queue = &the_region->Wait_queue;
- executing->Wait.id = id;
- executing->Wait.Extra.segment_size = size;
- executing->Wait.return_argument = (unsigned32 *) segment;
-
- the_region->Wait_queue.sync = TRUE;
-
- _Thread_queue_Enqueue( &the_region->Wait_queue, timeout );
-
- _Thread_Enable_dispatch();
- return( executing->Wait.return_code );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-/*PAGE
- *
- * rtems_region_get_segment_size
- *
- * This directive will return the size of the segment indicated
- *
- * Input parameters:
- * id - region id
- * segment - segment address
- * size - pointer to segment size in bytes
- *
- * Output parameters:
- * size - segment size in bytes filled in
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_region_get_segment_size(
- Objects_Id id,
- void *segment,
- unsigned32 *size
-)
-{
- register Region_Control *the_region;
- Objects_Locations location;
- Thread_Control *executing;
-
- executing = _Thread_Executing;
- the_region = _Region_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
-
- if ( _Heap_Size_of_user_area( &the_region->Memory, segment, size ) ) {
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_INVALID_ADDRESS );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_region_return_segment
- *
- * This directive will return a segment to its region.
- *
- * Input parameters:
- * id - region id
- * segment - pointer to segment address
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_region_return_segment(
- Objects_Id id,
- void *segment
-)
-{
- register Region_Control *the_region;
- Thread_Control *the_thread;
- Objects_Locations location;
- void **the_segment;
- int status;
-
- the_region = _Region_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* this error cannot be returned */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
-
- _Region_Debug_Walk( the_region, 3 );
-
- status = _Region_Free_segment( the_region, segment );
-
- _Region_Debug_Walk( the_region, 4 );
-
- if ( !status ) {
- _Thread_Enable_dispatch();
- return( RTEMS_INVALID_ADDRESS );
- }
-
- the_region->number_of_used_blocks -= 1;
- for ( ; ; ) {
- the_thread = _Thread_queue_First( &the_region->Wait_queue );
-
- if ( the_thread == NULL )
- break;
-
- the_segment = _Region_Allocate_segment(
- the_region, the_thread->Wait.Extra.segment_size );
-
- if ( the_segment == NULL )
- break;
-
- *(void **)the_thread->Wait.return_argument = the_segment;
- the_region->number_of_used_blocks += 1;
- _Thread_queue_Extract( &the_region->Wait_queue, the_thread );
- the_thread->Wait.return_code = RTEMS_SUCCESSFUL;
- }
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
diff --git a/cpukit/rtems/src/regionmp.c b/cpukit/rtems/src/regionmp.c
deleted file mode 100644
index 558ae1639a..0000000000
--- a/cpukit/rtems/src/regionmp.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Multiprocessing Support for the Region Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/mpci.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/region.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * _Region_MP_Send_process_packet
- *
- */
-
-void _Region_MP_Send_process_packet (
- Region_MP_Remote_operations operation,
- Objects_Id region_id,
- Objects_Name name,
- Objects_Id proxy_id
-)
-{
- Region_MP_Packet *the_packet;
- unsigned32 node;
-
- switch ( operation ) {
-
- case REGION_MP_ANNOUNCE_CREATE:
- case REGION_MP_ANNOUNCE_DELETE:
- case REGION_MP_EXTRACT_PROXY:
-
- the_packet = _Region_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_REGION;
- the_packet->Prefix.length = sizeof ( Region_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Region_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = region_id;
- the_packet->name = name;
- the_packet->proxy_id = proxy_id;
-
- if ( operation == REGION_MP_EXTRACT_PROXY )
- node = rtems_get_node( region_id );
- else
- node = MPCI_ALL_NODES;
-
- _MPCI_Send_process_packet( node, &the_packet->Prefix );
- break;
-
- case REGION_MP_GET_SEGMENT_REQUEST:
- case REGION_MP_GET_SEGMENT_RESPONSE:
- case REGION_MP_RETURN_SEGMENT_REQUEST:
- case REGION_MP_RETURN_SEGMENT_RESPONSE:
- break;
- }
-}
-
-/*PAGE
- *
- * _Region_MP_Send_request_packet
- *
- */
-
-rtems_status_code _Region_MP_Send_request_packet (
- Region_MP_Remote_operations operation,
- Objects_Id region_id,
- void *segment,
- unsigned32 size,
- rtems_option option_set,
- rtems_interval timeout
-)
-{
- Region_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case REGION_MP_GET_SEGMENT_REQUEST:
- case REGION_MP_RETURN_SEGMENT_REQUEST:
-
- the_packet = _Region_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_REGION;
- the_packet->Prefix.length = sizeof ( Region_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Region_MP_Packet );
- if ( ! _Options_Is_no_wait(option_set))
- the_packet->Prefix.timeout = timeout;
-
- the_packet->operation = operation;
- the_packet->Prefix.id = region_id;
- the_packet->segment = segment;
- the_packet->size = size;
- the_packet->option_set = option_set;
-
- return _MPCI_Send_request_packet(
- rtems_get_node( region_id ),
- &the_packet->Prefix,
- STATES_READY /* Not used */
- );
- break;
-
- case REGION_MP_ANNOUNCE_CREATE:
- case REGION_MP_ANNOUNCE_DELETE:
- case REGION_MP_EXTRACT_PROXY:
- case REGION_MP_GET_SEGMENT_RESPONSE:
- case REGION_MP_RETURN_SEGMENT_RESPONSE:
- break;
-
- }
- /*
- * The following line is included to satisfy compilers which
- * produce warnings when a function does not end with a return.
- */
- return RTEMS_INTERNAL_ERROR;
-}
-
-/*PAGE
- *
- * _Region_MP_Send_response_packet
- *
- */
-
-void _Region_MP_Send_response_packet (
- Region_MP_Remote_operations operation,
- Objects_Id region_id,
- Thread_Control *the_thread
-)
-{
- Region_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case REGION_MP_GET_SEGMENT_RESPONSE:
- case REGION_MP_RETURN_SEGMENT_RESPONSE:
-
- the_packet = ( Region_MP_Packet *) the_thread->receive_packet;
-
-/*
- * The packet being returned already contains the class, length, and
- * to_convert fields, therefore they are not set in this routine.
- */
- the_packet->operation = operation;
- the_packet->Prefix.id = the_packet->Prefix.source_tid;
-
- _MPCI_Send_response_packet(
- rtems_get_node( the_packet->Prefix.source_tid ),
- &the_packet->Prefix
- );
- break;
-
- case REGION_MP_ANNOUNCE_CREATE:
- case REGION_MP_ANNOUNCE_DELETE:
- case REGION_MP_EXTRACT_PROXY:
- case REGION_MP_GET_SEGMENT_REQUEST:
- case REGION_MP_RETURN_SEGMENT_REQUEST:
- break;
-
- }
-}
-
-/*PAGE
- *
- *
- * _Region_MP_Process_packet
- *
- */
-
-void _Region_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-)
-{
- Region_MP_Packet *the_packet;
- Thread_Control *the_thread;
- boolean ignored;
-
- the_packet = (Region_MP_Packet *) the_packet_prefix;
-
- switch ( the_packet->operation ) {
-
- case REGION_MP_ANNOUNCE_CREATE:
-
- ignored = _Objects_MP_Open(
- &_Region_Information,
- the_packet->name,
- the_packet->Prefix.id,
- TRUE
- );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case REGION_MP_ANNOUNCE_DELETE:
-
- _Objects_MP_Close( &_Region_Information, the_packet->Prefix.id );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case REGION_MP_EXTRACT_PROXY:
-
- the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id );
-
- if ( ! _Thread_Is_null( the_thread ) )
- _Thread_queue_Extract( the_thread->Wait.queue, the_thread );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case REGION_MP_GET_SEGMENT_REQUEST:
-
- the_packet->Prefix.return_code = rtems_region_get_segment(
- the_packet->Prefix.id,
- the_packet->size,
- the_packet->option_set,
- the_packet->Prefix.timeout,
- &the_packet->segment
- );
-
- _Region_MP_Send_response_packet(
- REGION_MP_GET_SEGMENT_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case REGION_MP_GET_SEGMENT_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- *(void **)the_thread->Wait.return_argument = the_packet->segment;
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case REGION_MP_RETURN_SEGMENT_REQUEST:
-
- the_packet->Prefix.return_code = rtems_region_return_segment(
- the_packet->Prefix.id,
- the_packet->segment
- );
-
- _Region_MP_Send_response_packet(
- REGION_MP_RETURN_SEGMENT_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case REGION_MP_RETURN_SEGMENT_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- }
-}
-
-/*PAGE
- *
- * _Region_MP_Send_object_was_deleted
- *
- * This routine is not needed by the Region since a region
- * cannot be deleted when segments are in use.
- *
- */
-
-/*PAGE
- *
- * _Region_MP_Send_extract_proxy
- *
- */
-
-void _Region_MP_Send_extract_proxy (
- Thread_Control *the_thread
-)
-{
- _Region_MP_Send_process_packet(
- REGION_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
- (Objects_Name) 0,
- the_thread->Object.id
- );
-}
-
-/*PAGE
- *
- * _Region_MP_Get_packet
- *
- */
-
-Region_MP_Packet *_Region_MP_Get_packet ( void )
-{
- return ( (Region_MP_Packet *) _MPCI_Get_packet() );
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/rtclock.c b/cpukit/rtems/src/rtclock.c
deleted file mode 100644
index f82baa6337..0000000000
--- a/cpukit/rtems/src/rtclock.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Clock Manager
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/clock.h>
-#include <rtems/config.h>
-#include <rtems/isr.h>
-#include <rtems/thread.h>
-#include <rtems/tod.h>
-#include <rtems/watchdog.h>
-
-/*PAGE
- *
- * rtems_clock_get
- *
- * This directive returns the current date and time. If the time has
- * not been set by a tm_set then an error is returned.
- *
- * Input parameters:
- * option - which value to return
- * time_buffer - pointer to output buffer (a time and date structure
- * or an interval)
- *
- * Output parameters:
- * time_buffer - output filled in
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_clock_get(
- rtems_clock_get_options option,
- void *time_buffer
-)
-{
- ISR_Level level;
- rtems_interval tmp;
-
- switch ( option ) {
- case RTEMS_CLOCK_GET_TOD:
- if ( !_TOD_Is_set() )
- return( RTEMS_NOT_DEFINED );
-
- *(rtems_time_of_day *)time_buffer = _TOD_Current;
- return( RTEMS_SUCCESSFUL );
-
- case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH:
- if ( !_TOD_Is_set() )
- return( RTEMS_NOT_DEFINED );
-
- *(rtems_interval *)time_buffer = _TOD_Seconds_since_epoch;
- return( RTEMS_SUCCESSFUL );
-
- case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT:
- *(rtems_interval *)time_buffer = _TOD_Ticks_since_boot;
- return( RTEMS_SUCCESSFUL );
-
- case RTEMS_CLOCK_GET_TICKS_PER_SECOND:
- *(rtems_interval *)time_buffer = _TOD_Ticks_per_second;
- return( RTEMS_SUCCESSFUL );
-
- case RTEMS_CLOCK_GET_TIME_VALUE:
- if ( !_TOD_Is_set() )
- return( RTEMS_NOT_DEFINED );
-
- _ISR_Disable( level );
- ((rtems_clock_time_value *)time_buffer)->seconds =
- _TOD_Seconds_since_epoch;
- tmp = _TOD_Current.ticks;
- _ISR_Enable( level );
-
- tmp *= _Configuration_Table->microseconds_per_tick;
- ((rtems_clock_time_value *)time_buffer)->microseconds = tmp;
-
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_SUCCESSFUL ); /* should never get here */
-
-}
-
-/*PAGE
- *
- * rtems_clock_set
- *
- * This directive sets the date and time for this node.
- *
- * Input parameters:
- * time_buffer - pointer to the time and date structure
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_clock_set(
- rtems_time_of_day *time_buffer
-)
-{
- rtems_status_code local_result;
- rtems_interval seconds;
-
- local_result = _TOD_Validate( time_buffer );
- if ( rtems_is_status_successful( local_result ) ) {
- seconds = _TOD_To_seconds( time_buffer );
- _Thread_Disable_dispatch();
- _TOD_Set( time_buffer, seconds );
- _Thread_Enable_dispatch();
-
- }
- return( local_result );
-}
-
-/*PAGE
- *
- * rtems_clock_tick
- *
- * This directive notifies the executve that a tick has occurred.
- * When the tick occurs the time manager updates and maintains
- * the calendar time, timeslicing, and any timeout delays.
- *
- * Input parameters: NONE
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - always succeeds
- *
- * NOTE: This routine only works for leap-years through 2099.
- */
-
-rtems_status_code rtems_clock_tick( void )
-{
- _TOD_Tickle_ticks();
-
- _Watchdog_Tickle_ticks();
-
- _Thread_Tickle_timeslice();
-
- if ( _Thread_Is_context_switch_necessary() &&
- _Thread_Is_dispatching_enabled() )
- _Thread_Dispatch();
-
- return( RTEMS_SUCCESSFUL );
-}
diff --git a/cpukit/rtems/src/rtemstimer.c b/cpukit/rtems/src/rtemstimer.c
deleted file mode 100644
index 076091bee4..0000000000
--- a/cpukit/rtems/src/rtemstimer.c
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * Timer Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/object.h>
-#include <rtems/thread.h>
-#include <rtems/timer.h>
-#include <rtems/tod.h>
-#include <rtems/watchdog.h>
-
-/*PAGE
- *
- * _Timer_Manager_initialization
- *
- * This routine initializes all timer manager related data structures.
- *
- * Input parameters:
- * maximum_timers - number of timers to initialize
- *
- * Output parameters: NONE
- */
-
-void _Timer_Manager_initialization(
- unsigned32 maximum_timers
-)
-{
- _Objects_Initialize_information(
- &_Timer_Information,
- FALSE,
- maximum_timers,
- sizeof( Timer_Control )
- );
-}
-
-/*PAGE
- *
- * rtems_timer_create
- *
- * This directive creates a timer and performs some initialization.
- *
- * Input parameters:
- * name - timer name
- * id - pointer to timer id
- *
- * Output parameters:
- * id - timer id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_timer_create(
- Objects_Name name,
- Objects_Id *id
-)
-{
- Timer_Control *the_timer;
-
- if ( !_Objects_Is_name_valid( name ) )
- return ( RTEMS_INVALID_NAME );
-
- _Thread_Disable_dispatch(); /* to prevent deletion */
-
- the_timer = _Timer_Allocate();
-
- if ( !the_timer ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- the_timer->the_class = TIMER_DORMANT;
-
- _Objects_Open( &_Timer_Information, &the_timer->Object, name );
-
- *id = the_timer->Object.id;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_timer_ident
- *
- * This directive returns the system ID associated with
- * the timer name.
- *
- * Input parameters:
- * name - user defined message queue name
- * id - pointer to timer id
- *
- * Output parameters:
- * *id - message queue id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_timer_ident(
- Objects_Name name,
- Objects_Id *id
-)
-{
- return _Objects_Name_to_id(
- &_Timer_Information,
- name,
- RTEMS_SEARCH_LOCAL_NODE,
- id
- );
-}
-
-/*PAGE
- *
- * rtems_timer_cancel
- *
- * This directive allows a thread to cancel a timer.
- *
- * Input parameters:
- * id - timer id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_timer_cancel(
- Objects_Id id
-)
-{
- Timer_Control *the_timer;
- Objects_Locations location;
-
- the_timer = _Timer_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) {
- (void) _Watchdog_Remove( &the_timer->Ticker );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_INCORRECT_STATE );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_timer_delete
- *
- * This directive allows a thread to delete a timer.
- *
- * Input parameters:
- * id - timer id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_timer_delete(
- Objects_Id id
-)
-{
- Timer_Control *the_timer;
- Objects_Locations location;
-
- the_timer = _Timer_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- _Objects_Close( &_Timer_Information, &the_timer->Object );
- (void) _Watchdog_Remove( &the_timer->Ticker );
- _Timer_Free( the_timer );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_timer_fire_after
- *
- * This directive allows a thread to start a timer.
- *
- * Input parameters:
- * id - timer id
- * ticks - interval until routine is fired
- * routine - routine to schedule
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_timer_fire_after(
- Objects_Id id,
- rtems_interval ticks,
- Timer_Service routine,
- void *user_data
-)
-{
- Timer_Control *the_timer;
- Objects_Locations location;
-
- if ( ticks == 0 )
- return( RTEMS_INVALID_NUMBER );
-
- the_timer = _Timer_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- (void) _Watchdog_Remove( &the_timer->Ticker );
- the_timer->the_class = TIMER_INTERVAL;
- _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
- _Watchdog_Insert_ticks( &the_timer->Ticker,
- ticks, WATCHDOG_ACTIVATE_NOW );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_timer_fire_when
- *
- * This directive allows a thread to start a timer.
- *
- * Input parameters:
- * id - timer id
- * wall_time - time of day to fire timer
- * routine - routine to schedule
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_timer_fire_when(
- Objects_Id id,
- rtems_time_of_day *wall_time,
- Timer_Service routine,
- void *user_data
-)
-{
- Timer_Control *the_timer;
- Objects_Locations location;
- rtems_status_code validate_status;
- rtems_interval seconds;
-
- if ( !_TOD_Is_set() )
- return( RTEMS_NOT_DEFINED );
-
- validate_status = _TOD_Validate( wall_time );
- if ( !rtems_is_status_successful( validate_status ) )
- return( validate_status );
-
- seconds = _TOD_To_seconds( wall_time );
- if ( seconds <= _TOD_Seconds_since_epoch )
- return( RTEMS_INVALID_CLOCK );
-
- the_timer = _Timer_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- (void) _Watchdog_Remove( &the_timer->Ticker );
- the_timer->the_class = TIMER_TIME_OF_DAY;
- _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
- _Watchdog_Insert_seconds( &the_timer->Ticker,
- seconds - _TOD_Seconds_since_epoch, WATCHDOG_ACTIVATE_NOW );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_timer_reset
- *
- * This directive allows a thread to reset a timer.
- *
- * Input parameters:
- * id - timer id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_timer_reset(
- Objects_Id id
-)
-{
- Timer_Control *the_timer;
- Objects_Locations location;
-
- the_timer = _Timer_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE: /* should never return this */
- return( RTEMS_INTERNAL_ERROR );
- case OBJECTS_LOCAL:
- if ( _Timer_Is_interval_class( the_timer->the_class ) ) {
- _Watchdog_Reset( &the_timer->Ticker );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_NOT_DEFINED );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
diff --git a/cpukit/rtems/src/sem.c b/cpukit/rtems/src/sem.c
deleted file mode 100644
index 19410c62f1..0000000000
--- a/cpukit/rtems/src/sem.c
+++ /dev/null
@@ -1,483 +0,0 @@
-/*
- * Semaphore Manager
- *
- * DESCRIPTION:
- *
- * This package is the implementation of 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
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/attr.h>
-#include <rtems/config.h>
-#include <rtems/isr.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/sem.h>
-#include <rtems/states.h>
-#include <rtems/thread.h>
-#include <rtems/threadq.h>
-#include <rtems/mpci.h>
-
-/*PAGE
- *
- * _Semaphore_Manager_initialization
- *
- * This routine initializes all semaphore manager related data structures.
- *
- * Input parameters:
- * maximum_semaphores - maximum configured semaphores
- *
- * Output parameters: NONE
- */
-
-void _Semaphore_Manager_initialization(
- unsigned32 maximum_semaphores
-)
-{
- _Objects_Initialize_information(
- &_Semaphore_Information,
- TRUE,
- maximum_semaphores,
- sizeof( Semaphore_Control )
- );
-}
-
-/*PAGE
- *
- * rtems_semaphore_create
- *
- * This directive creates a semaphore and sets the initial value based
- * on the given count. A semaphore id is returned.
- *
- * Input parameters:
- * name - user defined semaphore name
- * count - initial count of semaphore
- * attribute_set - semaphore attributes
- * id - pointer to semaphore id
- *
- * Output parameters:
- * id - semaphore id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_semaphore_create(
- Objects_Name name,
- unsigned32 count,
- rtems_attribute attribute_set,
- Objects_Id *id
-)
-{
- register Semaphore_Control *the_semaphore;
-
- if ( !_Objects_Is_name_valid( name ) )
- return ( RTEMS_INVALID_NAME );
-
- if ( _Attributes_Is_global( attribute_set ) ) {
-
- if ( !_Configuration_Is_multiprocessing() )
- return( RTEMS_MP_NOT_CONFIGURED );
-
- if ( _Attributes_Is_inherit_priority( attribute_set ) )
- return( RTEMS_NOT_DEFINED );
-
- } else if ( _Attributes_Is_inherit_priority( attribute_set ) ) {
-
- if ( ! ( _Attributes_Is_binary_semaphore( attribute_set ) &&
- _Attributes_Is_priority( attribute_set ) ) )
- return( RTEMS_NOT_DEFINED );
-
- }
-
- if ( _Attributes_Is_binary_semaphore( attribute_set ) && ( count > 1 ) )
- return( RTEMS_INVALID_NUMBER );
-
- _Thread_Disable_dispatch(); /* prevents deletion */
-
- the_semaphore = _Semaphore_Allocate();
-
- if ( !the_semaphore ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- if ( _Attributes_Is_global( attribute_set ) &&
- !( _Objects_MP_Open( &_Semaphore_Information, name,
- the_semaphore->Object.id, FALSE ) ) ) {
- _Semaphore_Free( the_semaphore );
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- the_semaphore->attribute_set = attribute_set;
- the_semaphore->count = count;
-
- if ( _Attributes_Is_binary_semaphore( attribute_set ) && count == 0 ) {
- the_semaphore->nest_count = 1;
- the_semaphore->holder = _Thread_Executing;
- the_semaphore->holder_id = _Thread_Executing->Object.id;
- _Thread_Executing->resource_count++;
- } else {
- the_semaphore->nest_count = 0;
- the_semaphore->holder = NULL;
- the_semaphore->holder_id = 0;
- }
-
- _Thread_queue_Initialize( &the_semaphore->Wait_queue,
- attribute_set, STATES_WAITING_FOR_SEMAPHORE );
-
- _Objects_Open( &_Semaphore_Information, &the_semaphore->Object, name );
-
- *id = the_semaphore->Object.id;
-
- if ( _Attributes_Is_global( attribute_set ) )
- _Semaphore_MP_Send_process_packet(
- SEMAPHORE_MP_ANNOUNCE_CREATE,
- the_semaphore->Object.id,
- name,
- 0 /* Not used */
- );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_semaphore_ident
- *
- * This directive returns the system ID associated with
- * the semaphore name.
- *
- * Input parameters:
- * name - user defined semaphore name
- * node - node(s) to be searched
- * id - pointer to semaphore id
- *
- * Output parameters:
- * *id - semaphore id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_semaphore_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-)
-{
- return( _Objects_Name_to_id( &_Semaphore_Information, name, node, id ) );
-}
-
-/*PAGE
- *
- * rtems_semaphore_delete
- *
- * This directive allows a thread to delete a semaphore specified by
- * the semaphore id. The semaphore is freed back to the inactive
- * semaphore chain.
- *
- * Input parameters:
- * id - semaphore id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_semaphore_delete(
- Objects_Id id
-)
-{
- register Semaphore_Control *the_semaphore;
- Objects_Locations location;
-
- the_semaphore = _Semaphore_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Dispatch();
- return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
- case OBJECTS_LOCAL:
- if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set) &&
- ( the_semaphore->count == 0 ) ) {
- _Thread_Enable_dispatch();
- return( RTEMS_RESOURCE_IN_USE );
- }
-
- _Objects_Close( &_Semaphore_Information, &the_semaphore->Object );
-
- _Thread_queue_Flush(
- &the_semaphore->Wait_queue,
- _Semaphore_MP_Send_object_was_deleted
- );
-
- _Semaphore_Free( the_semaphore );
-
- if ( _Attributes_Is_global( the_semaphore->attribute_set ) ) {
-
- _Objects_MP_Close( &_Semaphore_Information, the_semaphore->Object.id );
-
- _Semaphore_MP_Send_process_packet(
- SEMAPHORE_MP_ANNOUNCE_DELETE,
- the_semaphore->Object.id,
- 0, /* Not used */
- 0 /* Not used */
- );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_semaphore_obtain
- *
- * This directive allows a thread to acquire a semaphore.
- *
- * Input parameters:
- * id - semaphore id
- * option_set - wait option
- * timeout - number of ticks to wait (0 means wait forever)
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_semaphore_obtain(
- Objects_Id id,
- unsigned32 option_set,
- rtems_interval timeout
-)
-{
- register Semaphore_Control *the_semaphore;
- Objects_Locations location;
-
- the_semaphore = _Semaphore_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return _Semaphore_MP_Send_request_packet(
- SEMAPHORE_MP_OBTAIN_REQUEST,
- id,
- option_set,
- timeout
- );
- case OBJECTS_LOCAL:
- if ( !_Semaphore_Seize( the_semaphore, option_set ) ) {
- if ( _Attributes_Is_inherit_priority( the_semaphore->attribute_set ) &&
- the_semaphore->holder->current_priority >
- _Thread_Executing->current_priority ) {
- _Thread_Change_priority(
- the_semaphore->holder, _Thread_Executing->current_priority );
- }
- _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );
- }
- _Thread_Enable_dispatch();
- return( _Thread_Executing->Wait.return_code );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_semaphore_release
- *
- * This directive allows a thread to release a semaphore.
- *
- * Input parameters:
- * id - semaphore id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_semaphore_release(
- Objects_Id id
-)
-{
- register Semaphore_Control *the_semaphore;
- Objects_Locations location;
- Thread_Control *the_thread;
-
- the_semaphore = _Semaphore_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return(
- _Semaphore_MP_Send_request_packet(
- SEMAPHORE_MP_RELEASE_REQUEST,
- id,
- 0, /* Not used */
- MPCI_DEFAULT_TIMEOUT
- )
- );
- case OBJECTS_LOCAL:
- if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set)) {
-
- if ( !_Objects_Are_ids_equal(
- _Thread_Executing->Object.id, the_semaphore->holder_id ) ) {
- _Thread_Enable_dispatch();
- return( RTEMS_NOT_OWNER_OF_RESOURCE );
- }
-
- the_semaphore->nest_count--;
-
- if ( the_semaphore->nest_count != 0 ) {
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- _Thread_Executing->resource_count--;
- the_semaphore->holder = NULL;
- the_semaphore->holder_id = 0;
-
- /*
- * Whether or not someone is waiting for the semaphore, an
- * inherited priority must be lowered if this is the last
- * semaphore (i.e. resource) this task has.
- */
-
- if ( _Attributes_Is_inherit_priority(the_semaphore->attribute_set) &&
- _Thread_Executing->resource_count == 0 &&
- _Thread_Executing->real_priority !=
- _Thread_Executing->current_priority ) {
- _Thread_Change_priority(
- _Thread_Executing, _Thread_Executing->real_priority );
- }
-
- }
-
- if ( (the_thread = _Thread_queue_Dequeue(&the_semaphore->Wait_queue)) ) {
-
- if ( !_Objects_Is_local_id( the_thread->Object.id ) ) {
- the_thread->receive_packet->return_code = RTEMS_SUCCESSFUL;
-
- if ( _Attributes_Is_binary_semaphore(the_semaphore->attribute_set) ) {
- the_semaphore->holder = NULL;
- the_semaphore->holder_id = the_thread->Object.id;
- the_semaphore->nest_count = 1;
- }
-
- _Semaphore_MP_Send_response_packet(
- SEMAPHORE_MP_OBTAIN_RESPONSE,
- id,
- the_thread
- );
- } else {
-
- if ( _Attributes_Is_binary_semaphore(the_semaphore->attribute_set) ) {
- the_semaphore->holder = the_thread;
- the_semaphore->holder_id = the_thread->Object.id;
- the_thread->resource_count++;
- the_semaphore->nest_count = 1;
- }
-
- /*
- * No special action for priority inheritance because the_thread
- * is guaranteed to be the highest priority thread waiting for
- * the semaphore.
- */
- }
- } else
- the_semaphore->count += 1;
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * _Semaphore_Seize
- *
- * This routine attempts to allocate a semaphore to the calling thread.
- *
- * Input parameters:
- * the_semaphore - pointer to semaphore control block
- * option_set - acquire semaphore options
- *
- * Output parameters:
- * TRUE - if semaphore allocated
- * FALSE - if semaphore NOT allocated
- *
- * INTERRUPT LATENCY:
- * available
- * wait
- */
-
-boolean _Semaphore_Seize(
- Semaphore_Control *the_semaphore,
- rtems_option option_set
-)
-{
- Thread_Control *executing;
- ISR_Level level;
-
- executing = _Thread_Executing;
- executing->Wait.return_code = RTEMS_SUCCESSFUL;
- _ISR_Disable( level );
- if ( the_semaphore->count != 0 ) {
- the_semaphore->count -= 1;
- if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set ) ) {
- the_semaphore->holder = executing;
- the_semaphore->holder_id = executing->Object.id;
- the_semaphore->nest_count = 1;
- executing->resource_count++;
- }
- _ISR_Enable( level );
- return( TRUE );
- }
-
- if ( _Options_Is_no_wait( option_set ) ) {
- _ISR_Enable( level );
- executing->Wait.return_code = RTEMS_UNSATISFIED;
- return( TRUE );
- }
-
- if ( _Attributes_Is_binary_semaphore( the_semaphore->attribute_set ) ) {
- if ( _Objects_Are_ids_equal(
- _Thread_Executing->Object.id, the_semaphore->holder_id ) ) {
- the_semaphore->nest_count++;
- _ISR_Enable( level );
- return( TRUE );
- }
- }
-
- the_semaphore->Wait_queue.sync = TRUE;
- executing->Wait.queue = &the_semaphore->Wait_queue;
- executing->Wait.id = the_semaphore->Object.id;
- executing->Wait.option_set = option_set;
- _ISR_Enable( level );
- return( FALSE );
-}
diff --git a/cpukit/rtems/src/semmp.c b/cpukit/rtems/src/semmp.c
deleted file mode 100644
index d131d48150..0000000000
--- a/cpukit/rtems/src/semmp.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Multiprocessing Support for the Semaphore Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/mpci.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/sem.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*PAGE
- *
- * _Semaphore_MP_Send_process_packet
- *
- */
-
-void _Semaphore_MP_Send_process_packet (
- Semaphore_MP_Remote_operations operation,
- Objects_Id semaphore_id,
- Objects_Name name,
- Objects_Id proxy_id
-)
-{
- Semaphore_MP_Packet *the_packet;
- unsigned32 node;
-
- switch ( operation ) {
-
- case SEMAPHORE_MP_ANNOUNCE_CREATE:
- case SEMAPHORE_MP_ANNOUNCE_DELETE:
- case SEMAPHORE_MP_EXTRACT_PROXY:
-
- the_packet = _Semaphore_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_SEMAPHORE;
- the_packet->Prefix.length = sizeof ( Semaphore_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Semaphore_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = semaphore_id;
- the_packet->name = name;
- the_packet->proxy_id = proxy_id;
-
- if ( operation == SEMAPHORE_MP_EXTRACT_PROXY )
- node = rtems_get_node( semaphore_id );
- else
- node = MPCI_ALL_NODES;
-
- _MPCI_Send_process_packet( node, &the_packet->Prefix );
- break;
-
- case SEMAPHORE_MP_OBTAIN_REQUEST:
- case SEMAPHORE_MP_OBTAIN_RESPONSE:
- case SEMAPHORE_MP_RELEASE_REQUEST:
- case SEMAPHORE_MP_RELEASE_RESPONSE:
- break;
- }
-}
-
-/*PAGE
- *
- * _Semaphore_MP_Send_request_packet
- *
- */
-
-rtems_status_code _Semaphore_MP_Send_request_packet (
- Semaphore_MP_Remote_operations operation,
- Objects_Id semaphore_id,
- rtems_option option_set,
- rtems_interval timeout
-)
-{
- Semaphore_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case SEMAPHORE_MP_OBTAIN_REQUEST:
- case SEMAPHORE_MP_RELEASE_REQUEST:
-
- the_packet = _Semaphore_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_SEMAPHORE;
- the_packet->Prefix.length = sizeof ( Semaphore_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Semaphore_MP_Packet );
- if ( ! _Options_Is_no_wait(option_set))
- the_packet->Prefix.timeout = timeout;
-
- the_packet->operation = operation;
- the_packet->Prefix.id = semaphore_id;
- the_packet->option_set = option_set;
-
- return _MPCI_Send_request_packet(
- rtems_get_node( semaphore_id ),
- &the_packet->Prefix,
- STATES_WAITING_FOR_SEMAPHORE
- );
- break;
-
- case SEMAPHORE_MP_ANNOUNCE_CREATE:
- case SEMAPHORE_MP_ANNOUNCE_DELETE:
- case SEMAPHORE_MP_EXTRACT_PROXY:
- case SEMAPHORE_MP_OBTAIN_RESPONSE:
- case SEMAPHORE_MP_RELEASE_RESPONSE:
- break;
-
- }
- /*
- * The following line is included to satisfy compilers which
- * produce warnings when a function does not end with a return.
- */
- return RTEMS_SUCCESSFUL;
-}
-
-/*PAGE
- *
- * _Semaphore_MP_Send_response_packet
- *
- */
-
-void _Semaphore_MP_Send_response_packet (
- Semaphore_MP_Remote_operations operation,
- Objects_Id semaphore_id,
- Thread_Control *the_thread
-)
-{
- Semaphore_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case SEMAPHORE_MP_OBTAIN_RESPONSE:
- case SEMAPHORE_MP_RELEASE_RESPONSE:
-
- the_packet = ( Semaphore_MP_Packet *) the_thread->receive_packet;
-
-/*
- * The packet being returned already contains the class, length, and
- * to_convert fields, therefore they are not set in this routine.
- */
- the_packet->operation = operation;
- the_packet->Prefix.id = the_packet->Prefix.source_tid;
-
- _MPCI_Send_response_packet(
- rtems_get_node( the_packet->Prefix.source_tid ),
- &the_packet->Prefix
- );
- break;
-
- case SEMAPHORE_MP_ANNOUNCE_CREATE:
- case SEMAPHORE_MP_ANNOUNCE_DELETE:
- case SEMAPHORE_MP_EXTRACT_PROXY:
- case SEMAPHORE_MP_OBTAIN_REQUEST:
- case SEMAPHORE_MP_RELEASE_REQUEST:
- break;
-
- }
-}
-
-/*PAGE
- *
- *
- * _Semaphore_MP_Process_packet
- *
- */
-
-void _Semaphore_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-)
-{
- Semaphore_MP_Packet *the_packet;
- Thread_Control *the_thread;
- boolean ignored;
-
- the_packet = (Semaphore_MP_Packet *) the_packet_prefix;
-
- switch ( the_packet->operation ) {
-
- case SEMAPHORE_MP_ANNOUNCE_CREATE:
-
- ignored = _Objects_MP_Open(
- &_Semaphore_Information,
- the_packet->name,
- the_packet->Prefix.id,
- TRUE
- );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case SEMAPHORE_MP_ANNOUNCE_DELETE:
-
- _Objects_MP_Close( &_Semaphore_Information, the_packet->Prefix.id );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case SEMAPHORE_MP_EXTRACT_PROXY:
-
- the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id );
-
- if ( ! _Thread_Is_null( the_thread ) )
- _Thread_queue_Extract( the_thread->Wait.queue, the_thread );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case SEMAPHORE_MP_OBTAIN_REQUEST:
-
- the_packet->Prefix.return_code = rtems_semaphore_obtain(
- the_packet->Prefix.id,
- the_packet->option_set,
- the_packet->Prefix.timeout
- );
-
- if ( ! _Status_Is_proxy_blocking( the_packet->Prefix.return_code ) )
- _Semaphore_MP_Send_response_packet(
- SEMAPHORE_MP_OBTAIN_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
-
- case SEMAPHORE_MP_OBTAIN_RESPONSE:
- case SEMAPHORE_MP_RELEASE_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case SEMAPHORE_MP_RELEASE_REQUEST:
-
- the_packet->Prefix.return_code = rtems_semaphore_release(
- the_packet->Prefix.id
- );
-
- _Semaphore_MP_Send_response_packet(
- SEMAPHORE_MP_RELEASE_RESPONSE,
- the_packet->Prefix.id,
- _Thread_Executing
- );
- break;
- }
-}
-
-/*PAGE
- *
- * _Semaphore_MP_Send_object_was_deleted
- *
- */
-
-void _Semaphore_MP_Send_object_was_deleted (
- Thread_Control *the_proxy
-)
-{
- the_proxy->receive_packet->return_code = RTEMS_OBJECT_WAS_DELETED;
-
- _Semaphore_MP_Send_response_packet(
- SEMAPHORE_MP_OBTAIN_RESPONSE,
- the_proxy->Wait.id,
- the_proxy
- );
-
-}
-
-/*PAGE
- *
- * _Semaphore_MP_Send_extract_proxy
- *
- */
-
-void _Semaphore_MP_Send_extract_proxy (
- Thread_Control *the_thread
-)
-{
- _Semaphore_MP_Send_process_packet(
- SEMAPHORE_MP_EXTRACT_PROXY,
- the_thread->Wait.id,
- (Objects_Name) 0,
- the_thread->Object.id
- );
-
-}
-
-/*PAGE
- *
- * _Semaphore_MP_Get_packet
- *
- */
-
-Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void )
-{
- return ( (Semaphore_MP_Packet *) _MPCI_Get_packet() );
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/signal.c b/cpukit/rtems/src/signal.c
deleted file mode 100644
index 411df5d86c..0000000000
--- a/cpukit/rtems/src/signal.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Signal Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/asr.h>
-#include <rtems/isr.h>
-#include <rtems/modes.h>
-#include <rtems/signal.h>
-#include <rtems/thread.h>
-
-/*PAGE
- *
- * rtems_signal_catch
- *
- * This directive allows a thread to specify what action to take when
- * catching signals.
- *
- * Input parameters:
- * handler - address of asynchronous signal routine (asr)
- * ( NULL indicates asr is invalid )
- * mode_set - mode value for asr
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - always succeeds
- */
-
-rtems_status_code rtems_signal_catch(
- rtems_asr_entry handler,
- rtems_mode mode_set
-)
-{
- Thread_Control *executing;
-
- executing = _Thread_Executing;
- _Thread_Disable_dispatch(); /* cannot reschedule while */
- /* the thread is inconsistent */
-
- if ( ! _ASR_Is_null_handler( handler ) ) {
- executing->Signal.mode_set = mode_set;
- executing->Signal.handler = handler;
- }
- else
- _ASR_Initialize( &executing->Signal );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_signal_send
- *
- * This directive allows a thread to send signals to a thread.
- *
- * Input parameters:
- * id - thread id
- * signal_set - signal set
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_signal_send(
- Objects_Id id,
- rtems_signal_set signal_set
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return _Signal_MP_Send_request_packet(
- SIGNAL_MP_SEND_REQUEST,
- id,
- signal_set
- );
- case OBJECTS_LOCAL:
- if ( ! _ASR_Is_null_handler( the_thread->Signal.handler ) ) {
- if ( _Modes_Is_asr_disabled( the_thread->current_modes ) )
- _ASR_Post_signals( signal_set, &the_thread->Signal.signals_pending );
- else {
- _ASR_Post_signals( signal_set, &the_thread->Signal.signals_posted );
- if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
- _ISR_Signals_to_thread_executing = TRUE;
- }
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_NOT_DEFINED );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
diff --git a/cpukit/rtems/src/signalmp.c b/cpukit/rtems/src/signalmp.c
deleted file mode 100644
index 4ac8123766..0000000000
--- a/cpukit/rtems/src/signalmp.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Multiprocessing Support for the Signal Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/mpci.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/signal.h>
-#include <rtems/states.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*PAGE
- *
- * _Signal_MP_Send_process_packet
- *
- * This subprogram is not needed since there are no process
- * packets to be sent by this manager.
- *
- */
-
-/*PAGE
- *
- * _Signal_MP_Send_request_packet
- *
- */
-
-rtems_status_code _Signal_MP_Send_request_packet (
- Signal_MP_Remote_operations operation,
- Objects_Id task_id,
- rtems_signal_set signal_in
-)
-{
- Signal_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case SIGNAL_MP_SEND_REQUEST:
-
- the_packet = _Signal_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_SIGNAL;
- the_packet->Prefix.length = sizeof ( Signal_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( Signal_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = task_id;
- the_packet->signal_in = signal_in;
-
- return _MPCI_Send_request_packet(
- rtems_get_node( task_id ),
- &the_packet->Prefix,
- STATES_READY /* Not used */
- );
- break;
-
- case SIGNAL_MP_SEND_RESPONSE:
- break;
-
- }
- /*
- * The following line is included to satisfy compilers which
- * produce warnings when a function does not end with a return.
- */
- return RTEMS_INTERNAL_ERROR;
-}
-
-/*PAGE
- *
- * _Signal_MP_Send_response_packet
- *
- */
-
-void _Signal_MP_Send_response_packet (
- Signal_MP_Remote_operations operation,
- Thread_Control *the_thread
-)
-{
- Signal_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case SIGNAL_MP_SEND_RESPONSE:
-
- the_packet = ( Signal_MP_Packet *) the_thread->receive_packet;
-
-/*
- * The packet being returned already contains the class, length, and
- * to_convert fields, therefore they are not set in this routine.
- */
- the_packet->operation = operation;
- the_packet->Prefix.id = the_packet->Prefix.source_tid;
-
- _MPCI_Send_response_packet(
- rtems_get_node( the_packet->Prefix.source_tid ),
- &the_packet->Prefix
- );
- break;
-
- case SIGNAL_MP_SEND_REQUEST:
- break;
-
- }
-}
-
-/*PAGE
- *
- *
- * _Signal_MP_Process_packet
- *
- */
-
-void _Signal_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-)
-{
- Signal_MP_Packet *the_packet;
- Thread_Control *the_thread;
-
- the_packet = (Signal_MP_Packet *) the_packet_prefix;
-
- switch ( the_packet->operation ) {
-
- case SIGNAL_MP_SEND_REQUEST:
-
- the_packet->Prefix.return_code = rtems_signal_send(
- the_packet->Prefix.id,
- the_packet->signal_in
- );
-
- _Signal_MP_Send_response_packet(
- SIGNAL_MP_SEND_RESPONSE,
- _Thread_Executing
- );
- break;
-
- case SIGNAL_MP_SEND_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- }
-}
-
-/*PAGE
- *
- * _Signal_MP_Send_object_was_deleted
- *
- * This subprogram is not needed since there are no objects
- * deleted by this manager.
- *
- */
-
-/*PAGE
- *
- * _Signal_MP_Send_extract_proxy
- *
- * This subprogram is not needed since there are no objects
- * deleted by this manager.
- *
- */
-
-/*PAGE
- *
- * _Signal_MP_Get_packet
- *
- */
-
-Signal_MP_Packet *_Signal_MP_Get_packet ( void )
-{
- return ( (Signal_MP_Packet *) _MPCI_Get_packet() );
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/taskmp.c b/cpukit/rtems/src/taskmp.c
deleted file mode 100644
index b938c60c53..0000000000
--- a/cpukit/rtems/src/taskmp.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Multiprocessing Support for the RTEMS Task Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/mpci.h>
-#include <rtems/mppkt.h>
-#include <rtems/object.h>
-#include <rtems/options.h>
-#include <rtems/tasks.h>
-#include <rtems/thread.h>
-#include <rtems/watchdog.h>
-
-/*PAGE
- *
- * _RTEMS_tasks_MP_Send_process_packet
- *
- */
-
-void _RTEMS_tasks_MP_Send_process_packet (
- RTEMS_tasks_MP_Remote_operations operation,
- Objects_Id task_id,
- Objects_Name name
-)
-{
- RTEMS_tasks_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case RTEMS_TASKS_MP_ANNOUNCE_CREATE:
- case RTEMS_TASKS_MP_ANNOUNCE_DELETE:
-
- the_packet = _RTEMS_tasks_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_TASKS;
- the_packet->Prefix.length = sizeof ( RTEMS_tasks_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( RTEMS_tasks_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = task_id;
- the_packet->name = name;
-
- _MPCI_Send_process_packet( MPCI_ALL_NODES, &the_packet->Prefix );
- break;
-
- case RTEMS_TASKS_MP_SUSPEND_REQUEST:
- case RTEMS_TASKS_MP_SUSPEND_RESPONSE:
- case RTEMS_TASKS_MP_RESUME_REQUEST:
- case RTEMS_TASKS_MP_RESUME_RESPONSE:
- case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST:
- case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE:
- case RTEMS_TASKS_MP_GET_NOTE_REQUEST:
- case RTEMS_TASKS_MP_GET_NOTE_RESPONSE:
- case RTEMS_TASKS_MP_SET_NOTE_REQUEST:
- case RTEMS_TASKS_MP_SET_NOTE_RESPONSE:
- break;
- }
-}
-
-/*PAGE
- *
- * _RTEMS_tasks_MP_Send_request_packet
- *
- */
-
-rtems_status_code _RTEMS_tasks_MP_Send_request_packet (
- RTEMS_tasks_MP_Remote_operations operation,
- Objects_Id task_id,
- rtems_task_priority new_priority,
- unsigned32 notepad,
- unsigned32 note
-)
-{
- RTEMS_tasks_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case RTEMS_TASKS_MP_SUSPEND_REQUEST:
- case RTEMS_TASKS_MP_RESUME_REQUEST:
- case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST:
- case RTEMS_TASKS_MP_GET_NOTE_REQUEST:
- case RTEMS_TASKS_MP_SET_NOTE_REQUEST:
-
- the_packet = _RTEMS_tasks_MP_Get_packet();
- the_packet->Prefix.the_class = RTEMS_MP_PACKET_TASKS;
- the_packet->Prefix.length = sizeof ( RTEMS_tasks_MP_Packet );
- the_packet->Prefix.to_convert = sizeof ( RTEMS_tasks_MP_Packet );
- the_packet->operation = operation;
- the_packet->Prefix.id = task_id;
- the_packet->the_priority = new_priority;
- the_packet->notepad = notepad;
- the_packet->note = note;
-
- return _MPCI_Send_request_packet(
- rtems_get_node( task_id ),
- &the_packet->Prefix,
- STATES_READY /* Not used */
- );
- break;
-
- case RTEMS_TASKS_MP_ANNOUNCE_CREATE:
- case RTEMS_TASKS_MP_ANNOUNCE_DELETE:
- case RTEMS_TASKS_MP_SUSPEND_RESPONSE:
- case RTEMS_TASKS_MP_RESUME_RESPONSE:
- case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE:
- case RTEMS_TASKS_MP_GET_NOTE_RESPONSE:
- case RTEMS_TASKS_MP_SET_NOTE_RESPONSE:
- break;
-
- }
- /*
- * The following line is included to satisfy compilers which
- * produce warnings when a function does not end with a return.
- */
- return RTEMS_SUCCESSFUL;
-}
-
-/*PAGE
- *
- * _RTEMS_tasks_MP_Send_response_packet
- *
- */
-
-void _RTEMS_tasks_MP_Send_response_packet (
- RTEMS_tasks_MP_Remote_operations operation,
- Thread_Control *the_thread
-)
-{
- RTEMS_tasks_MP_Packet *the_packet;
-
- switch ( operation ) {
-
- case RTEMS_TASKS_MP_SUSPEND_RESPONSE:
- case RTEMS_TASKS_MP_RESUME_RESPONSE:
- case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE:
- case RTEMS_TASKS_MP_GET_NOTE_RESPONSE:
- case RTEMS_TASKS_MP_SET_NOTE_RESPONSE:
-
- the_packet = (RTEMS_tasks_MP_Packet *) the_thread->receive_packet;
-
-/*
- * The packet being returned already contains the class, length, and
- * to_convert fields, therefore they are not set in this routine.
- */
- the_packet->operation = operation;
- the_packet->Prefix.id = the_packet->Prefix.source_tid;
-
- _MPCI_Send_response_packet(
- rtems_get_node( the_packet->Prefix.source_tid ),
- &the_packet->Prefix
- );
- break;
-
- case RTEMS_TASKS_MP_ANNOUNCE_CREATE:
- case RTEMS_TASKS_MP_ANNOUNCE_DELETE:
- case RTEMS_TASKS_MP_SUSPEND_REQUEST:
- case RTEMS_TASKS_MP_RESUME_REQUEST:
- case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST:
- case RTEMS_TASKS_MP_GET_NOTE_REQUEST:
- case RTEMS_TASKS_MP_SET_NOTE_REQUEST:
- break;
-
- }
-}
-
-/*PAGE
- *
- *
- * _RTEMS_tasks_MP_Process_packet
- *
- */
-
-void _RTEMS_tasks_MP_Process_packet (
- rtems_packet_prefix *the_packet_prefix
-)
-{
- RTEMS_tasks_MP_Packet *the_packet;
- Thread_Control *the_thread;
- boolean ignored;
-
- the_packet = (RTEMS_tasks_MP_Packet *) the_packet_prefix;
-
- switch ( the_packet->operation ) {
-
- case RTEMS_TASKS_MP_ANNOUNCE_CREATE:
-
- ignored = _Objects_MP_Open(
- &_Thread_Information,
- the_packet->name,
- the_packet->Prefix.id,
- TRUE
- );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case RTEMS_TASKS_MP_ANNOUNCE_DELETE:
-
- _Objects_MP_Close( &_Thread_Information, the_packet->Prefix.id );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case RTEMS_TASKS_MP_SUSPEND_REQUEST:
-
- the_packet->Prefix.return_code = rtems_task_suspend(
- the_packet->Prefix.id
- );
-
- _RTEMS_tasks_MP_Send_response_packet(
- RTEMS_TASKS_MP_SUSPEND_RESPONSE,
- _Thread_Executing
- );
- break;
-
- case RTEMS_TASKS_MP_SUSPEND_RESPONSE:
- case RTEMS_TASKS_MP_RESUME_RESPONSE:
- case RTEMS_TASKS_MP_SET_NOTE_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case RTEMS_TASKS_MP_RESUME_REQUEST:
-
- the_packet->Prefix.return_code = rtems_task_resume(
- the_packet->Prefix.id
- );
-
- _RTEMS_tasks_MP_Send_response_packet(
- RTEMS_TASKS_MP_RESUME_RESPONSE,
- _Thread_Executing
- );
- break;
-
- case RTEMS_TASKS_MP_SET_PRIORITY_REQUEST:
-
- the_packet->Prefix.return_code = rtems_task_set_priority(
- the_packet->Prefix.id,
- the_packet->the_priority,
- &the_packet->the_priority
- );
-
- _RTEMS_tasks_MP_Send_response_packet(
- RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE,
- _Thread_Executing
- );
- break;
-
- case RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- *(rtems_task_priority *)the_thread->Wait.return_argument =
- the_packet->the_priority;
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case RTEMS_TASKS_MP_GET_NOTE_REQUEST:
-
- the_packet->Prefix.return_code = rtems_task_get_note(
- the_packet->Prefix.id,
- the_packet->notepad,
- &the_packet->note
- );
-
- _RTEMS_tasks_MP_Send_response_packet(
- RTEMS_TASKS_MP_GET_NOTE_RESPONSE,
- _Thread_Executing
- );
- break;
-
- case RTEMS_TASKS_MP_GET_NOTE_RESPONSE:
-
- the_thread = _MPCI_Process_response( the_packet_prefix );
-
- *(unsigned32 *)the_thread->Wait.return_argument = the_packet->note;
-
- _MPCI_Return_packet( the_packet_prefix );
- break;
-
- case RTEMS_TASKS_MP_SET_NOTE_REQUEST:
-
- the_packet->Prefix.return_code = rtems_task_set_note(
- the_packet->Prefix.id,
- the_packet->notepad,
- the_packet->note
- );
-
- _RTEMS_tasks_MP_Send_response_packet(
- RTEMS_TASKS_MP_SET_NOTE_RESPONSE,
- _Thread_Executing
- );
- break;
- }
-}
-
-/*PAGE
- *
- * _RTEMS_tasks_MP_Send_object_was_deleted
- *
- * This routine is not neededby the Tasks since a task
- * cannot be globally deleted.
- *
- */
-
-/*PAGE
- *
- * _RTEMS_tasks_MP_Send_extract_proxy
- *
- * This routine is not neededby the Tasks since a task
- * cannot be globally deleted.
- *
- */
-
-/*PAGE
- *
- * _RTEMS_tasks_MP_Get_packet
- *
- */
-
-RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void )
-{
- return ( (RTEMS_tasks_MP_Packet *) _MPCI_Get_packet() );
-}
-
-/* end of file */
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c
deleted file mode 100644
index edba524d94..0000000000
--- a/cpukit/rtems/src/tasks.c
+++ /dev/null
@@ -1,816 +0,0 @@
-/*
- * RTEMS Task Manager
- *
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- * All rights assigned to U.S. Government, 1994.
- *
- * This material may be reproduced by or for the U.S. Government pursuant
- * to the copyright license under the clause at DFARS 252.227-7013. This
- * notice must appear in all copies of this file and its derivatives.
- *
- * $Id$
- */
-
-#include <rtems/system.h>
-#include <rtems/modes.h>
-#include <rtems/object.h>
-#include <rtems/stack.h>
-#include <rtems/states.h>
-#include <rtems/tasks.h>
-#include <rtems/thread.h>
-#include <rtems/threadq.h>
-#include <rtems/tod.h>
-#include <rtems/userext.h>
-#include <rtems/wkspace.h>
-
-/*PAGE
- *
- * rtems_task_create
- *
- * This directive creates a thread by allocating and initializing a
- * thread control block and a stack. The newly created thread is
- * placed in the dormant state.
- *
- * Input parameters:
- * name - user defined thread name
- * initial_priority - thread priority
- * stack_size - stack size in bytes
- * initial_modes - initial thread mode
- * attribute_set - thread attributes
- * id - pointer to thread id
- *
- * Output parameters:
- * id - thread id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_create(
- Objects_Name name,
- rtems_task_priority initial_priority,
- unsigned32 stack_size,
- rtems_mode initial_modes,
- rtems_attribute attribute_set,
- Objects_Id *id
-)
-{
- register Thread_Control *the_thread;
- unsigned32 actual_stack_size;
- unsigned32 memory_needed;
- void *memory;
- rtems_attribute the_attribute_set;
-
- if ( !_Objects_Is_name_valid( name ) )
- return ( RTEMS_INVALID_NAME );
-
-#if 0
- if ( !_Stack_Is_enough( stack_size ) )
- return( RTEMS_INVALID_SIZE );
-#endif
-
- if ( !_Stack_Is_enough( stack_size ) )
- actual_stack_size = RTEMS_MINIMUM_STACK_SIZE;
- else
- actual_stack_size = stack_size;
-
- if ( !_Priority_Is_valid( initial_priority ) )
- return( RTEMS_INVALID_PRIORITY );
-
- /*
- * Fix the attribute set to match the attributes which
- * this processor (1) requires and (2) is able to support.
- * First add in the required flags for attribute_set
- * Typically this might include FP if the platform
- * or application required all tasks to be fp aware.
- * Then turn off the requested bits which are not supported.
- */
-
- the_attribute_set = _Attributes_Set( attribute_set, ATTRIBUTES_REQUIRED );
- the_attribute_set =
- _Attributes_Clear( the_attribute_set, ATTRIBUTES_NOT_SUPPORTED );
-
- if ( _Attributes_Is_global( the_attribute_set ) &&
- !_Configuration_Is_multiprocessing() )
- return( RTEMS_MP_NOT_CONFIGURED );
-
- _Thread_Disable_dispatch(); /* to prevent deletion */
-
- the_thread = _RTEMS_tasks_Allocate();
-
- if ( !the_thread ) {
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- actual_stack_size = _Stack_Adjust_size( actual_stack_size );
- memory_needed = actual_stack_size;
-
- if ( _Attributes_Is_floating_point( the_attribute_set ) )
- memory_needed += CONTEXT_FP_SIZE;
-
- memory = _Workspace_Allocate( memory_needed );
-
- if ( !memory ) {
- _RTEMS_tasks_Free( the_thread );
- _Thread_Enable_dispatch();
- return( RTEMS_UNSATISFIED );
- }
-
- /*
- * Stack is put in the lower address regions of the allocated memory.
- * The optional floating point context area goes into the higher part
- * of the allocated memory.
- */
-
- _Stack_Initialize(
- &the_thread->Start.Initial_stack, memory, actual_stack_size );
-
- if ( _Attributes_Is_floating_point( the_attribute_set ) )
- the_thread->fp_context = _Context_Fp_start( memory, actual_stack_size );
- else
- the_thread->fp_context = NULL;
-
- the_thread->Start.fp_context = the_thread->fp_context;
-
- if ( _Attributes_Is_global( the_attribute_set ) &&
- !( _Objects_MP_Open( &_Thread_Information, name,
- the_thread->Object.id, FALSE ) ) ) {
- _RTEMS_tasks_Free( the_thread );
- (void) _Workspace_Free( memory );
- _Thread_Enable_dispatch();
- return( RTEMS_TOO_MANY );
- }
-
- the_thread->name = name;
- the_thread->attribute_set = the_attribute_set;
- the_thread->current_state = STATES_DORMANT;
- the_thread->current_modes = initial_modes;
- the_thread->pending_events = EVENT_SETS_NONE_PENDING;
- the_thread->resource_count = 0;
- the_thread->real_priority = initial_priority;
- the_thread->Start.initial_priority = initial_priority;
- the_thread->Start.initial_modes = initial_modes;
-
- _Thread_Set_priority( the_thread, initial_priority );
-
- _ASR_Initialize( &the_thread->Signal );
-
- _Objects_Open( &_Thread_Information, &the_thread->Object, name );
-
- *id = the_thread->Object.id;
-
- _User_extensions_Task_create( the_thread );
-
- if ( _Attributes_Is_global( the_attribute_set ) )
- _RTEMS_tasks_MP_Send_process_packet(
- RTEMS_TASKS_MP_ANNOUNCE_CREATE,
- the_thread->Object.id,
- name
- );
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_task_ident
- *
- * This directive returns the system ID associated with
- * the thread name.
- *
- * Input parameters:
- * name - user defined thread name
- * node - node(s) to be searched
- * id - pointer to thread id
- *
- * Output parameters:
- * *id - thread id
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_ident(
- Objects_Name name,
- unsigned32 node,
- Objects_Id *id
-)
-{
- if ( name != OBJECTS_ID_OF_SELF )
- return( _Objects_Name_to_id( &_Thread_Information, name, node, id ) );
-
- *id = _Thread_Executing->Object.id;
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_task_start
- *
- * This directive readies the thread identified by the "id"
- * based on its current priorty, to await execution. A thread
- * can be started only from the dormant state.
- *
- * Input parameters:
- * id - thread id
- * entry_point - start execution address of thread
- * argument - thread argument
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_start(
- Objects_Id id,
- rtems_task_entry entry_point,
- unsigned32 argument
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- if ( entry_point == NULL )
- return( RTEMS_INVALID_ADDRESS );
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Dispatch();
- return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
- case OBJECTS_LOCAL:
- if ( _States_Is_dormant( the_thread->current_state ) ) {
-
- the_thread->Start.entry_point = entry_point;
- the_thread->Start.initial_argument = argument;
-
- _Thread_Load_environment( the_thread );
-
- _Thread_Ready( the_thread );
-
- _User_extensions_Task_start( the_thread );
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_INCORRECT_STATE );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_restart
- *
- * This directive readies the specified thread. It restores
- * the thread environment to the original values established
- * at thread creation and start time. A thread can be restarted
- * from any state except the dormant state.
- *
- * Input parameters:
- * id - thread id
- * argument - thread argument
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_restart(
- Objects_Id id,
- unsigned32 argument
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Dispatch();
- return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
- case OBJECTS_LOCAL:
- if ( !_States_Is_dormant( the_thread->current_state ) ) {
-
- _Thread_Set_transient( the_thread );
- _ASR_Initialize( &the_thread->Signal );
- the_thread->pending_events = EVENT_SETS_NONE_PENDING;
- the_thread->resource_count = 0;
- the_thread->current_modes = the_thread->Start.initial_modes;
- the_thread->Start.initial_argument = argument;
-
- _RTEMS_tasks_Cancel_wait( the_thread );
-
- if ( the_thread->current_priority !=
- the_thread->Start.initial_priority ) {
- the_thread->real_priority = the_thread->Start.initial_priority;
- _Thread_Set_priority( the_thread,
- the_thread->Start.initial_priority );
- }
-
- _Thread_Load_environment( the_thread );
-
- _Thread_Ready( the_thread );
-
- _User_extensions_Task_restart( the_thread );
-
- if ( _Thread_Is_executing ( the_thread ) )
- _Thread_Restart_self();
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_INCORRECT_STATE );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_delete
- *
- * This directive allows a thread to delete itself or the thread
- * identified in the id field. The executive halts execution
- * of the thread and frees the thread control block.
- *
- * Input parameters:
- * id - thread id
- *
- * Output parameters:
- * nothing - if id is the requesting thread (always succeeds)
- * RTEMS_SUCCESSFUL - if successful and id is
- * not the requesting thread
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_delete(
- Objects_Id id
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Dispatch();
- return( RTEMS_ILLEGAL_ON_REMOTE_OBJECT );
- case OBJECTS_LOCAL:
- _Objects_Close( &_Thread_Information, &the_thread->Object );
-
- _Thread_Set_state( the_thread, STATES_TRANSIENT );
-
- _User_extensions_Task_delete( the_thread );
-
-#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )
- if ( _Thread_Is_allocated_fp( the_thread ) )
- _Thread_Deallocate_fp();
-#endif
- the_thread->fp_context = NULL;
-
- _RTEMS_tasks_Cancel_wait( the_thread );
-
- (void) _Workspace_Free( the_thread->Start.Initial_stack.area );
-
- _RTEMS_tasks_Free( the_thread );
-
- if ( _Attributes_Is_global( the_thread->attribute_set ) ) {
-
- _Objects_MP_Close( &_Thread_Information, the_thread->Object.id );
-
- _RTEMS_tasks_MP_Send_process_packet(
- RTEMS_TASKS_MP_ANNOUNCE_DELETE,
- the_thread->Object.id,
- 0 /* Not used */
- );
- }
-
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_suspend
- *
- * This directive will place the specified thread in the "suspended"
- * state. Note that the suspended state can be in addition to
- * other waiting states.
- *
- * Input parameters:
- * id - thread id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_suspend(
- Objects_Id id
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return(
- _RTEMS_tasks_MP_Send_request_packet(
- RTEMS_TASKS_MP_SUSPEND_REQUEST,
- id,
- 0, /* Not used */
- 0, /* Not used */
- 0 /* Not used */
- )
- );
- case OBJECTS_LOCAL:
- if ( !_States_Is_suspended( the_thread->current_state ) ) {
- _Thread_Set_state( the_thread, STATES_SUSPENDED );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_ALREADY_SUSPENDED );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_resume
- *
- * This directive will remove the specified thread
- * from the suspended state.
- *
- * Input parameters:
- * id - thread id
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_resume(
- Objects_Id id
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return(
- _RTEMS_tasks_MP_Send_request_packet(
- RTEMS_TASKS_MP_RESUME_REQUEST,
- id,
- 0, /* Not used */
- 0, /* Not used */
- 0 /* Not used */
- )
- );
- case OBJECTS_LOCAL:
- if ( _States_Is_suspended( the_thread->current_state ) ) {
- _Thread_Resume( the_thread );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_INCORRECT_STATE );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_set_priority
- *
- * This directive changes the priority of the specified thread.
- * The specified thread can be any thread in the system including
- * the requesting thread.
- *
- * Input parameters:
- * id - thread id (0 indicates requesting thread)
- * new_priority - thread priority (0 indicates current priority)
- * old_priority - pointer to previous priority
- *
- * Output parameters:
- * old_priority - previous priority
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_set_priority(
- Objects_Id id,
- rtems_task_priority new_priority,
- rtems_task_priority *old_priority
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- if ( new_priority != RTEMS_CURRENT_PRIORITY &&
- !_Priority_Is_valid( new_priority ) )
- return( RTEMS_INVALID_PRIORITY );
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Executing->Wait.return_argument = old_priority;
- return(
- _RTEMS_tasks_MP_Send_request_packet(
- RTEMS_TASKS_MP_SET_PRIORITY_REQUEST,
- id,
- new_priority,
- 0, /* Not used */
- 0 /* Not used */
- )
- );
- case OBJECTS_LOCAL:
- *old_priority = the_thread->current_priority;
- if ( new_priority != RTEMS_CURRENT_PRIORITY ) {
- the_thread->real_priority = new_priority;
- if ( the_thread->resource_count == 0 ||
- the_thread->current_priority > new_priority )
- _Thread_Change_priority( the_thread, new_priority );
- }
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_mode
- *
- * This directive enables and disables several modes of
- * execution for the requesting thread.
- *
- * Input parameters:
- * mode_set - new mode
- * mask - mask
- * previous_mode_set - address of previous mode set
- *
- * Output:
- * *previous_mode_set - previous mode set
- * always returns RTEMS_SUCCESSFUL
- */
-
-rtems_status_code rtems_task_mode(
- rtems_mode mode_set,
- rtems_mode mask,
- rtems_mode *previous_mode_set
-)
-{
- if ( _Thread_Change_mode( mode_set, mask, previous_mode_set ) )
- _Thread_Dispatch();
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_task_get_note
- *
- * This directive obtains the note from the specified notepad
- * of the specified thread.
- *
- * Input parameters:
- * id - thread id
- * notepad - notepad number
- * note - pointer to note
- *
- * Output parameters:
- * note - filled in if successful
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_get_note(
- Objects_Id id,
- unsigned32 notepad,
- unsigned32 *note
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- /*
- * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would
- * be checking an unsigned number for being negative.
- */
-
- if ( notepad > RTEMS_NOTEPAD_LAST )
- return( RTEMS_INVALID_NUMBER );
-
- /*
- * Optimize the most likely case to avoid the Thread_Dispatch.
- */
-
- if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||
- _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) {
- *note = _Thread_Executing->Notepads[ notepad ];
- return( RTEMS_SUCCESSFUL );
- }
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- _Thread_Executing->Wait.return_argument = note;
-
- return _RTEMS_tasks_MP_Send_request_packet(
- RTEMS_TASKS_MP_GET_NOTE_REQUEST,
- id,
- 0, /* Not used */
- notepad,
- 0 /* Not used */
- );
- case OBJECTS_LOCAL:
- *note= the_thread->Notepads[ notepad ];
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_set_note
- *
- * This directive sets the specified notepad contents to the given
- * note.
- *
- * Input parameters:
- * id - thread id
- * notepad - notepad number
- * note - note value
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_set_note(
- Objects_Id id,
- unsigned32 notepad,
- unsigned32 note
-)
-{
- register Thread_Control *the_thread;
- Objects_Locations location;
-
- /*
- * NOTE: There is no check for < RTEMS_NOTEPAD_FIRST because that would
- * be checking an unsigned number for being negative.
- */
-
- if ( notepad > RTEMS_NOTEPAD_LAST )
- return( RTEMS_INVALID_NUMBER );
-
- /*
- * Optimize the most likely case to avoid the Thread_Dispatch.
- */
-
- if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||
- _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) {
- _Thread_Executing->Notepads[ notepad ] = note;
- return( RTEMS_SUCCESSFUL );
- }
-
- the_thread = _Thread_Get( id, &location );
- switch ( location ) {
- case OBJECTS_ERROR:
- return( RTEMS_INVALID_ID );
- case OBJECTS_REMOTE:
- return _RTEMS_tasks_MP_Send_request_packet(
- RTEMS_TASKS_MP_SET_NOTE_REQUEST,
- id,
- 0, /* Not used */
- notepad,
- note
- );
-
- case OBJECTS_LOCAL:
- the_thread->Notepads[ notepad ] = note;
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
- }
-
- return( RTEMS_INTERNAL_ERROR ); /* unreached - only to remove warnings */
-}
-
-/*PAGE
- *
- * rtems_task_wake_after
- *
- * This directive suspends the requesting thread for the given amount
- * of ticks.
- *
- * Input parameters:
- * ticks - number of ticks to wait
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - always successful
- */
-
-rtems_status_code rtems_task_wake_after(
- rtems_interval ticks
-)
-{
- if ( ticks == 0 ) {
- _Thread_Yield_processor();
- _Thread_Dispatch();
- } else {
- _Thread_Disable_dispatch();
- _Thread_Set_state( _Thread_Executing, STATES_DELAYING );
- _Watchdog_Initialize(
- &_Thread_Executing->Timer,
- _Thread_Delay_ended,
- _Thread_Executing->Object.id,
- NULL
- );
- _Watchdog_Insert_ticks( &_Thread_Executing->Timer,
- ticks, WATCHDOG_ACTIVATE_NOW );
- _Thread_Enable_dispatch();
- }
- return( RTEMS_SUCCESSFUL );
-}
-
-/*PAGE
- *
- * rtems_task_wake_when
- *
- * This directive blocks the requesting thread until the given date and
- * time is reached.
- *
- * Input parameters:
- * time_buffer - pointer to the time and date structure
- *
- * Output parameters:
- * RTEMS_SUCCESSFUL - if successful
- * error code - if unsuccessful
- */
-
-rtems_status_code rtems_task_wake_when(
-rtems_time_of_day *time_buffer
-)
-{
- rtems_interval seconds;
- rtems_status_code local_result;
-
- if ( !_TOD_Is_set() )
- return( RTEMS_NOT_DEFINED );
-
- time_buffer->ticks = 0;
-
- local_result = _TOD_Validate( time_buffer );
-
- if ( !rtems_is_status_successful( local_result ) )
- return( local_result );
-
- seconds = _TOD_To_seconds( time_buffer );
-
- if ( seconds <= _TOD_Seconds_since_epoch )
- return( RTEMS_INVALID_CLOCK );
-
- _Thread_Disable_dispatch();
- _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );
- _Watchdog_Initialize(
- &_Thread_Executing->Timer,
- _Thread_Delay_ended,
- _Thread_Executing->Object.id,
- NULL
- );
- _Watchdog_Insert_seconds( &_Thread_Executing->Timer,
- seconds - _TOD_Seconds_since_epoch, WATCHDOG_ACTIVATE_NOW );
- _Thread_Enable_dispatch();
- return( RTEMS_SUCCESSFUL );
-}