Removed prototyes for static inline routines and moved the comments into

the inline implementation.   The impetus for this was twofold.  First,
it is incorrect to have static inline prototypes when using the macro
implementation.  Second, this reduced the number of lines in the include
files seen by rtems.h by about 2000 lines.

Next we restricted visibility for the inline routines to inside the
executive itself EXCEPT for a handful of objects.  This reduced the
number of include files included by rtems.h by 40 files and reduced
the lines in the include files seen by rtems.h by about 6000 lines.

In total, these reduced the compile time of the entire RTEMS tree by 20%.
This results in about 8 minutes savings on the SparcStation 10 morgana.
This commit is contained in:
Joel Sherrill
1996-03-06 21:34:57 +00:00
parent 8e76546421
commit 1a8fde6ca2
238 changed files with 3638 additions and 10301 deletions

View File

@@ -39,6 +39,7 @@
*
*/
#define __RTEMS_VIOLATE_KERNEL_VISIBILITY__
#include <rtems.h>
#include <libcsupport.h>
#include <stdlib.h> /* for free() */

View File

@@ -100,75 +100,9 @@ typedef struct {
#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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/asr.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -72,129 +72,9 @@ typedef unsigned32 rtems_attribute;
#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
);
#if 0
/*
* _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
);
#endif
/*
* _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
);
/*
* _Attributes_Is_priority_ceiling
*
* DESCRIPTION:
*
* This function returns TRUE if the priority ceiling attribute
* is enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _Attributes_Is_priority_ceiling(
rtems_attribute attribute_set
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/attr.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -145,62 +145,9 @@ rtems_status_code rtems_port_internal_to_external(
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/dpmem.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -54,16 +54,6 @@ typedef enum {
EVENT_SYNC_SATISFIED
} Event_Sync_states;
/*
* _Event_Manager_initialization
*
* DESCRIPTION:
*
* This routine performs the initialization necessary for this manager.
*/
STATIC INLINE void _Event_Manager_initialization( void );
/*
* rtems_event_send
*
@@ -162,7 +152,9 @@ void _Event_Timeout (
EXTERN volatile Event_Sync_states _Event_Sync_state;
#include <rtems/rtems/eventmp.h>
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/event.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -77,62 +77,9 @@ typedef unsigned32 rtems_event_set;
#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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/eventset.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -261,19 +261,6 @@ rtems_status_code _Message_queue_Submit(
Message_queue_Submit_types submit_type
);
/*
* _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
*
@@ -288,39 +275,6 @@ Message_queue_Control *_Message_queue_Allocate (
unsigned32 max_message_size
);
/*
* _Message_queue_Free
*
* DESCRIPTION:
*
* This routine deallocates a message queue control block into
* 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
);
/*
* _Message_queue_Translate_core_message_queue_return_code
*
@@ -350,7 +304,9 @@ void _Message_queue_Core_message_queue_mp_support (
Objects_Id id
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/message.inl>
#endif
#include <rtems/rtems/msgmp.h>
#ifdef __cplusplus

View File

@@ -59,7 +59,8 @@ typedef unsigned32 Modes_Control;
* RTEMS supports 0 to 256 levels in bits 0-7 of the mode.
*/
/*
/*PAGE
*
* RTEMS_INTERRUPT_LEVEL
*
* DESCRIPTION:
@@ -72,108 +73,13 @@ typedef unsigned32 Modes_Control;
* particular CPU, fewer than 256 levels may be supported.
*/
STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (
Modes_Control 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 (
Modes_Control mode_set,
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control old_mode_set,
Modes_Control new_mode_set,
Modes_Control mask,
Modes_Control *out_mode_set,
Modes_Control *changed
);
#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \
( (_mode_set) & RTEMS_INTERRUPT_MASK )
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/modes.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -41,35 +41,9 @@ typedef unsigned32 rtems_option;
#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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/options.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -155,132 +155,9 @@ rtems_status_code rtems_partition_return_buffer(
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/part.inl>
#endif
#include <rtems/rtems/partmp.h>
#ifdef __cplusplus

View File

@@ -155,47 +155,6 @@ rtems_status_code rtems_rate_monotonic_period(
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_Timeout
*
@@ -214,58 +173,9 @@ void _Rate_monotonic_Timeout (
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/ratemon.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -198,88 +198,9 @@ rtems_status_code rtems_region_return_segment(
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/region.inl>
#endif
#include <rtems/rtems/regionmp.h>
/*

View File

@@ -23,6 +23,18 @@
extern "C" {
#endif
/*
* Unless told otherwise, the RTEMS include files will hide some stuff
* from normal application code. Defining this crosses a boundary which
* is undesirable since it means your application is using RTEMS features
* which are not included in the formally defined and supported API.
* Define this at your own risk.
*/
#ifndef __RTEMS_VIOLATE_KERNEL_VISIBILITY__
#define __RTEMS_APPLICATION__
#endif
#include <rtems/system.h>
#include <rtems/rtems/status.h>
#include <rtems/rtems/types.h>

View File

@@ -177,61 +177,6 @@ boolean _Semaphore_Seize(
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 (
rtems_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
);
/*
* _Semaphore_Translate_core_mutex_return_code
*
@@ -290,7 +235,9 @@ void _Semaphore_Core_semaphore_mp_support (
rtems_id id
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/sem.inl>
#endif
#include <rtems/rtems/semmp.h>
#ifdef __cplusplus

View File

@@ -69,32 +69,9 @@ rtems_status_code _Status_Object_name_errors_to_status[] = {
#endif
/*
* rtems_is_status_successful
*
* DESCRIPTION:
*
* This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL,
* and FALSE otherwise.
* Applications are allowed to use the macros to compare status codes.
*/
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
);
#include <rtems/rtems/status.inl>
#ifdef __cplusplus

View File

@@ -23,18 +23,6 @@ extern "C" {
#include <rtems/rtems/types.h>
/*
* rtems_is_name_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the name is valid, and FALSE otherwise.
*/
STATIC INLINE rtems_boolean rtems_is_name_valid (
rtems_name name
);
/*
* rtems_build_name
*
@@ -52,24 +40,6 @@ STATIC INLINE rtems_boolean rtems_is_name_valid (
#define rtems_build_name( _C1, _C2, _C3, _C4 ) \
( (_C1) << 24 | (_C2) << 16 | (_C3) << 8 | (_C4) )
/*
* rtems_name_to_characters
*
* DESCRIPTION:
*
* This function breaks the object name into the four component
* characters C1, C2, C3, and C4.
*
*/
STATIC INLINE void rtems_name_to_characters(
rtems_name name,
char *c1,
char *c2,
char *c3,
char *c4
);
/*
* rtems_get_class
*

View File

@@ -392,43 +392,6 @@ 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_Priority_to_Core
*
* DESCRIPTION:
*
* This function converts an RTEMS API priority into a core priority.
*/
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
rtems_task_priority priority
);
/*PAGE
*
* _RTEMS_tasks_Initialize_user_tasks
@@ -443,17 +406,9 @@ STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
void _RTEMS_tasks_Initialize_user_tasks( void );
/*PAGE
*
* _RTEMS_tasks_Priority_is_valid
*
*/
STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid (
rtems_task_priority the_priority
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/tasks.inl>
#endif
#include <rtems/rtems/taskmp.h>
#ifdef __cplusplus

View File

@@ -195,99 +195,9 @@ 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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/timer.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -23,6 +23,18 @@
extern "C" {
#endif
/*
* Unless told otherwise, the RTEMS include files will hide some stuff
* from normal application code. Defining this crosses a boundary which
* is undesirable since it means your application is using RTEMS features
* which are not included in the formally defined and supported API.
* Define this at your own risk.
*/
#ifndef __RTEMS_VIOLATE_KERNEL_VISIBILITY__
#define __RTEMS_APPLICATION__
#endif
#include <rtems/system.h>
#include <rtems/rtems/status.h>
#include <rtems/rtems/types.h>

View File

@@ -100,75 +100,9 @@ typedef struct {
#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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/asr.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -72,129 +72,9 @@ typedef unsigned32 rtems_attribute;
#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
);
#if 0
/*
* _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
);
#endif
/*
* _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
);
/*
* _Attributes_Is_priority_ceiling
*
* DESCRIPTION:
*
* This function returns TRUE if the priority ceiling attribute
* is enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _Attributes_Is_priority_ceiling(
rtems_attribute attribute_set
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/attr.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -145,62 +145,9 @@ rtems_status_code rtems_port_internal_to_external(
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/dpmem.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -54,16 +54,6 @@ typedef enum {
EVENT_SYNC_SATISFIED
} Event_Sync_states;
/*
* _Event_Manager_initialization
*
* DESCRIPTION:
*
* This routine performs the initialization necessary for this manager.
*/
STATIC INLINE void _Event_Manager_initialization( void );
/*
* rtems_event_send
*
@@ -162,7 +152,9 @@ void _Event_Timeout (
EXTERN volatile Event_Sync_states _Event_Sync_state;
#include <rtems/rtems/eventmp.h>
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/event.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -77,62 +77,9 @@ typedef unsigned32 rtems_event_set;
#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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/eventset.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -261,19 +261,6 @@ rtems_status_code _Message_queue_Submit(
Message_queue_Submit_types submit_type
);
/*
* _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
*
@@ -288,39 +275,6 @@ Message_queue_Control *_Message_queue_Allocate (
unsigned32 max_message_size
);
/*
* _Message_queue_Free
*
* DESCRIPTION:
*
* This routine deallocates a message queue control block into
* 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
);
/*
* _Message_queue_Translate_core_message_queue_return_code
*
@@ -350,7 +304,9 @@ void _Message_queue_Core_message_queue_mp_support (
Objects_Id id
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/message.inl>
#endif
#include <rtems/rtems/msgmp.h>
#ifdef __cplusplus

View File

@@ -59,7 +59,8 @@ typedef unsigned32 Modes_Control;
* RTEMS supports 0 to 256 levels in bits 0-7 of the mode.
*/
/*
/*PAGE
*
* RTEMS_INTERRUPT_LEVEL
*
* DESCRIPTION:
@@ -72,108 +73,13 @@ typedef unsigned32 Modes_Control;
* particular CPU, fewer than 256 levels may be supported.
*/
STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (
Modes_Control 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 (
Modes_Control mode_set,
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control 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 (
Modes_Control old_mode_set,
Modes_Control new_mode_set,
Modes_Control mask,
Modes_Control *out_mode_set,
Modes_Control *changed
);
#define RTEMS_INTERRUPT_LEVEL( _mode_set ) \
( (_mode_set) & RTEMS_INTERRUPT_MASK )
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/modes.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -41,35 +41,9 @@ typedef unsigned32 rtems_option;
#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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/options.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -155,132 +155,9 @@ rtems_status_code rtems_partition_return_buffer(
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/part.inl>
#endif
#include <rtems/rtems/partmp.h>
#ifdef __cplusplus

View File

@@ -155,47 +155,6 @@ rtems_status_code rtems_rate_monotonic_period(
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_Timeout
*
@@ -214,58 +173,9 @@ void _Rate_monotonic_Timeout (
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/ratemon.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -198,88 +198,9 @@ rtems_status_code rtems_region_return_segment(
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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/region.inl>
#endif
#include <rtems/rtems/regionmp.h>
/*

View File

@@ -177,61 +177,6 @@ boolean _Semaphore_Seize(
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 (
rtems_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
);
/*
* _Semaphore_Translate_core_mutex_return_code
*
@@ -290,7 +235,9 @@ void _Semaphore_Core_semaphore_mp_support (
rtems_id id
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/sem.inl>
#endif
#include <rtems/rtems/semmp.h>
#ifdef __cplusplus

View File

@@ -69,32 +69,9 @@ rtems_status_code _Status_Object_name_errors_to_status[] = {
#endif
/*
* rtems_is_status_successful
*
* DESCRIPTION:
*
* This function returns TRUE if the status code is equal to RTEMS_SUCCESSFUL,
* and FALSE otherwise.
* Applications are allowed to use the macros to compare status codes.
*/
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
);
#include <rtems/rtems/status.inl>
#ifdef __cplusplus

View File

@@ -23,18 +23,6 @@ extern "C" {
#include <rtems/rtems/types.h>
/*
* rtems_is_name_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the name is valid, and FALSE otherwise.
*/
STATIC INLINE rtems_boolean rtems_is_name_valid (
rtems_name name
);
/*
* rtems_build_name
*
@@ -52,24 +40,6 @@ STATIC INLINE rtems_boolean rtems_is_name_valid (
#define rtems_build_name( _C1, _C2, _C3, _C4 ) \
( (_C1) << 24 | (_C2) << 16 | (_C3) << 8 | (_C4) )
/*
* rtems_name_to_characters
*
* DESCRIPTION:
*
* This function breaks the object name into the four component
* characters C1, C2, C3, and C4.
*
*/
STATIC INLINE void rtems_name_to_characters(
rtems_name name,
char *c1,
char *c2,
char *c3,
char *c4
);
/*
* rtems_get_class
*

View File

@@ -392,43 +392,6 @@ 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_Priority_to_Core
*
* DESCRIPTION:
*
* This function converts an RTEMS API priority into a core priority.
*/
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
rtems_task_priority priority
);
/*PAGE
*
* _RTEMS_tasks_Initialize_user_tasks
@@ -443,17 +406,9 @@ STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
void _RTEMS_tasks_Initialize_user_tasks( void );
/*PAGE
*
* _RTEMS_tasks_Priority_is_valid
*
*/
STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid (
rtems_task_priority the_priority
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/tasks.inl>
#endif
#include <rtems/rtems/taskmp.h>
#ifdef __cplusplus

View File

@@ -195,99 +195,9 @@ 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
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/rtems/timer.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -23,6 +23,9 @@
*
* _ASR_Initialize
*
* DESCRIPTION:
*
* This routine initializes the given RTEMS_ASR information record.
*/
STATIC INLINE void _ASR_Initialize (
@@ -41,6 +44,11 @@ STATIC INLINE void _ASR_Initialize (
*
* _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 (
@@ -61,6 +69,10 @@ STATIC INLINE void _ASR_Swap_signals (
*
* _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 (
@@ -74,6 +86,10 @@ STATIC INLINE boolean _ASR_Is_null_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 (
@@ -87,6 +103,12 @@ STATIC INLINE boolean _ASR_Are_signals_pending (
*
* _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(

View File

@@ -20,6 +20,11 @@
/*PAGE
*
* _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 (
@@ -33,6 +38,11 @@ STATIC INLINE rtems_attribute _Attributes_Set (
/*PAGE
*
* _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 (
@@ -47,6 +57,10 @@ STATIC INLINE rtems_attribute _Attributes_Clear (
*
* _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(
@@ -60,6 +74,10 @@ STATIC INLINE boolean _Attributes_Is_floating_point(
*
* _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(
@@ -73,6 +91,10 @@ STATIC INLINE boolean _Attributes_Is_global(
*
* _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(
@@ -86,6 +108,10 @@ STATIC INLINE boolean _Attributes_Is_priority(
*
* _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(
@@ -99,6 +125,10 @@ STATIC INLINE boolean _Attributes_Is_binary_semaphore(
*
* _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(
@@ -112,6 +142,10 @@ STATIC INLINE boolean _Attributes_Is_inherit_priority(
*
* _Attributes_Is_priority_ceiling
*
* DESCRIPTION:
*
* This function returns TRUE if the priority ceiling attribute
* is enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _Attributes_Is_priority_ceiling(

View File

@@ -22,6 +22,10 @@
*
* _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
@@ -35,6 +39,10 @@ STATIC INLINE Dual_ported_memory_Control
*
* _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 (
@@ -48,6 +56,14 @@ STATIC INLINE void _Dual_ported_memory_Free (
*
* _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 (
@@ -62,6 +78,10 @@ STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get (
/*PAGE
*
* _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(

View File

@@ -19,6 +19,10 @@
/*
* Event_Manager_initialization
*
* DESCRIPTION:
*
* This routine performs the initialization necessary for this manager.
*/
STATIC INLINE void _Event_Manager_initialization( void )

View File

@@ -19,6 +19,11 @@
/*PAGE
*
* _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(
@@ -31,6 +36,11 @@ STATIC INLINE boolean _Event_sets_Is_empty(
/*PAGE
*
* _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(
@@ -44,6 +54,11 @@ STATIC INLINE void _Event_sets_Post(
/*PAGE
*
* _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(
@@ -57,6 +72,11 @@ STATIC INLINE rtems_event_set _Event_sets_Get(
/*PAGE
*
* _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(

View File

@@ -23,6 +23,10 @@
*
* _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 (
@@ -37,6 +41,10 @@ STATIC INLINE boolean _Message_queue_Is_null (
*
* _Message_queue_Free
*
* DESCRIPTION:
*
* This routine deallocates a message queue control block into
* the inactive chain of free message queue control blocks.
*/
STATIC INLINE void _Message_queue_Free (
@@ -50,6 +58,16 @@ STATIC INLINE void _Message_queue_Free (
*
* _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 (

View File

@@ -17,22 +17,14 @@
#ifndef __MODES_inl
#define __MODES_inl
/*PAGE
*
* RTEMS_INTERRUPT_LEVEL
*/
STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (
Modes_Control mode_set
)
{
return mode_set & RTEMS_INTERRUPT_MASK;
}
/*PAGE
*
* _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 (
@@ -47,6 +39,10 @@ STATIC INLINE boolean _Modes_Mask_changed (
*
* _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 (
@@ -60,6 +56,10 @@ STATIC INLINE boolean _Modes_Is_asr_disabled (
*
* _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 (
@@ -73,6 +73,10 @@ STATIC INLINE boolean _Modes_Is_preempt (
*
* _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 (
@@ -86,6 +90,9 @@ STATIC INLINE boolean _Modes_Is_timeslice (
*
* _Modes_Get_interrupt_level
*
* DESCRIPTION:
*
* This function returns the interrupt level portion of the mode_set.
*/
STATIC INLINE ISR_Level _Modes_Get_interrupt_level (
@@ -99,6 +106,10 @@ STATIC INLINE ISR_Level _Modes_Get_interrupt_level (
*
* _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 (
@@ -112,6 +123,12 @@ STATIC INLINE void _Modes_Set_interrupt_level (
*
* _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 (

View File

@@ -21,6 +21,10 @@
*
* _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 (
@@ -34,6 +38,10 @@ STATIC INLINE boolean _Options_Is_no_wait (
*
* _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 (

View File

@@ -21,6 +21,11 @@
*
* _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 (
@@ -34,6 +39,9 @@ STATIC INLINE void *_Partition_Allocate_buffer (
*
* _Partition_Free_buffer
*
* DESCRIPTION:
*
* This routine frees the_buffer to the_partition.
*/
STATIC INLINE void _Partition_Free_buffer (
@@ -48,6 +56,10 @@ STATIC INLINE void _Partition_Free_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 (
@@ -69,6 +81,10 @@ STATIC INLINE boolean _Partition_Is_buffer_on_boundary (
*
* _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 (
@@ -92,6 +108,11 @@ STATIC INLINE boolean _Partition_Is_buffer_valid (
*
* _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 (
@@ -105,6 +126,10 @@ STATIC INLINE boolean _Partition_Is_buffer_size_aligned (
*
* _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 )
@@ -116,6 +141,10 @@ 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 (
@@ -129,6 +158,15 @@ STATIC INLINE void _Partition_Free (
*
* _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 (
@@ -144,6 +182,10 @@ STATIC INLINE Partition_Control *_Partition_Get (
*
* _Partition_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_partition is NULL
* and FALSE otherwise.
*/
STATIC INLINE boolean _Partition_Is_null (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -33,6 +37,10 @@ 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 (
@@ -46,6 +54,13 @@ STATIC INLINE void _Rate_monotonic_Free (
*
* _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 (
@@ -61,6 +76,10 @@ STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get (
*
* _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 (
@@ -74,6 +93,10 @@ STATIC INLINE boolean _Rate_monotonic_Is_active (
*
* _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 (
@@ -87,6 +110,10 @@ STATIC INLINE boolean _Rate_monotonic_Is_inactive (
*
* _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 (
@@ -100,6 +127,9 @@ STATIC INLINE boolean _Rate_monotonic_Is_expired (
*
* _Rate_monotonic_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_period is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Rate_monotonic_Is_null (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -45,6 +53,13 @@ STATIC INLINE void _Region_Free (
*
* _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 (
@@ -60,6 +75,11 @@ STATIC INLINE Region_Control *_Region_Get (
*
* _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 (
@@ -74,6 +94,9 @@ STATIC INLINE void *_Region_Allocate_segment (
*
* _Region_Free_segment
*
* DESCRIPTION:
*
* This function frees the_segment to the_region.
*/
STATIC INLINE boolean _Region_Free_segment (
@@ -88,6 +111,9 @@ STATIC INLINE boolean _Region_Free_segment (
*
* _Region_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_region is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Region_Is_null (

View File

@@ -23,6 +23,9 @@
*
* _ASR_Initialize
*
* DESCRIPTION:
*
* This routine initializes the given RTEMS_ASR information record.
*/
STATIC INLINE void _ASR_Initialize (
@@ -41,6 +44,11 @@ STATIC INLINE void _ASR_Initialize (
*
* _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 (
@@ -61,6 +69,10 @@ STATIC INLINE void _ASR_Swap_signals (
*
* _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 (
@@ -74,6 +86,10 @@ STATIC INLINE boolean _ASR_Is_null_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 (
@@ -87,6 +103,12 @@ STATIC INLINE boolean _ASR_Are_signals_pending (
*
* _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(

View File

@@ -20,6 +20,11 @@
/*PAGE
*
* _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 (
@@ -33,6 +38,11 @@ STATIC INLINE rtems_attribute _Attributes_Set (
/*PAGE
*
* _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 (
@@ -47,6 +57,10 @@ STATIC INLINE rtems_attribute _Attributes_Clear (
*
* _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(
@@ -60,6 +74,10 @@ STATIC INLINE boolean _Attributes_Is_floating_point(
*
* _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(
@@ -73,6 +91,10 @@ STATIC INLINE boolean _Attributes_Is_global(
*
* _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(
@@ -86,6 +108,10 @@ STATIC INLINE boolean _Attributes_Is_priority(
*
* _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(
@@ -99,6 +125,10 @@ STATIC INLINE boolean _Attributes_Is_binary_semaphore(
*
* _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(
@@ -112,6 +142,10 @@ STATIC INLINE boolean _Attributes_Is_inherit_priority(
*
* _Attributes_Is_priority_ceiling
*
* DESCRIPTION:
*
* This function returns TRUE if the priority ceiling attribute
* is enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _Attributes_Is_priority_ceiling(

View File

@@ -22,6 +22,10 @@
*
* _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
@@ -35,6 +39,10 @@ STATIC INLINE Dual_ported_memory_Control
*
* _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 (
@@ -48,6 +56,14 @@ STATIC INLINE void _Dual_ported_memory_Free (
*
* _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 (
@@ -62,6 +78,10 @@ STATIC INLINE Dual_ported_memory_Control *_Dual_ported_memory_Get (
/*PAGE
*
* _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(

View File

@@ -19,6 +19,10 @@
/*
* Event_Manager_initialization
*
* DESCRIPTION:
*
* This routine performs the initialization necessary for this manager.
*/
STATIC INLINE void _Event_Manager_initialization( void )

View File

@@ -19,6 +19,11 @@
/*PAGE
*
* _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(
@@ -31,6 +36,11 @@ STATIC INLINE boolean _Event_sets_Is_empty(
/*PAGE
*
* _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(
@@ -44,6 +54,11 @@ STATIC INLINE void _Event_sets_Post(
/*PAGE
*
* _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(
@@ -57,6 +72,11 @@ STATIC INLINE rtems_event_set _Event_sets_Get(
/*PAGE
*
* _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(

View File

@@ -23,6 +23,10 @@
*
* _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 (
@@ -37,6 +41,10 @@ STATIC INLINE boolean _Message_queue_Is_null (
*
* _Message_queue_Free
*
* DESCRIPTION:
*
* This routine deallocates a message queue control block into
* the inactive chain of free message queue control blocks.
*/
STATIC INLINE void _Message_queue_Free (
@@ -50,6 +58,16 @@ STATIC INLINE void _Message_queue_Free (
*
* _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 (

View File

@@ -17,22 +17,14 @@
#ifndef __MODES_inl
#define __MODES_inl
/*PAGE
*
* RTEMS_INTERRUPT_LEVEL
*/
STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL (
Modes_Control mode_set
)
{
return mode_set & RTEMS_INTERRUPT_MASK;
}
/*PAGE
*
* _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 (
@@ -47,6 +39,10 @@ STATIC INLINE boolean _Modes_Mask_changed (
*
* _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 (
@@ -60,6 +56,10 @@ STATIC INLINE boolean _Modes_Is_asr_disabled (
*
* _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 (
@@ -73,6 +73,10 @@ STATIC INLINE boolean _Modes_Is_preempt (
*
* _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 (
@@ -86,6 +90,9 @@ STATIC INLINE boolean _Modes_Is_timeslice (
*
* _Modes_Get_interrupt_level
*
* DESCRIPTION:
*
* This function returns the interrupt level portion of the mode_set.
*/
STATIC INLINE ISR_Level _Modes_Get_interrupt_level (
@@ -99,6 +106,10 @@ STATIC INLINE ISR_Level _Modes_Get_interrupt_level (
*
* _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 (
@@ -112,6 +123,12 @@ STATIC INLINE void _Modes_Set_interrupt_level (
*
* _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 (

View File

@@ -21,6 +21,10 @@
*
* _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 (
@@ -34,6 +38,10 @@ STATIC INLINE boolean _Options_Is_no_wait (
*
* _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 (

View File

@@ -21,6 +21,11 @@
*
* _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 (
@@ -34,6 +39,9 @@ STATIC INLINE void *_Partition_Allocate_buffer (
*
* _Partition_Free_buffer
*
* DESCRIPTION:
*
* This routine frees the_buffer to the_partition.
*/
STATIC INLINE void _Partition_Free_buffer (
@@ -48,6 +56,10 @@ STATIC INLINE void _Partition_Free_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 (
@@ -69,6 +81,10 @@ STATIC INLINE boolean _Partition_Is_buffer_on_boundary (
*
* _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 (
@@ -92,6 +108,11 @@ STATIC INLINE boolean _Partition_Is_buffer_valid (
*
* _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 (
@@ -105,6 +126,10 @@ STATIC INLINE boolean _Partition_Is_buffer_size_aligned (
*
* _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 )
@@ -116,6 +141,10 @@ 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 (
@@ -129,6 +158,15 @@ STATIC INLINE void _Partition_Free (
*
* _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 (
@@ -144,6 +182,10 @@ STATIC INLINE Partition_Control *_Partition_Get (
*
* _Partition_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_partition is NULL
* and FALSE otherwise.
*/
STATIC INLINE boolean _Partition_Is_null (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -33,6 +37,10 @@ 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 (
@@ -46,6 +54,13 @@ STATIC INLINE void _Rate_monotonic_Free (
*
* _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 (
@@ -61,6 +76,10 @@ STATIC INLINE Rate_monotonic_Control *_Rate_monotonic_Get (
*
* _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 (
@@ -74,6 +93,10 @@ STATIC INLINE boolean _Rate_monotonic_Is_active (
*
* _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 (
@@ -87,6 +110,10 @@ STATIC INLINE boolean _Rate_monotonic_Is_inactive (
*
* _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 (
@@ -100,6 +127,9 @@ STATIC INLINE boolean _Rate_monotonic_Is_expired (
*
* _Rate_monotonic_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_period is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Rate_monotonic_Is_null (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -45,6 +53,13 @@ STATIC INLINE void _Region_Free (
*
* _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 (
@@ -60,6 +75,11 @@ STATIC INLINE Region_Control *_Region_Get (
*
* _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 (
@@ -74,6 +94,9 @@ STATIC INLINE void *_Region_Allocate_segment (
*
* _Region_Free_segment
*
* DESCRIPTION:
*
* This function frees the_segment to the_region.
*/
STATIC INLINE boolean _Region_Free_segment (
@@ -88,6 +111,9 @@ STATIC INLINE boolean _Region_Free_segment (
*
* _Region_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_region is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Region_Is_null (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -45,6 +53,15 @@ STATIC INLINE void _Semaphore_Free (
*
* _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 (
@@ -60,6 +77,9 @@ STATIC INLINE Semaphore_Control *_Semaphore_Get (
*
* _Semaphore_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_semaphore is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Semaphore_Is_null (

View File

@@ -21,6 +21,10 @@
*
* 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(
@@ -34,6 +38,10 @@ STATIC INLINE boolean rtems_is_status_successful(
*
* 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(

View File

@@ -21,6 +21,9 @@
*
* rtems_is_name_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the name is valid, and FALSE otherwise.
*/
STATIC INLINE rtems_boolean rtems_is_name_valid (
@@ -34,6 +37,10 @@ STATIC INLINE rtems_boolean rtems_is_name_valid (
*
* rtems_name_to_characters
*
* DESCRIPTION:
*
* This function breaks the object name into the four component
* characters C1, C2, C3, and C4.
*/
STATIC INLINE void rtems_name_to_characters(

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -47,6 +55,10 @@ STATIC INLINE void _RTEMS_tasks_Free (
/*PAGE
*
* _RTEMS_tasks_Priority_to_Core
*
* DESCRIPTION:
*
* This function converts an RTEMS API priority into a core priority.
*/
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
@@ -60,6 +72,10 @@ STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
*
* _RTEMS_tasks_Priority_is_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the_priority is a valid user task priority
* and FALSE otherwise.
*/
STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -45,6 +53,13 @@ STATIC INLINE void _Timer_Free (
*
* _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 (
@@ -60,6 +75,10 @@ STATIC INLINE Timer_Control *_Timer_Get (
*
* _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 (
@@ -73,6 +92,10 @@ STATIC INLINE boolean _Timer_Is_interval_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 (
@@ -86,6 +109,10 @@ STATIC INLINE boolean _Timer_Is_timer_of_day_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 (
@@ -99,6 +126,9 @@ STATIC INLINE boolean _Timer_Is_dormant_class (
*
* _Timer_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_timer is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Timer_Is_null (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -45,6 +53,15 @@ STATIC INLINE void _Semaphore_Free (
*
* _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 (
@@ -60,6 +77,9 @@ STATIC INLINE Semaphore_Control *_Semaphore_Get (
*
* _Semaphore_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_semaphore is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Semaphore_Is_null (

View File

@@ -21,6 +21,10 @@
*
* 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(
@@ -34,6 +38,10 @@ STATIC INLINE boolean rtems_is_status_successful(
*
* 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(

View File

@@ -21,6 +21,9 @@
*
* rtems_is_name_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the name is valid, and FALSE otherwise.
*/
STATIC INLINE rtems_boolean rtems_is_name_valid (
@@ -34,6 +37,10 @@ STATIC INLINE rtems_boolean rtems_is_name_valid (
*
* rtems_name_to_characters
*
* DESCRIPTION:
*
* This function breaks the object name into the four component
* characters C1, C2, C3, and C4.
*/
STATIC INLINE void rtems_name_to_characters(

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -47,6 +55,10 @@ STATIC INLINE void _RTEMS_tasks_Free (
/*PAGE
*
* _RTEMS_tasks_Priority_to_Core
*
* DESCRIPTION:
*
* This function converts an RTEMS API priority into a core priority.
*/
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
@@ -60,6 +72,10 @@ STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
*
* _RTEMS_tasks_Priority_is_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the_priority is a valid user task priority
* and FALSE otherwise.
*/
STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid (

View File

@@ -21,6 +21,10 @@
*
* _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 )
@@ -32,6 +36,10 @@ 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 (
@@ -45,6 +53,13 @@ STATIC INLINE void _Timer_Free (
*
* _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 (
@@ -60,6 +75,10 @@ STATIC INLINE Timer_Control *_Timer_Get (
*
* _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 (
@@ -73,6 +92,10 @@ STATIC INLINE boolean _Timer_Is_interval_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 (
@@ -86,6 +109,10 @@ STATIC INLINE boolean _Timer_Is_timer_of_day_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 (
@@ -99,6 +126,9 @@ STATIC INLINE boolean _Timer_Is_dormant_class (
*
* _Timer_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_timer is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Timer_Is_null (

View File

@@ -17,14 +17,6 @@
#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

View File

@@ -17,14 +17,6 @@
#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

View File

@@ -124,60 +124,9 @@ rtems_status_code rtems_extension_delete(
Objects_Id id
);
/*
* _Extension_Allocate
*
* DESCRIPTION:
*
* This function allocates a extension control block from
* the inactive chain of free extension control blocks.
*/
STATIC INLINE Extension_Control *_Extension_Allocate( void );
/*
* _Extension_Free
*
* DESCRIPTION:
*
* This routine frees a extension control block to the
* inactive chain of free extension control blocks.
*/
STATIC INLINE void _Extension_Free (
Extension_Control *the_extension
);
/*
* _Extension_Get
*
* DESCRIPTION:
*
* This function maps extension IDs to extension control blocks.
* If ID corresponds to a local extension, then it returns
* the extension control pointer which maps to ID and location
* is set to OBJECTS_LOCAL. Otherwise, location is set
* to OBJECTS_ERROR and the returned value is undefined.
*/
STATIC INLINE Extension_Control *_Extension_Get (
Objects_Id id,
Objects_Locations *location
);
/*
* _Extension_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_extension is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Extension_Is_null(
Extension_Control *the_extension
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/extension.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -124,60 +124,9 @@ rtems_status_code rtems_extension_delete(
Objects_Id id
);
/*
* _Extension_Allocate
*
* DESCRIPTION:
*
* This function allocates a extension control block from
* the inactive chain of free extension control blocks.
*/
STATIC INLINE Extension_Control *_Extension_Allocate( void );
/*
* _Extension_Free
*
* DESCRIPTION:
*
* This routine frees a extension control block to the
* inactive chain of free extension control blocks.
*/
STATIC INLINE void _Extension_Free (
Extension_Control *the_extension
);
/*
* _Extension_Get
*
* DESCRIPTION:
*
* This function maps extension IDs to extension control blocks.
* If ID corresponds to a local extension, then it returns
* the extension control pointer which maps to ID and location
* is set to OBJECTS_LOCAL. Otherwise, location is set
* to OBJECTS_ERROR and the returned value is undefined.
*/
STATIC INLINE Extension_Control *_Extension_Get (
Objects_Id id,
Objects_Locations *location
);
/*
* _Extension_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_extension is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Extension_Is_null(
Extension_Control *the_extension
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/extension.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -21,6 +21,10 @@
*
* _Extension_Allocate
*
* DESCRIPTION:
*
* This function allocates a extension control block from
* the inactive chain of free extension control blocks.
*/
STATIC INLINE Extension_Control *_Extension_Allocate( void )
@@ -32,6 +36,10 @@ STATIC INLINE Extension_Control *_Extension_Allocate( void )
*
* _Extension_Free
*
* DESCRIPTION:
*
* This routine frees a extension control block to the
* inactive chain of free extension control blocks.
*/
STATIC INLINE void _Extension_Free (
@@ -45,6 +53,13 @@ STATIC INLINE void _Extension_Free (
*
* _Extension_Get
*
* DESCRIPTION:
*
* This function maps extension IDs to extension control blocks.
* If ID corresponds to a local extension, then it returns
* the extension control pointer which maps to ID and location
* is set to OBJECTS_LOCAL. Otherwise, location is set
* to OBJECTS_ERROR and the returned value is undefined.
*/
STATIC INLINE Extension_Control *_Extension_Get (
@@ -60,6 +75,9 @@ STATIC INLINE Extension_Control *_Extension_Get (
*
* _Extension_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_extension is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Extension_Is_null (

View File

@@ -21,6 +21,10 @@
*
* _Extension_Allocate
*
* DESCRIPTION:
*
* This function allocates a extension control block from
* the inactive chain of free extension control blocks.
*/
STATIC INLINE Extension_Control *_Extension_Allocate( void )
@@ -32,6 +36,10 @@ STATIC INLINE Extension_Control *_Extension_Allocate( void )
*
* _Extension_Free
*
* DESCRIPTION:
*
* This routine frees a extension control block to the
* inactive chain of free extension control blocks.
*/
STATIC INLINE void _Extension_Free (
@@ -45,6 +53,13 @@ STATIC INLINE void _Extension_Free (
*
* _Extension_Get
*
* DESCRIPTION:
*
* This function maps extension IDs to extension control blocks.
* If ID corresponds to a local extension, then it returns
* the extension control pointer which maps to ID and location
* is set to OBJECTS_LOCAL. Otherwise, location is set
* to OBJECTS_ERROR and the returned value is undefined.
*/
STATIC INLINE Extension_Control *_Extension_Get (
@@ -60,6 +75,9 @@ STATIC INLINE Extension_Control *_Extension_Get (
*
* _Extension_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_extension is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Extension_Is_null (

View File

@@ -21,83 +21,9 @@
extern "C" {
#endif
/*
* _Addresses_Add_offset
*
* DESCRIPTION:
*
* This function is used to add an offset to a base address.
* It returns the resulting address. This address is typically
* converted to an access type before being used further.
*/
STATIC INLINE void *_Addresses_Add_offset (
void *base,
unsigned32 offset
);
/*
* _Addresses_Subtract_offset
*
* DESCRIPTION:
*
* This function is used to subtract an offset from a base
* address. It returns the resulting address. This address is
* typically converted to an access type before being used further.
*/
STATIC INLINE void *_Addresses_Subtract_offset(
void *base,
unsigned32 offset
);
/*
* _Addresses_Subtract
*
* DESCRIPTION:
*
* This function is used to subtract two addresses. It returns the
* resulting offset.
*/
STATIC INLINE unsigned32 _Addresses_Subtract (
void *left,
void *right
);
/*
* _Addresses_Is_aligned
*
* DESCRIPTION:
*
* This function returns TRUE if the given address is correctly
* aligned for this processor and FALSE otherwise. Proper alignment
* is based on correctness and efficiency.
*/
STATIC INLINE boolean _Addresses_Is_aligned (
void *address
);
/*
* _Addresses_Is_in_range
*
* DESCRIPTION:
*
* This function returns TRUE if the given address is within the
* memory range specified and FALSE otherwise. base is the address
* of the first byte in the memory range and limit is the address
* of the last byte in the memory range. The base address is
* assumed to be lower than the limit address.
*/
STATIC INLINE boolean _Addresses_Is_in_range (
void *address,
void *base,
void *limit
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/address.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -83,49 +83,6 @@ void _Chain_Initialize(
unsigned32 node_size
);
/*
* _Chain_Initialize_empty
*
* DESCRIPTION:
*
* This routine initializes the specified chain to contain zero nodes.
*
*/
STATIC INLINE void _Chain_Initialize_empty(
Chain_Control *the_chain
);
/*
* _Chain_Are_nodes_equal
*
* DESCRIPTION:
*
* This function returns TRUE if LEFT and RIGHT are equal,
* and FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Are_nodes_equal(
Chain_Node *left,
Chain_Node *right
);
/*
* _Chain_Extract_unprotected
*
* DESCRIPTION:
*
* This routine extracts the_node from the chain on which it resides.
* It does NOT disable interrupts to insure the atomicity of the
* extract operation.
*
*/
STATIC INLINE void _Chain_Extract_unprotected(
Chain_Node *the_node
);
/*
* _Chain_Extract
*
@@ -141,22 +98,6 @@ void _Chain_Extract(
Chain_Node *the_node
);
/*
* _Chain_Get_unprotected
*
* DESCRIPTION:
*
* This function removes the first node from the_chain and returns
* a pointer to that node. If the_chain is empty, then NULL is returned.
* It does NOT disable interrupts to insure the atomicity of the
* get operation.
*
*/
STATIC INLINE Chain_Node *_Chain_Get_unprotected(
Chain_Control *the_chain
);
/*
* _Chain_Get
*
@@ -173,37 +114,6 @@ Chain_Node *_Chain_Get(
Chain_Control *the_chain
);
/*
* _Chain_Get_first_unprotected
*
* DESCRIPTION:
*
* This function removes the first node from the_chain and returns
* a pointer to that node. It does NOT disable interrupts to insure
* the atomicity of the get operation.
*
*/
STATIC INLINE Chain_Node *_Chain_Get_first_unprotected(
Chain_Control *the_chain
);
/*
* _Chain_Insert_unprotected
*
* DESCRIPTION:
*
* This routine inserts the_node on a chain immediately following
* after_node. It does NOT disable interrupts to insure the atomicity
* of the extract operation.
*
*/
STATIC INLINE void _Chain_Insert_unprotected(
Chain_Node *after_node,
Chain_Node *the_node
);
/*
* _Chain_Insert
*
@@ -220,22 +130,6 @@ void _Chain_Insert(
Chain_Node *the_node
);
/*
* _Chain_Append_unprotected
*
* DESCRIPTION:
*
* This routine appends the_node onto the end of the_chain.
* It does NOT disable interrupts to insure the atomicity of the
* append operation.
*
*/
STATIC INLINE void _Chain_Append_unprotected(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Append
*
@@ -252,177 +146,9 @@ void _Chain_Append(
Chain_Node *the_node
);
/*
* _Chain_Prepend_unprotected
*
* DESCRIPTION:
*
* This routine prepends the_node onto the front of the_chain.
* It does NOT disable interrupts to insure the atomicity of the
* prepend operation.
*
*/
STATIC INLINE void _Chain_Prepend_unprotected(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Prepend
*
* DESCRIPTION:
*
* This routine prepends the_node onto the front of the_chain.
* It disables interrupts to insure the atomicity of the
* prepend operation.
*
*/
STATIC INLINE void _Chain_Prepend(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Head
*
* DESCRIPTION:
*
* This function returns a pointer to the first node on the chain.
*
*/
STATIC INLINE Chain_Node *_Chain_Head(
Chain_Control *the_chain
);
/*
* _Chain_Tail
*
* DESCRIPTION:
*
* This function returns a pointer to the last node on the chain.
*
*/
STATIC INLINE Chain_Node *_Chain_Tail(
Chain_Control *the_chain
);
/*
* _Chain_Is_head
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the head of the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_head(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Is_tail
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the tail of the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_tail(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Is_first
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the first node on a chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_first(
Chain_Node *the_node
);
/*
* _Chain_Is_last
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the last node on a chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_last(
Chain_Node *the_node
);
/*
* _Chain_Is_empty
*
* DESCRIPTION:
*
* This function returns TRUE if there a no nodes on the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_empty(
Chain_Control *the_chain
);
/*
* _Chain_Has_only_one_node
*
* DESCRIPTION:
*
* This function returns TRUE if there is only one node on the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Has_only_one_node(
Chain_Control *the_chain
);
/*
* _Chain_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_chain is NULL and FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_null(
Chain_Control *the_chain
);
/*
* _Chain_Is_null_node
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is NULL and FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_null_node(
Chain_Node *the_node
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/chain.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -195,41 +195,6 @@ unsigned32 _CORE_message_queue_Flush_support(
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_send
*
* DESCRIPTION:
*
* This routine sends a message to the end of the specified message queue.
*
*/
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Send(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,
Objects_Id id,
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
);
/*
*
* _CORE_message_queue_Urgent
*
* DESCRIPTION:
*
* This routine sends a message to the front of the specified message queue.
*
*/
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Urgent(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,
Objects_Id id,
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
);
/*
*
* _CORE_message_queue_Broadcast
@@ -296,144 +261,9 @@ void _CORE_message_queue_Seize(
Watchdog_Interval timeout
);
/*
* _CORE_message_queue_Allocate_message_buffer
*
* DESCRIPTION:
*
* This function allocates a message buffer from the inactive
* message buffer chain.
*/
STATIC INLINE CORE_message_queue_Buffer_control *
_CORE_message_queue_Allocate_message_buffer (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Free_message_buffer
*
* DESCRIPTION:
*
* This routine frees a message buffer to the inactive
* message buffer chain.
*/
STATIC INLINE void _CORE_message_queue_Free_message_buffer (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Buffer_control *the_message
);
/*
* _CORE_message_queue_Copy_buffer
*
* DESCRIPTION:
*
* This routine copies the contents of the source message buffer
* to the destination message buffer.
*/
STATIC INLINE void _CORE_message_queue_Copy_buffer (
void *source,
void *destination,
unsigned32 size
);
/*
* _CORE_message_queue_Get_pending_message
*
* DESCRIPTION:
*
* This function removes the first message from the_message_queue
* and returns a pointer to it.
*/
STATIC INLINE
CORE_message_queue_Buffer_control *_CORE_message_queue_Get_pending_message (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Is_priority
*
* DESCRIPTION:
*
* This function returns TRUE if the priority attribute is
* enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_message_queue_Is_priority(
CORE_message_queue_Attributes *the_attribute
);
/*
* _CORE_message_queue_Append
*
* DESCRIPTION:
*
* This routine places the_message at the rear of the outstanding
* messages on the_message_queue.
*/
STATIC INLINE void _CORE_message_queue_Append (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Buffer_control *the_message
);
/*
* _CORE_message_queue_Prepend
*
* DESCRIPTION:
*
* This routine places the_message at the rear of the outstanding
* messages on the_message_queue.
*/
STATIC INLINE void _CORE_message_queue_Prepend (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Buffer_control *the_message
);
/*
* _CORE_message_queue_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_message_queue is TRUE and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_message_queue_Is_null (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Is_notify_enabled
*
* DESCRIPTION:
*
* This function returns TRUE if notification is enabled on this message
* queue and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_message_queue_Is_notify_enabled (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Set_notify
*
* DESCRIPTION:
*
* This routine initializes the notification information for the_message_queue.
*/
STATIC INLINE void _CORE_message_queue_Set_notify (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Notify_Handler the_handler,
void *the_argument
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/coremsg.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -158,85 +158,9 @@ void _CORE_mutex_Flush(
unsigned32 status
);
/*
* _CORE_mutex_Is_locked
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex specified is locked and FALSE
* otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_locked(
CORE_mutex_Control *the_mutex
);
/*
* _CORE_mutex_Is_fifo
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is FIFO and FALSE
* otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_fifo(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_priority
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is PRIORITY and
* FALSE otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_priority(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_inherit_priority
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is
* INHERIT_PRIORITY and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_inherit_priority(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_priority_ceiling
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is
* PRIORITY_CEILING and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_priority_ceiling(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_nesting_allowed
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex allows a task to obtain a
* semaphore more than once and nest.
*/
STATIC INLINE boolean _CORE_mutex_Is_nesting_allowed(
CORE_mutex_Attributes *the_attribute
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/coremutex.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -143,32 +143,9 @@ void _CORE_semaphore_Flush(
unsigned32 status
);
/*
* _CORE_semaphore_Get_count
*
* DESCRIPTION:
*
* This routine returns the current count associated with the semaphore.
*/
STATIC INLINE unsigned32 _CORE_semaphore_Get_count(
CORE_semaphore_Control *the_semaphore
);
/*
* _CORE_semaphore_Is_priority
*
* DESCRIPTION:
*
* This function returns TRUE if the priority attribute is
* enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_semaphore_Is_priority(
CORE_semaphore_Attributes *the_attribute
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/coresem.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -214,189 +214,9 @@ void _Heap_Walk(
boolean do_dump
);
/*
* _Heap_Head
*
* DESCRIPTION:
*
* This function returns the head of the specified heap.
*/
STATIC INLINE Heap_Block *_Heap_Head (
Heap_Control *the_heap
);
/*
* _Heap_Tail
*
* DESCRIPTION:
*
* This function returns the tail of the specified heap.
*/
STATIC INLINE Heap_Block *_Heap_Tail (
Heap_Control *the_heap
);
/*
* _Heap_Previous_block
*
* DESCRIPTION:
*
* This function returns the address of the block which physically
* precedes the_block in memory.
*/
STATIC INLINE Heap_Block *_Heap_Previous_block (
Heap_Block *the_block
);
/*
* _Heap_Next_block
*
* DESCRIPTION:
*
* This function returns the address of the block which physically
* follows the_block in memory.
*/
STATIC INLINE Heap_Block *_Heap_Next_block (
Heap_Block *the_block
);
/*
* _Heap_Block_at
*
* DESCRIPTION:
*
* This function calculates and returns a block's location (address)
* in the heap based upad a base address and an offset.
*/
STATIC INLINE Heap_Block *_Heap_Block_at(
void *base,
unsigned32 offset
);
/*PAGE
*
* _Heap_User_block_at
*
*/
STATIC INLINE Heap_Block *_Heap_User_block_at(
void *base
);
/*
* _Heap_Is_previous_block_free
*
* DESCRIPTION:
*
* This function returns TRUE if the previous block of the_block
* is free, and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_previous_block_free (
Heap_Block *the_block
);
/*
* _Heap_Is_block_free
*
* DESCRIPTION:
*
* This function returns TRUE if the block is free, and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_block_free (
Heap_Block *the_block
);
/*
* _Heap_Is_block_used
*
* DESCRIPTION:
*
* This function returns TRUE if the block is currently allocated,
* and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_block_used (
Heap_Block *the_block
);
/*
* _Heap_Block_size
*
* DESCRIPTION:
*
* This function returns the size of the_block in bytes.
*/
STATIC INLINE unsigned32 _Heap_Block_size (
Heap_Block *the_block
);
/*
* _Heap_Start_of_user_area
*
* DESCRIPTION:
*
* This function returns the starting address of the portion of the block
* which the user may access.
*/
STATIC INLINE void *_Heap_Start_of_user_area (
Heap_Block *the_block
);
/*
* _Heap_Is_block_in
*
* DESCRIPTION:
*
* This function returns TRUE if the_block is within the memory area
* managed by the_heap, and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_block_in (
Heap_Control *the_heap,
Heap_Block *the_block
);
/*
* _Heap_Is_page_size_valid
*
* DESCRIPTION:
*
* This function validates a specified heap page size. If the page size
* is 0 or if lies outside a page size alignment boundary it is invalid
* and FALSE is returned. Otherwise, the page size is valid and TRUE is
* returned.
*/
STATIC INLINE boolean _Heap_Is_page_size_valid(
unsigned32 page_size
);
/*
* _Heap_Build_flag
*
* DESCRIPTION:
*
* This function returns the block flag composed of size and in_use_flag.
* The flag returned is suitable for use as a back or front flag in a
* heap block.
*/
STATIC INLINE unsigned32 _Heap_Build_flag (
unsigned32 size,
unsigned32 in_use_flag
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/heap.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -140,19 +140,6 @@ void _ISR_Handler_initialization ( void );
#define _ISR_Flash( _level ) \
_CPU_ISR_Flash( _level )
/*
* _ISR_Is_in_progress
*
* DESCRIPTION:
*
* This function returns TRUE if the processor is currently servicing
* and interrupt and FALSE otherwise. A return value of TRUE indicates
* that the caller is an interrupt service routine, NOT a thread. The
* directives available to an interrupt service routine are restricted.
*/
STATIC INLINE boolean _ISR_Is_in_progress( void );
/*
* _ISR_Install_vector
*
@@ -190,32 +177,6 @@ STATIC INLINE boolean _ISR_Is_in_progress( void );
#define _ISR_Set_level( _new_level ) \
_CPU_ISR_Set_level( _new_level )
/*
* _ISR_Is_vector_number_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the vector is a valid vector number
* for this processor and FALSE otherwise.
*/
STATIC INLINE boolean _ISR_Is_vector_number_valid (
ISR_Vector_number vector
);
/*
* _ISR_Is_valid_user_handler
*
* DESCRIPTION:
*
* This function returns TRUE if handler is the entry point of a valid
* use interrupt service routine and FALSE otherwise.
*/
STATIC INLINE boolean _ISR_Is_valid_user_handler (
void *handler
);
/*
* _ISR_Handler
*
@@ -253,7 +214,9 @@ void _ISR_Handler( void );
void _ISR_Dispatch( void );
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/isr.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -88,33 +88,9 @@ typedef struct {
#define MP_PACKET_MINIMUN_HETERO_CONVERSION ( sizeof( MP_packet_Prefix ) / 4 )
/*
* _Mp_packet_Is_valid_packet_class
*
* DESCRIPTION:
*
* This function returns TRUE if the the_packet_class is valid,
* and FALSE otherwise.
*/
STATIC INLINE boolean _Mp_packet_Is_valid_packet_class (
MP_packet_Classes the_packet_class
);
/*
* _Mp_packet_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the the_packet_class is null,
* and FALSE otherwise.
*/
STATIC INLINE boolean _Mp_packet_Is_null (
MP_packet_Prefix *the_packet
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/mppkt.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -383,176 +383,9 @@ Objects_Information *_Objects_Get_information(
);
/*
* _Objects_Build_id
*
* DESCRIPTION:
*
* This function builds an object's id from the processor node and index
* values specified.
*
* Pieces of object.inl are promoted out to the user
*/
STATIC INLINE Objects_Id _Objects_Build_id(
Objects_Classes the_class,
unsigned32 node,
unsigned32 index
);
/*
* _Objects_Get_class
*
* DESCRIPTION:
*
* This function returns the class portion of the ID.
*
*/
STATIC INLINE Objects_Classes _Objects_Get_class(
Objects_Id id
);
/*
* _Objects_Get_node
*
* DESCRIPTION:
*
* This function returns the node portion of the ID.
*
*/
STATIC INLINE unsigned32 _Objects_Get_node(
Objects_Id id
);
/*
* _Objects_Get_index
*
* DESCRIPTION:
*
* This function returns the index portion of the ID.
*
*/
STATIC INLINE unsigned32 _Objects_Get_index(
Objects_Id id
);
/*
* _Objects_Is_class_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the class is valid.
*
*/
STATIC INLINE boolean _Objects_Is_class_valid(
Objects_Classes the_class
);
/*
* _Objects_Is_local_node
*
* DESCRIPTION:
*
* This function returns TRUE if the node is of the local object, and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Objects_Is_local_node(
unsigned32 node
);
/*
* _Objects_Is_local_id
*
* DESCRIPTION:
*
* This function returns TRUE if the id is of a local object, and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Objects_Is_local_id(
Objects_Id id
);
/*
* _Objects_Are_ids_equal
*
* DESCRIPTION:
*
* This function returns TRUE if left and right are equal,
* and FALSE otherwise.
*
*/
STATIC INLINE boolean _Objects_Are_ids_equal(
Objects_Id left,
Objects_Id right
);
/*
* _Objects_Allocate
*
* DESCRIPTION:
*
* This function allocates a object control block from
* the inactive chain of free object control blocks.
*
*/
STATIC INLINE Objects_Control *_Objects_Allocate(
Objects_Information *information
);
/*
* _Objects_Free
*
* DESCRIPTION:
*
* This function frees a object control block to the
* inactive chain of free object control blocks.
*
*/
STATIC INLINE void _Objects_Free(
Objects_Information *information,
Objects_Control *the_object
);
/*
* _Objects_Open
*
* DESCRIPTION:
*
* This function places the_object control pointer and object name
* in the Local Pointer and Local Name Tables, respectively.
*
*/
STATIC INLINE void _Objects_Open(
Objects_Information *information,
Objects_Control *the_object,
Objects_Name name
);
/*
* _Objects_Close
*
* DESCRIPTION:
*
* This function removes the_object control pointer and object name
* in the Local Pointer and Local Name Tables.
*
*/
STATIC INLINE void _Objects_Close(
Objects_Information *information,
Objects_Control *the_object
);
#include <rtems/score/object.inl>
#include <rtems/score/objectmp.h>

View File

@@ -47,42 +47,6 @@ void _Objects_MP_Handler_initialization (
unsigned32 maximum_global_objects
);
/*
* _Objects_MP_Allocate_global_object
*
* DESCRIPTION:
*
* This function allocates a Global Object control block.
*/
STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object (
void
);
/*
* _Objects_MP_Free_global_object
*
* DESCRIPTION:
*
* This routine deallocates a Global Object control block.
*/
STATIC INLINE void _Objects_MP_Free_global_object (
Objects_MP_Control *the_object
);
/*
* _Objects_MP_Is_null_global_object
*
* DESCRIPTION:
*
* This function returns whether the global object is NULL or not.
*/
STATIC INLINE boolean _Objects_MP_Is_null_global_object (
Objects_MP_Control *the_object
);
/*PAGE
*
* _Objects_MP_Open
@@ -176,7 +140,9 @@ void _Objects_MP_Is_remote (
EXTERN unsigned32 _Objects_MP_Maximum_global_objects;
EXTERN Chain_Control _Objects_MP_Inactive_global_objects;
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/objectmp.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -67,164 +67,26 @@ EXTERN Priority_Bit_map_control _Priority_Bit_map[16] CPU_STRUCTURE_ALIGNMENT;
*/
/*
* _Priority_Handler_initialization
* Priority Bitfield Manipulation Routines
*
* DESCRIPTION:
* NOTE:
*
* This routine performs the initialization necessary for this handler.
*/
STATIC INLINE void _Priority_Handler_initialization( void );
/*
* _Priority_Is_valid
*
* DESCRIPTION:
*
* This function returns TRUE if the_priority if valid for a
* user task, and FALSE otherwise.
*/
STATIC INLINE boolean _Priority_Is_valid (
Priority_Control the_priority
);
/*
* _Priority_Major
*
* DESCRIPTION:
*
* This function returns the major portion of the_priority.
*/
STATIC INLINE unsigned32 _Priority_Major (
Priority_Control the_priority
);
/*
* _Priority_Minor
*
* DESCRIPTION:
*
* This function returns the minor portion of the_priority.
*/
STATIC INLINE unsigned32 _Priority_Minor (
Priority_Control the_priority
);
/*
* _Priority_Mask
*
* DESCRIPTION:
*
* This function returns the mask associated with the major or minor
* number passed to it.
* These may simply be pass throughs to CPU dependent routines.
*/
#if ( CPU_USE_GENERIC_BITFIELD_CODE == TRUE )
STATIC INLINE unsigned32 _Priority_Mask (
unsigned32 bit_number
);
#else
#if ( CPU_USE_GENERIC_BITFIELD_CODE == FALSE )
#define _Priority_Mask( _bit_number ) \
_CPU_Priority_Mask( _bit_number )
#endif
/*
* _Priority_Bits_index
*
* DESCRIPTION:
*
* This function translates the bit numbers returned by the bit scan
* of a priority bit field into something suitable for use as
* a major or minor component of a priority.
*/
#if ( CPU_USE_GENERIC_BITFIELD_CODE == TRUE )
STATIC INLINE unsigned32 _Priority_Bits_index (
unsigned32 bit_number
);
#else
#define _Priority_Bits_index( _priority ) \
_CPU_Priority_bits_index( _priority )
#endif
/*
* _Priority_Add_to_bit_map
*
* DESCRIPTION:
*
* This routine uses the_priority_map to update the priority
* bit maps to indicate that a thread has been readied.
*/
STATIC INLINE void _Priority_Add_to_bit_map (
Priority_Information *the_priority_map
);
/*
* _Priority_Remove_from_bit_map
*
* DESCRIPTION:
*
* This routine uses the_priority_map to update the priority
* bit maps to indicate that a thread has been removed from the
* ready state.
*/
STATIC INLINE void _Priority_Remove_from_bit_map (
Priority_Information *the_priority_map
);
/*
* _Priority_Get_highest
*
* DESCRIPTION:
*
* This function returns the priority of the highest priority
* ready thread.
*/
STATIC INLINE Priority_Control _Priority_Get_highest( void );
/*
* _Priority_Initialize_information
*
* DESCRIPTION:
*
* This routine initializes the_priority_map so that it
* contains the information necessary to manage a thread
* at new_priority.
*/
STATIC INLINE void _Priority_Initialize_information(
Priority_Information *the_priority_map,
Priority_Control new_priority
);
/*
* _Priority_Is_group_empty
*
* DESCRIPTION:
*
* This function returns TRUE if the priority GROUP is empty, and
* FALSE otherwise.
*/
STATIC INLINE boolean _Priority_Is_group_empty (
Priority_Control the_priority
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/priority.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -38,54 +38,9 @@ typedef struct {
void *area; /* low memory addr of stack */
} Stack_Control;
/*
* _Stack_Initialize
*
* DESCRIPTION:
*
* This routine initializes the_stack record to indicate that
* size bytes of memory starting at starting_address have been
* reserved for a stack.
*/
STATIC INLINE void _Stack_Initialize (
Stack_Control *the_stack,
void *starting_address,
unsigned32 size
);
/*
* _Stack_Is_enough
*
* DESCRIPTION:
*
* This function returns TRUE if size bytes is enough memory for
* a valid stack area on this processor, and FALSE otherwise.
*/
STATIC INLINE boolean _Stack_Is_enough (
unsigned32 size
);
/*
* _Stack_Adjust_size
*
* DESCRIPTION:
*
* This function increases the stack size to insure that the thread
* has the desired amount of stack space after the initial stack
* pointer is determined based on alignment restrictions.
*
* NOTE:
*
* The amount of adjustment for alignment is CPU dependent.
*/
STATIC INLINE unsigned32 _Stack_Adjust_size (
unsigned32 size
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/stack.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -66,285 +66,9 @@ typedef unsigned32 States_Control;
STATES_WAITING_FOR_EVENT | \
STATES_WAITING_ON_THREAD_QUEUE )
/*
* _States_Set
*
* DESCRIPTION:
*
* This function sets the given states_to_set into the current_state
* passed in. The result is returned to the user in current_state.
*/
STATIC INLINE States_Control _States_Set (
States_Control states_to_set,
States_Control current_state
);
/*
* _States_Clear
*
* DESCRIPTION:
*
* This function clears the given states_to_clear into the current_state
* passed in. The result is returned to the user in current_state.
*/
STATIC INLINE States_Control _States_Clear (
States_Control states_to_clear,
States_Control current_state
);
/*
* _States_Is_ready
*
* DESCRIPTION:
*
* This function returns TRUE if the_states indicates that the
* state is READY, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_ready (
States_Control the_states
);
/*
* _States_Is_only_dormant
*
* DESCRIPTION:
*
* This function returns TRUE if the DORMANT state is the ONLY state
* set in the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_only_dormant (
States_Control the_states
);
/*
* _States_Is_dormant
*
* DESCRIPTION:
*
* This function returns TRUE if the DORMANT state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_dormant (
States_Control the_states
);
/*
* _States_Is_suspended
*
* DESCRIPTION:
*
* This function returns TRUE if the SUSPENDED state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_suspended (
States_Control the_states
);
/*
* _States_Is_Transient
*
* DESCRIPTION:
*
* This function returns TRUE if the TRANSIENT state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_transient (
States_Control the_states
);
/*
* _States_Is_delaying
*
* DESCRIPTION:
*
* This function returns TRUE if the DELAYING state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_delaying (
States_Control the_states
);
/*
* _States_Is_waiting_for_buffer
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_BUFFER state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_buffer (
States_Control the_states
);
/*
* _States_Is_waiting_for_segment
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_SEGMENT state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_segment (
States_Control the_states
);
/*
* _States_Is_waiting_for_message
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_MESSAGE state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_message (
States_Control the_states
);
/*
* _States_Is_waiting_for_event
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_EVENT state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_event (
States_Control the_states
);
/*
* _States_Is_waiting_for_mutex
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_MUTEX state
* is set in the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_mutex (
States_Control the_states
);
/*
* _States_Is_waiting_for_semaphore
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_SEMAPHORE state
* is set in the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_semaphore (
States_Control the_states
);
/*
* _States_Is_waiting_for_time
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_TIME state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_time (
States_Control the_states
);
/*
* _States_Is_waiting_for_rpc_reply
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_TIME state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_rpc_reply (
States_Control the_states
);
/*
* _States_Is_waiting_for_period
*
* DESCRIPTION:
*
* This function returns TRUE if the WAITING_FOR_PERIOD state is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_for_period (
States_Control the_states
);
/*
* _States_Is_locally_blocked
*
* DESCRIPTION:
*
* This function returns TRUE if one of the states which indicates
* that a task is blocked waiting for a local resource is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_locally_blocked (
States_Control the_states
);
/*
* _States_Is_waiting_on_thread_queue
*
* DESCRIPTION:
*
* This function returns TRUE if one of the states which indicates
* that a task is blocked waiting for a local resource is set in
* the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_waiting_on_thread_queue (
States_Control the_states
);
/*
* _States_Is_blocked
*
* DESCRIPTION:
*
* This function returns TRUE if one of the states which indicates
* that a task is blocked is set in the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Is_blocked (
States_Control the_states
);
/*
* _States_Are_set
*
* DESCRIPTION:
*
* This function returns TRUE if any of the states in the mask
* are set in the_states, and FALSE otherwise.
*/
STATIC INLINE boolean _States_Are_set (
States_Control the_states,
States_Control mask
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/states.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -53,104 +53,8 @@ EXTERN boolean _System_state_Is_multiprocessing;
EXTERN System_state_Codes _System_state_Current;
/*
* _System_state_Handler_initialization
*
* DESCRIPTION:
*
* This routine initializes the system state handler.
* Make it possible for the application to get the system state information.
*/
STATIC INLINE void _System_state_Handler_initialization (
boolean is_multiprocessing
);
/*
* _System_state_Set
*
* DESCRIPTION:
*
* This routine sets the current system state to that specified by
* the called.
*/
STATIC INLINE void _System_state_Set (
System_state_Codes state
);
/*
* _System_state_Get
*
* DESCRIPTION:
*
* This function returns the current system state.
*/
STATIC INLINE System_state_Codes _System_state_Get ( void );
/*
* _System_state_Is_before_initialization
*
* DESCRIPTION:
*
* This function returns TRUE if the state is equal to the
* "before initialization" state, and FALSE otherwise.
*/
STATIC INLINE boolean _System_state_Is_before_initialization (
System_state_Codes state
);
/*
* _System_state_Is_before_multitasking
*
* DESCRIPTION:
*
* This function returns TRUE if the state is equal to the
* "before multitasking" state, and FALSE otherwise.
*/
STATIC INLINE boolean _System_state_Is_before_multitasking (
System_state_Codes state
);
/*
* _System_state_Is_begin_multitasking
*
* DESCRIPTION:
*
* This function returns TRUE if the state is equal to the
* "begin multitasking" state, and FALSE otherwise.
*/
STATIC INLINE boolean _System_state_Is_begin_multitasking (
System_state_Codes state
);
/*
* _System_state_Is_up
*
* DESCRIPTION:
*
* This function returns TRUE if the state is equal to the
* "up" state, and FALSE otherwise.
*/
STATIC INLINE boolean _System_state_Is_up (
System_state_Codes state
);
/*
* _System_state_Is_failed
*
* DESCRIPTION:
*
* This function returns TRUE if the state is equal to the
* "failed" state, and FALSE otherwise.
*/
STATIC INLINE boolean _System_state_Is_failed (
System_state_Codes state
);
#include <rtems/score/sysstate.inl>

View File

@@ -283,28 +283,6 @@ void _Thread_Create_idle( void );
void _Thread_Start_multitasking( void );
/*
* _Thread_Stop_multitasking
*
* DESCRIPTION:
*
* This routine halts multitasking and returns control to
* the "thread" (i.e. the BSP) which initially invoked the
* routine which initialized the system.
*/
STATIC INLINE void _Thread_Stop_multitasking( void );
/*
* _Thread_Dispatch_initialization
*
* DESCRIPTION:
*
* This routine initializes the thread dispatching subsystem.
*/
STATIC INLINE void _Thread_Dispatch_initialization( void );
/*
* _Thread_Dispatch
*
@@ -486,43 +464,6 @@ void _Thread_Tickle_timeslice( void );
void _Thread_Yield_processor( void );
/*
* _Thread_Is_executing
*
* DESCRIPTION:
*
* This function returns TRUE if the_thread is the currently executing
* thread, and FALSE otherwise.
*/
STATIC INLINE boolean _Thread_Is_executing (
Thread_Control *the_thread
);
/*
* _Thread_Is_heir
*
* DESCRIPTION:
*
* This function returns TRUE if the_thread is the heir
* thread, and FALSE otherwise.
*/
STATIC INLINE boolean _Thread_Is_executing (
Thread_Control *the_thread
);
/*
* _Thread_Is_executing_also_the_heir
*
* DESCRIPTION:
*
* This function returns TRUE if the currently executing thread
* is also the heir thread, and FALSE otherwise.
*/
STATIC INLINE boolean _Thread_Is_executing_also_the_heir( void );
/*
* _Thread_Load_environment
*
@@ -603,215 +544,6 @@ void _Thread_Set_priority(
boolean _Thread_Evaluate_mode( void );
/*
* _Thread_Resume
*
* DESCRIPTION:
*
* This routine clears the SUSPENDED state for the_thread. It performs
* any necessary scheduling operations including the selection of
* a new heir thread.
*/
STATIC INLINE void _Thread_Resume (
Thread_Control *the_thread
);
/*
* _Thread_Unblock
*
* DESCRIPTION:
*
* This routine clears any blocking state for the_thread. It performs
* any necessary scheduling operations including the selection of
* a new heir thread.
*/
STATIC INLINE void _Thread_Unblock (
Thread_Control *the_thread
);
/*
* _Thread_Restart_self
*
* DESCRIPTION:
*
* This routine resets the current context of the calling thread
* to that of its initial state.
*/
STATIC INLINE void _Thread_Restart_self( void );
/*
* _Thread_Calculate_heir
*
* DESCRIPTION:
*
* This function returns a pointer to the highest priority
* ready thread.
*/
STATIC INLINE void _Thread_Calculate_heir( void );
/*
* _Thread_Is_allocated_fp
*
* DESCRIPTION:
*
* This function returns TRUE if the floating point context of
* the_thread is currently loaded in the floating point unit, and
* FALSE otherwise.
*/
STATIC INLINE boolean _Thread_Is_allocated_fp (
Thread_Control *the_thread
);
/*
* _Thread_Deallocate_fp
*
* DESCRIPTION:
*
* This routine is invoked when the currently loaded floating
* point context is now longer associated with an active thread.
*/
STATIC INLINE void _Thread_Deallocate_fp( void );
/*
* _Thread_Disable_dispatch
*
* DESCRIPTION:
*
* This routine prevents dispatching.
*/
STATIC INLINE void _Thread_Disable_dispatch( void );
/*
* _Thread_Enable_dispatch
*
* DESCRIPTION:
*
* This routine allows dispatching to occur again. If this is
* the outer most dispatching critical section, then a dispatching
* operation will be performed and, if necessary, control of the
* processor will be transferred to the heir thread.
*/
#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE )
STATIC INLINE void _Thread_Enable_dispatch();
#endif
#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE )
void _Thread_Enable_dispatch( void );
#endif
/*
* _Thread_Unnest_dispatch
*
* DESCRIPTION:
*
* This routine allows dispatching to occur again. However,
* no dispatching operation is performed even if this is the outer
* most dispatching critical section.
*/
STATIC INLINE void _Thread_Unnest_dispatch( void );
/*
* _Thread_Is_dispatching_enabled
*
* DESCRIPTION:
*
* This function returns TRUE if dispatching is disabled, and FALSE
* otherwise.
*/
STATIC INLINE boolean _Thread_Is_dispatching_enabled( void );
/*
* _Thread_Is_context_switch_necessary
*
* DESCRIPTION:
*
* This function returns TRUE if dispatching is disabled, and FALSE
* otherwise.
*/
STATIC INLINE boolean _Thread_Is_context_switch_necessary( void );
/*
* _Thread_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_thread is NULL and FALSE otherwise.
*/
STATIC INLINE boolean _Thread_Is_null (
Thread_Control *the_thread
);
/*
* _Thread_Get
*
* DESCRIPTION:
*
* This function maps thread IDs to thread control
* blocks. If ID corresponds to a local thread, then it
* returns the_thread control pointer which maps to ID
* and location is set to OBJECTS_LOCAL. If the thread ID is
* global and resides on a remote node, then location is set
* to OBJECTS_REMOTE, and the_thread is undefined.
* Otherwise, location is set to OBJECTS_ERROR and
* the_thread is undefined.
*/
STATIC INLINE Thread_Control *_Thread_Get (
Objects_Id id,
Objects_Locations *location
);
/*
* _Thread_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 _Thread_Is_proxy_blocking (
unsigned32 code
);
/*
* _Thread_Internal_allocate
*
* DESCRIPTION:
*
* This routine allocates an internal thread.
*/
STATIC INLINE Thread_Control *_Thread_Internal_allocate( void );
/*
* _Thread_Internal_free
*
* DESCRIPTION:
*
* This routine frees an internal thread.
*/
STATIC INLINE void _Thread_Internal_free (
Thread_Control *the_task
);
/*
* _Thread_Idle_body
*
@@ -826,7 +558,9 @@ Thread _Thread_Idle_body(
);
#endif
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/thread.inl>
#endif
#include <rtems/score/threadmp.h>
#ifdef __cplusplus

View File

@@ -26,27 +26,13 @@ extern "C" {
*
* DESCRIPTION:
*
* This package is the specification for the Thread Handler's
* multiprocessing specific support routines.
* This routine initializes the multiprocessing portion of the Thread Handler.
*/
void _Thread_MP_Handler_initialization (
unsigned32 maximum_proxies
);
/*
* _Thread_MP_Is_receive
*
* DESCRIPTION:
*
* This function returns true if the thread in question is the
* multiprocessing receive thread.
*/
STATIC INLINE boolean _Thread_MP_Is_receive (
Thread_Control *the_thread
);
/*
* _Thread_MP_Allocate_proxy
*
@@ -63,19 +49,6 @@ Thread_Control *_Thread_MP_Allocate_proxy (
States_Control the_state
);
/*
* _Thread_MP_Free_proxy
*
* DESCRIPTION:
*
* This routine frees a proxy control block to the
* inactive chain of free proxy control blocks.
*/
STATIC INLINE void _Thread_MP_Free_proxy (
Thread_Control *the_thread
);
/*
* _Thread_MP_Find_proxy
*
@@ -104,7 +77,9 @@ EXTERN Thread_Control *_Thread_MP_Receive;
EXTERN Chain_Control _Thread_MP_Active_proxies;
EXTERN Chain_Control _Thread_MP_Inactive_proxies;
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/threadmp.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -204,50 +204,6 @@ Watchdog_Interval _TOD_To_seconds(
TOD_Control *the_tod
);
/*
* _TOD_Is_set
*
* DESCRIPTION:
*
* This function returns TRUE if the application has set the current
* time of day, and FALSE otherwise.
*/
STATIC INLINE boolean _TOD_Is_set( void );
/*
* _TOD_Tickle_ticks
*
* DESCRIPTION:
*
* This routine increments the ticks field of the current time of
* day at each clock tick.
*/
STATIC INLINE void _TOD_Tickle_ticks( void );
/*
* _TOD_Deactivate
*
* DESCRIPTION:
*
* This routine deactivates updating of the current time of day.
*/
STATIC INLINE void _TOD_Deactivate( void );
/*
* _TOD_Activate
*
* DESCRIPTION:
*
* This routine deactivates updating of the current time of day.
*/
STATIC INLINE void _TOD_Activate(
Watchdog_Interval ticks
);
/*
* _TOD_Tickle
*
@@ -292,7 +248,9 @@ void _TOD_Tickle(
#define TOD_MILLISECONDS_TO_TICKS(_ms) \
(TOD_MILLISECONDS_TO_MICROSECONDS(_ms) / _TOD_Microseconds_per_tick)
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/tod.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -48,11 +48,23 @@ typedef enum {
} Thread_queue_States;
/*
* The following record defines the control block used
* to manage each thread.
* The following constants are used to manage the priority queues.
*
* There are four chains used to maintain a priority -- each chain
* manages a distinct set of task priorities. The number of chains
* is determined by TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS.
* The following set must be consistent.
*
* The set below configures 4 headers -- each contains 64 priorities.
* Header x manages priority range (x*64) through ((x*64)+63). If
* the priority is more than half way through the priority range it
* is in, then the search is performed from the rear of the chain.
* This halves the search time to find the insertion point.
*/
#define TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS 4 /* # of pri groups */
#define TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS 4
#define TASK_QUEUE_DATA_PRIORITIES_PER_HEADER 64
#define TASK_QUEUE_DATA_REVERSE_SEARCH_MASK 0x20
typedef struct {
union {
@@ -67,47 +79,9 @@ typedef struct {
unsigned32 count;
} Thread_queue_Control;
/*
* _Thread_queue_Header_number
*
* DESCRIPTION:
*
* This function returns the index of the priority chain on which
* a thread of the_priority should be placed.
*/
STATIC INLINE unsigned32 _Thread_queue_Header_number (
Priority_Control the_priority
);
/*
* _Thread_queue_Is_reverse_search
*
* DESCRIPTION:
*
* This function returns TRUE if the_priority indicates that the
* enqueue search should start at the front of this priority
* group chain, and FALSE if the search should start at the rear.
*/
STATIC INLINE boolean _Thread_queue_Is_reverse_search (
Priority_Control the_priority
);
/*
* _Thread_queue_Enter_critical_section
*
* DESCRIPTION:
*
* This routine is invoked to indicate that the specified thread queue is
* entering a critical section.
*/
STATIC INLINE void _Thread_queue_Enter_critical_section (
Thread_queue_Control *the_thread_queue
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/tqdata.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -108,56 +108,6 @@ EXTERN User_extensions_Control _User_extensions_Initial;
EXTERN Chain_Control _User_extensions_List;
/*
* _User_extensions_Handler_initialization
*
* DESCRIPTION:
*
* This routine performs the initialization necessary for this handler.
*/
STATIC INLINE void _User_extensions_Handler_initialization (
User_extensions_Table *initial_extensions
);
/*
* _User_extensions_Add_set
*
* DESCRIPTION:
*
* This routine is used to add a user extension set to the active list.
*/
STATIC INLINE void _User_extensions_Add_set (
User_extensions_Control *the_extension,
User_extensions_Table *extension_table
);
/*
* _User_extensions_Add_API_set
*
* DESCRIPTION:
*
* This routine is used to add an API extension set to the active list.
*/
STATIC INLINE void _User_extensions_Add_API_set (
User_extensions_Control *the_extension
);
/*
* _User_extensions_Remove_set
*
* DESCRIPTION:
*
* This routine is used to remove a user extension set from the active list.
*/
STATIC INLINE void _User_extensions_Remove_set (
User_extensions_Control *the_extension
);
/*
* _User_extensions_Thread_create
*
@@ -210,20 +160,6 @@ void _User_extensions_Thread_restart (
Thread_Control *the_thread
);
/*
* _User_extensions_Thread_switch
*
* DESCRIPTION:
*
* This routine is used to invoke the user extension which
* is invoked when a context switch occurs.
*/
STATIC INLINE void _User_extensions_Thread_switch (
Thread_Control *executing,
Thread_Control *heir
);
/*
* _User_extensions_Thread_begin
*
@@ -265,7 +201,9 @@ void _User_extensions_Fatal (
unsigned32 the_error
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/userext.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -115,24 +115,6 @@ EXTERN Chain_Control _Watchdog_Seconds_chain;
void _Watchdog_Handler_initialization( void );
/*
*
* _Watchdog_Initialize
*
* DESCRIPTION:
*
* This routine initializes the specified watchdog. The watchdog is
* made inactive, the watchdog id and handler routine are set to the
* specified values.
*/
STATIC INLINE void _Watchdog_Initialize(
Watchdog_Control *the_watchdog,
Watchdog_Service_routine_entry routine,
Objects_Id id,
void *user_data
);
/*
* _Watchdog_Remove
*
@@ -146,208 +128,6 @@ Watchdog_States _Watchdog_Remove (
Watchdog_Control *the_watchdog
);
/*
*
* _Watchdog_Is_active
*
* DESCRIPTION:
*
* This routine returns TRUE if the watchdog timer is in the ACTIVE
* state, and FALSE otherwise.
*/
STATIC INLINE boolean _Watchdog_Is_active(
Watchdog_Control *the_watchdog
);
/*
*
* _Watchdog_Activate
*
* DESCRIPTION:
*
* This routine activates THE_WATCHDOG timer which is already
* on a watchdog chain.
*/
STATIC INLINE void _Watchdog_Activate(
Watchdog_Control *the_watchdog
);
/*
*
* _Watchdog_Deactivate
*
* DESCRIPTION:
*
* This routine deactivates THE_WATCHDOG timer which will remain
* on a watchdog chain.
*/
STATIC INLINE void _Watchdog_Deactivate(
Watchdog_Control *the_watchdog
);
/*
*
* _Watchdog_Tickle_ticks
*
* DESCRIPTION:
*
* This routine is invoked at each clock tick to update the ticks
* watchdog chain.
*/
STATIC INLINE void _Watchdog_Tickle_ticks( void );
/*
*
* _Watchdog_Tickle_seconds
*
* DESCRIPTION:
*
* This routine is invoked at each clock tick to update the seconds
* watchdog chain.
*/
STATIC INLINE void _Watchdog_Tickle_seconds( void );
/*
*
* _Watchdog_Insert_ticks
*
* DESCRIPTION:
*
* This routine inserts THE_WATCHDOG into the ticks watchdog chain
* for a time of UNITS ticks. The INSERT_MODE indicates whether
* THE_WATCHDOG is to be activated automatically or later, explicitly
* by the caller.
*/
STATIC INLINE void _Watchdog_Insert_ticks(
Watchdog_Control *the_watchdog,
Watchdog_Interval units
);
/*
*
* _Watchdog_Insert_seconds
*
* DESCRIPTION:
*
* This routine inserts THE_WATCHDOG into the seconds watchdog chain
* for a time of UNITS seconds. The INSERT_MODE indicates whether
* THE_WATCHDOG is to be activated automatically or later, explicitly
* by the caller.
*/
STATIC INLINE void _Watchdog_Insert_seconds(
Watchdog_Control *the_watchdog,
Watchdog_Interval units
);
/*
*
* _Watchdog_Adjust_seconds
*
* DESCRIPTION:
*
* This routine adjusts the seconds watchdog chain in the forward
* or backward DIRECTION for UNITS seconds. This is invoked when the
* current time of day is changed.
*/
STATIC INLINE void _Watchdog_Adjust_seconds(
Watchdog_Adjust_directions direction,
Watchdog_Interval units
);
/*
*
* _Watchdog_Adjust_ticks
*
* DESCRIPTION:
*
* This routine adjusts the ticks watchdog chain in the forward
* or backward DIRECTION for UNITS ticks.
*/
STATIC INLINE void _Watchdog_Adjust_ticks(
Watchdog_Adjust_directions direction,
Watchdog_Interval units
);
/*
*
* _Watchdog_Reset
*
* DESCRIPTION:
*
* This routine resets THE_WATCHDOG timer to its state at INSERT
* time. This routine is valid only on interval watchdog timers
* and is used to make an interval watchdog timer fire "every" so
* many ticks.
*/
STATIC INLINE void _Watchdog_Reset(
Watchdog_Control *the_watchdog
);
/*
*
* _Watchdog_Next
*
* DESCRIPTION:
*
* This routine returns a pointer to the watchdog timer following
* THE_WATCHDOG on the watchdog chain.
*/
STATIC INLINE Watchdog_Control *_Watchdog_Next(
Watchdog_Control *the_watchdog
);
/*
*
* _Watchdog_Previous
*
* DESCRIPTION:
*
* This routine returns a pointer to the watchdog timer preceding
* THE_WATCHDOG on the watchdog chain.
*/
STATIC INLINE Watchdog_Control *_Watchdog_Previous(
Watchdog_Control *the_watchdog
);
/*
*
* _Watchdog_First
*
* DESCRIPTION:
*
* This routine returns a pointer to the first watchdog timer
* on the watchdog chain HEADER.
*/
STATIC INLINE Watchdog_Control *_Watchdog_First(
Chain_Control *header
);
/*
*
* _Watchdog_Last
*
* DESCRIPTION:
*
* This routine returns a pointer to the last watchdog timer
* on the watchdog chain HEADER.
*/
STATIC INLINE Watchdog_Control *_Watchdog_Last(
Chain_Control *header
);
/*
* _Watchdog_Adjust
*
@@ -393,7 +173,9 @@ void _Watchdog_Tickle (
Chain_Control *header
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/watchdog.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -32,33 +32,6 @@ extern "C" {
EXTERN Heap_Control _Workspace_Area; /* executive heap header */
/*
* _Workspace_Handler_initialization
*
* DESCRIPTION:
*
* This routine performs the initialization necessary for this handler.
*/
STATIC INLINE void _Workspace_Handler_initialization(
void *starting_address,
unsigned32 size
);
/*
* _Workspace_Allocate
*
* DESCRIPTION:
*
* This routine returns the address of a block of memory of size
* bytes. If a block of the appropriate size cannot be allocated
* from the workspace, then NULL is returned.
*/
STATIC INLINE void *_Workspace_Allocate(
unsigned32 size
);
/*
* _Workspace_Allocate_or_fatal_error
*
@@ -73,21 +46,9 @@ void *_Workspace_Allocate_or_fatal_error(
unsigned32 size
);
/*
* _Workspace_Free
*
* DESCRIPTION:
*
* This function frees the specified block of memory. If the block
* belongs to the Workspace and can be successfully freed, then
* TRUE is returned. Otherwise FALSE is returned.
*/
STATIC INLINE boolean _Workspace_Free(
void *block
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/wkspace.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -21,83 +21,9 @@
extern "C" {
#endif
/*
* _Addresses_Add_offset
*
* DESCRIPTION:
*
* This function is used to add an offset to a base address.
* It returns the resulting address. This address is typically
* converted to an access type before being used further.
*/
STATIC INLINE void *_Addresses_Add_offset (
void *base,
unsigned32 offset
);
/*
* _Addresses_Subtract_offset
*
* DESCRIPTION:
*
* This function is used to subtract an offset from a base
* address. It returns the resulting address. This address is
* typically converted to an access type before being used further.
*/
STATIC INLINE void *_Addresses_Subtract_offset(
void *base,
unsigned32 offset
);
/*
* _Addresses_Subtract
*
* DESCRIPTION:
*
* This function is used to subtract two addresses. It returns the
* resulting offset.
*/
STATIC INLINE unsigned32 _Addresses_Subtract (
void *left,
void *right
);
/*
* _Addresses_Is_aligned
*
* DESCRIPTION:
*
* This function returns TRUE if the given address is correctly
* aligned for this processor and FALSE otherwise. Proper alignment
* is based on correctness and efficiency.
*/
STATIC INLINE boolean _Addresses_Is_aligned (
void *address
);
/*
* _Addresses_Is_in_range
*
* DESCRIPTION:
*
* This function returns TRUE if the given address is within the
* memory range specified and FALSE otherwise. base is the address
* of the first byte in the memory range and limit is the address
* of the last byte in the memory range. The base address is
* assumed to be lower than the limit address.
*/
STATIC INLINE boolean _Addresses_Is_in_range (
void *address,
void *base,
void *limit
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/address.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -83,49 +83,6 @@ void _Chain_Initialize(
unsigned32 node_size
);
/*
* _Chain_Initialize_empty
*
* DESCRIPTION:
*
* This routine initializes the specified chain to contain zero nodes.
*
*/
STATIC INLINE void _Chain_Initialize_empty(
Chain_Control *the_chain
);
/*
* _Chain_Are_nodes_equal
*
* DESCRIPTION:
*
* This function returns TRUE if LEFT and RIGHT are equal,
* and FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Are_nodes_equal(
Chain_Node *left,
Chain_Node *right
);
/*
* _Chain_Extract_unprotected
*
* DESCRIPTION:
*
* This routine extracts the_node from the chain on which it resides.
* It does NOT disable interrupts to insure the atomicity of the
* extract operation.
*
*/
STATIC INLINE void _Chain_Extract_unprotected(
Chain_Node *the_node
);
/*
* _Chain_Extract
*
@@ -141,22 +98,6 @@ void _Chain_Extract(
Chain_Node *the_node
);
/*
* _Chain_Get_unprotected
*
* DESCRIPTION:
*
* This function removes the first node from the_chain and returns
* a pointer to that node. If the_chain is empty, then NULL is returned.
* It does NOT disable interrupts to insure the atomicity of the
* get operation.
*
*/
STATIC INLINE Chain_Node *_Chain_Get_unprotected(
Chain_Control *the_chain
);
/*
* _Chain_Get
*
@@ -173,37 +114,6 @@ Chain_Node *_Chain_Get(
Chain_Control *the_chain
);
/*
* _Chain_Get_first_unprotected
*
* DESCRIPTION:
*
* This function removes the first node from the_chain and returns
* a pointer to that node. It does NOT disable interrupts to insure
* the atomicity of the get operation.
*
*/
STATIC INLINE Chain_Node *_Chain_Get_first_unprotected(
Chain_Control *the_chain
);
/*
* _Chain_Insert_unprotected
*
* DESCRIPTION:
*
* This routine inserts the_node on a chain immediately following
* after_node. It does NOT disable interrupts to insure the atomicity
* of the extract operation.
*
*/
STATIC INLINE void _Chain_Insert_unprotected(
Chain_Node *after_node,
Chain_Node *the_node
);
/*
* _Chain_Insert
*
@@ -220,22 +130,6 @@ void _Chain_Insert(
Chain_Node *the_node
);
/*
* _Chain_Append_unprotected
*
* DESCRIPTION:
*
* This routine appends the_node onto the end of the_chain.
* It does NOT disable interrupts to insure the atomicity of the
* append operation.
*
*/
STATIC INLINE void _Chain_Append_unprotected(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Append
*
@@ -252,177 +146,9 @@ void _Chain_Append(
Chain_Node *the_node
);
/*
* _Chain_Prepend_unprotected
*
* DESCRIPTION:
*
* This routine prepends the_node onto the front of the_chain.
* It does NOT disable interrupts to insure the atomicity of the
* prepend operation.
*
*/
STATIC INLINE void _Chain_Prepend_unprotected(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Prepend
*
* DESCRIPTION:
*
* This routine prepends the_node onto the front of the_chain.
* It disables interrupts to insure the atomicity of the
* prepend operation.
*
*/
STATIC INLINE void _Chain_Prepend(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Head
*
* DESCRIPTION:
*
* This function returns a pointer to the first node on the chain.
*
*/
STATIC INLINE Chain_Node *_Chain_Head(
Chain_Control *the_chain
);
/*
* _Chain_Tail
*
* DESCRIPTION:
*
* This function returns a pointer to the last node on the chain.
*
*/
STATIC INLINE Chain_Node *_Chain_Tail(
Chain_Control *the_chain
);
/*
* _Chain_Is_head
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the head of the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_head(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Is_tail
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the tail of the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_tail(
Chain_Control *the_chain,
Chain_Node *the_node
);
/*
* _Chain_Is_first
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the first node on a chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_first(
Chain_Node *the_node
);
/*
* _Chain_Is_last
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is the last node on a chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_last(
Chain_Node *the_node
);
/*
* _Chain_Is_empty
*
* DESCRIPTION:
*
* This function returns TRUE if there a no nodes on the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_empty(
Chain_Control *the_chain
);
/*
* _Chain_Has_only_one_node
*
* DESCRIPTION:
*
* This function returns TRUE if there is only one node on the_chain and
* FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Has_only_one_node(
Chain_Control *the_chain
);
/*
* _Chain_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_chain is NULL and FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_null(
Chain_Control *the_chain
);
/*
* _Chain_Is_null_node
*
* DESCRIPTION:
*
* This function returns TRUE if the_node is NULL and FALSE otherwise.
*
*/
STATIC INLINE boolean _Chain_Is_null_node(
Chain_Node *the_node
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/chain.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -195,41 +195,6 @@ unsigned32 _CORE_message_queue_Flush_support(
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_send
*
* DESCRIPTION:
*
* This routine sends a message to the end of the specified message queue.
*
*/
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Send(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,
Objects_Id id,
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
);
/*
*
* _CORE_message_queue_Urgent
*
* DESCRIPTION:
*
* This routine sends a message to the front of the specified message queue.
*
*/
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Urgent(
CORE_message_queue_Control *the_message_queue,
void *buffer,
unsigned32 size,
Objects_Id id,
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
);
/*
*
* _CORE_message_queue_Broadcast
@@ -296,144 +261,9 @@ void _CORE_message_queue_Seize(
Watchdog_Interval timeout
);
/*
* _CORE_message_queue_Allocate_message_buffer
*
* DESCRIPTION:
*
* This function allocates a message buffer from the inactive
* message buffer chain.
*/
STATIC INLINE CORE_message_queue_Buffer_control *
_CORE_message_queue_Allocate_message_buffer (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Free_message_buffer
*
* DESCRIPTION:
*
* This routine frees a message buffer to the inactive
* message buffer chain.
*/
STATIC INLINE void _CORE_message_queue_Free_message_buffer (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Buffer_control *the_message
);
/*
* _CORE_message_queue_Copy_buffer
*
* DESCRIPTION:
*
* This routine copies the contents of the source message buffer
* to the destination message buffer.
*/
STATIC INLINE void _CORE_message_queue_Copy_buffer (
void *source,
void *destination,
unsigned32 size
);
/*
* _CORE_message_queue_Get_pending_message
*
* DESCRIPTION:
*
* This function removes the first message from the_message_queue
* and returns a pointer to it.
*/
STATIC INLINE
CORE_message_queue_Buffer_control *_CORE_message_queue_Get_pending_message (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Is_priority
*
* DESCRIPTION:
*
* This function returns TRUE if the priority attribute is
* enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_message_queue_Is_priority(
CORE_message_queue_Attributes *the_attribute
);
/*
* _CORE_message_queue_Append
*
* DESCRIPTION:
*
* This routine places the_message at the rear of the outstanding
* messages on the_message_queue.
*/
STATIC INLINE void _CORE_message_queue_Append (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Buffer_control *the_message
);
/*
* _CORE_message_queue_Prepend
*
* DESCRIPTION:
*
* This routine places the_message at the rear of the outstanding
* messages on the_message_queue.
*/
STATIC INLINE void _CORE_message_queue_Prepend (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Buffer_control *the_message
);
/*
* _CORE_message_queue_Is_null
*
* DESCRIPTION:
*
* This function returns TRUE if the_message_queue is TRUE and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_message_queue_Is_null (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Is_notify_enabled
*
* DESCRIPTION:
*
* This function returns TRUE if notification is enabled on this message
* queue and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_message_queue_Is_notify_enabled (
CORE_message_queue_Control *the_message_queue
);
/*
* _CORE_message_queue_Set_notify
*
* DESCRIPTION:
*
* This routine initializes the notification information for the_message_queue.
*/
STATIC INLINE void _CORE_message_queue_Set_notify (
CORE_message_queue_Control *the_message_queue,
CORE_message_queue_Notify_Handler the_handler,
void *the_argument
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/coremsg.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -158,85 +158,9 @@ void _CORE_mutex_Flush(
unsigned32 status
);
/*
* _CORE_mutex_Is_locked
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex specified is locked and FALSE
* otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_locked(
CORE_mutex_Control *the_mutex
);
/*
* _CORE_mutex_Is_fifo
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is FIFO and FALSE
* otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_fifo(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_priority
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is PRIORITY and
* FALSE otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_priority(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_inherit_priority
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is
* INHERIT_PRIORITY and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_inherit_priority(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_priority_ceiling
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex's wait discipline is
* PRIORITY_CEILING and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_mutex_Is_priority_ceiling(
CORE_mutex_Attributes *the_attribute
);
/*
* _CORE_mutex_Is_nesting_allowed
*
* DESCRIPTION:
*
* This routine returns TRUE if the mutex allows a task to obtain a
* semaphore more than once and nest.
*/
STATIC INLINE boolean _CORE_mutex_Is_nesting_allowed(
CORE_mutex_Attributes *the_attribute
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/coremutex.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -143,32 +143,9 @@ void _CORE_semaphore_Flush(
unsigned32 status
);
/*
* _CORE_semaphore_Get_count
*
* DESCRIPTION:
*
* This routine returns the current count associated with the semaphore.
*/
STATIC INLINE unsigned32 _CORE_semaphore_Get_count(
CORE_semaphore_Control *the_semaphore
);
/*
* _CORE_semaphore_Is_priority
*
* DESCRIPTION:
*
* This function returns TRUE if the priority attribute is
* enabled in the attribute_set and FALSE otherwise.
*/
STATIC INLINE boolean _CORE_semaphore_Is_priority(
CORE_semaphore_Attributes *the_attribute
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/coresem.inl>
#endif
#ifdef __cplusplus
}

View File

@@ -214,189 +214,9 @@ void _Heap_Walk(
boolean do_dump
);
/*
* _Heap_Head
*
* DESCRIPTION:
*
* This function returns the head of the specified heap.
*/
STATIC INLINE Heap_Block *_Heap_Head (
Heap_Control *the_heap
);
/*
* _Heap_Tail
*
* DESCRIPTION:
*
* This function returns the tail of the specified heap.
*/
STATIC INLINE Heap_Block *_Heap_Tail (
Heap_Control *the_heap
);
/*
* _Heap_Previous_block
*
* DESCRIPTION:
*
* This function returns the address of the block which physically
* precedes the_block in memory.
*/
STATIC INLINE Heap_Block *_Heap_Previous_block (
Heap_Block *the_block
);
/*
* _Heap_Next_block
*
* DESCRIPTION:
*
* This function returns the address of the block which physically
* follows the_block in memory.
*/
STATIC INLINE Heap_Block *_Heap_Next_block (
Heap_Block *the_block
);
/*
* _Heap_Block_at
*
* DESCRIPTION:
*
* This function calculates and returns a block's location (address)
* in the heap based upad a base address and an offset.
*/
STATIC INLINE Heap_Block *_Heap_Block_at(
void *base,
unsigned32 offset
);
/*PAGE
*
* _Heap_User_block_at
*
*/
STATIC INLINE Heap_Block *_Heap_User_block_at(
void *base
);
/*
* _Heap_Is_previous_block_free
*
* DESCRIPTION:
*
* This function returns TRUE if the previous block of the_block
* is free, and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_previous_block_free (
Heap_Block *the_block
);
/*
* _Heap_Is_block_free
*
* DESCRIPTION:
*
* This function returns TRUE if the block is free, and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_block_free (
Heap_Block *the_block
);
/*
* _Heap_Is_block_used
*
* DESCRIPTION:
*
* This function returns TRUE if the block is currently allocated,
* and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_block_used (
Heap_Block *the_block
);
/*
* _Heap_Block_size
*
* DESCRIPTION:
*
* This function returns the size of the_block in bytes.
*/
STATIC INLINE unsigned32 _Heap_Block_size (
Heap_Block *the_block
);
/*
* _Heap_Start_of_user_area
*
* DESCRIPTION:
*
* This function returns the starting address of the portion of the block
* which the user may access.
*/
STATIC INLINE void *_Heap_Start_of_user_area (
Heap_Block *the_block
);
/*
* _Heap_Is_block_in
*
* DESCRIPTION:
*
* This function returns TRUE if the_block is within the memory area
* managed by the_heap, and FALSE otherwise.
*/
STATIC INLINE boolean _Heap_Is_block_in (
Heap_Control *the_heap,
Heap_Block *the_block
);
/*
* _Heap_Is_page_size_valid
*
* DESCRIPTION:
*
* This function validates a specified heap page size. If the page size
* is 0 or if lies outside a page size alignment boundary it is invalid
* and FALSE is returned. Otherwise, the page size is valid and TRUE is
* returned.
*/
STATIC INLINE boolean _Heap_Is_page_size_valid(
unsigned32 page_size
);
/*
* _Heap_Build_flag
*
* DESCRIPTION:
*
* This function returns the block flag composed of size and in_use_flag.
* The flag returned is suitable for use as a back or front flag in a
* heap block.
*/
STATIC INLINE unsigned32 _Heap_Build_flag (
unsigned32 size,
unsigned32 in_use_flag
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/heap.inl>
#endif
#ifdef __cplusplus
}

Some files were not shown because too many files have changed in this diff Show More