forked from Imagelibrary/rtems
The word "RTEMS" almost completely removed from the core.
Configuration Table Template file added and all tests modified to use this. All gvar.h and conftbl.h files removed from test directories. Configuration parameter maximum_devices added. Core semaphore and mutex handlers added and RTEMS API Semaphore Manager updated to reflect this. Initialization sequence changed to invoke API specific initialization routines. Initialization tasks table now owned by RTEMS Tasks Manager. Added user extension for post-switch. Utilized user extensions to implement API specific functionality like signal dispatching. Added extensions to the System Initialization Thread so that an API can register a function to be invoked while the system is being initialized. These are largely equivalent to the pre-driver and post-driver hooks. Added the Modules file oar-go32_p5, modified oar-go32, and modified the file make/custom/go32.cfg to look at an environment varable which determines what CPU model is being used. All BSPs updated to reflect named devices and clock driver's IOCTL used by the Shared Memory Driver. Also merged clock isr into main file and removed ckisr.c where possible. Updated spsize to reflect new and moved variables. Makefiles for the executive source and include files updated to show break down of files into Core, RTEMS API, and Neither. Header and inline files installed into subdirectory based on whether logically in the Core or a part of the RTEMS API.
This commit is contained in:
@@ -22,14 +22,43 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define CONSOLE_DRIVER_TABLE_ENTRY \
|
||||
{ console_initialize, NULL, NULL, NULL, NULL, NULL }
|
||||
{ console_initialize, console_open, console_close, \
|
||||
console_read, console_write, console_control }
|
||||
|
||||
rtems_device_driver console_initialize(
|
||||
rtems_device_major_number,
|
||||
rtems_device_minor_number,
|
||||
void *,
|
||||
rtems_id,
|
||||
rtems_unsigned32 *
|
||||
void *
|
||||
);
|
||||
|
||||
rtems_device_driver console_open(
|
||||
rtems_device_major_number,
|
||||
rtems_device_minor_number,
|
||||
void *
|
||||
);
|
||||
|
||||
rtems_device_driver console_close(
|
||||
rtems_device_major_number,
|
||||
rtems_device_minor_number,
|
||||
void *
|
||||
);
|
||||
|
||||
rtems_device_driver console_read(
|
||||
rtems_device_major_number,
|
||||
rtems_device_minor_number,
|
||||
void *
|
||||
);
|
||||
|
||||
rtems_device_driver console_write(
|
||||
rtems_device_major_number,
|
||||
rtems_device_minor_number,
|
||||
void *
|
||||
);
|
||||
|
||||
rtems_device_driver console_control(
|
||||
rtems_device_major_number,
|
||||
rtems_device_minor_number,
|
||||
void *
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -91,8 +91,8 @@ rtems_assoc_t rtems_status_assoc[] = {
|
||||
{ "not owner of resource", RTEMS_NOT_OWNER_OF_RESOURCE , },
|
||||
{ "directive not implemented", RTEMS_NOT_IMPLEMENTED, },
|
||||
{ "RTEMS inconsistency detected", RTEMS_INTERNAL_ERROR, },
|
||||
{ "internal multiprocessing only", RTEMS_PROXY_BLOCKING, },
|
||||
{ "could not get enough memory", RTEMS_NO_MEMORY, },
|
||||
{ "internal multiprocessing only", THREAD_STATUS_PROXY_BLOCKING, },
|
||||
{ 0, 0, 0 },
|
||||
};
|
||||
|
||||
@@ -134,7 +134,7 @@ static int rtems_verror(
|
||||
if (error_flag & RTEMS_ERROR_ERRNO) /* include errno? */
|
||||
local_errno = errno;
|
||||
|
||||
if (_Configuration_Is_multiprocessing())
|
||||
if (_System_state_Is_multiprocessing)
|
||||
fprintf(stderr, "[%d] ", _Configuration_MP_table->node);
|
||||
|
||||
if (rtems_progname && *rtems_progname)
|
||||
|
||||
@@ -14,8 +14,11 @@
|
||||
#include <rtems/assoc.h> /* assoc.h not included by rtems.h */
|
||||
|
||||
#include <fcntl.h> /* O_RDONLY, et.al. */
|
||||
#include <sys/fcntl.h> /* O_RDONLY, et.al. */
|
||||
#if defined(solaris2)
|
||||
#define O_NDELAY O_NONBLOCK
|
||||
#elif defined(RTEMS_NEWLIB)
|
||||
#define O_NDELAY _FNBIO
|
||||
#endif
|
||||
#include <errno.h>
|
||||
#include <string.h> /* strcmp */
|
||||
|
||||
@@ -80,11 +80,12 @@ libc_wrapup(void)
|
||||
}
|
||||
|
||||
|
||||
rtems_extension
|
||||
rtems_boolean
|
||||
libc_create_hook(rtems_tcb *current_task,
|
||||
rtems_tcb *creating_task)
|
||||
{
|
||||
MY_task_set_note(creating_task, LIBC_NOTEPAD, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -231,10 +232,10 @@ libc_init(int reentrant)
|
||||
{
|
||||
memset(&libc_extension, 0, sizeof(libc_extension));
|
||||
|
||||
libc_extension.rtems_task_create = libc_create_hook;
|
||||
libc_extension.rtems_task_start = libc_start_hook;
|
||||
libc_extension.task_switch = libc_switch_hook;
|
||||
libc_extension.rtems_task_delete = libc_delete_hook;
|
||||
libc_extension.thread_create = libc_create_hook;
|
||||
libc_extension.thread_start = libc_start_hook;
|
||||
libc_extension.thread_switch = libc_switch_hook;
|
||||
libc_extension.thread_delete = libc_delete_hook;
|
||||
|
||||
rc = rtems_extension_create(rtems_build_name('L', 'I', 'B', 'C'),
|
||||
&libc_extension, &extension_id);
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/modes.h>
|
||||
#include <rtems/rtems/modes.h>
|
||||
|
||||
/*
|
||||
*
|
||||
@@ -54,6 +54,7 @@ typedef rtems_asr ( *rtems_asr_entry )(
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
boolean is_enabled; /* are ASRs enabled currently? */
|
||||
rtems_asr_entry handler; /* address of RTEMS_ASR */
|
||||
Modes_Control mode_set; /* RTEMS_ASR mode */
|
||||
rtems_signal_set signals_posted; /* signal set */
|
||||
@@ -167,7 +168,7 @@ STATIC INLINE void _ASR_Post_signals(
|
||||
rtems_signal_set *signal_set
|
||||
);
|
||||
|
||||
#include <rtems/asr.inl>
|
||||
#include <rtems/rtems/asr.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ typedef unsigned32 rtems_attribute;
|
||||
#define RTEMS_NO_INHERIT_PRIORITY 0x00000000
|
||||
#define RTEMS_INHERIT_PRIORITY 0x00000020
|
||||
|
||||
#define RTEMS_NO_PRIORITY_CEILING 0x00000000
|
||||
#define RTEMS_PRIORITY_CEILING 0x00000040
|
||||
|
||||
#if ( CPU_HARDWARE_FP == TRUE )
|
||||
#define ATTRIBUTES_NOT_SUPPORTED 0
|
||||
#else
|
||||
@@ -177,7 +180,21 @@ STATIC INLINE boolean _Attributes_Is_inherit_priority(
|
||||
rtems_attribute attribute_set
|
||||
);
|
||||
|
||||
#include <rtems/attr.inl>
|
||||
/*
|
||||
* _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
|
||||
);
|
||||
|
||||
|
||||
#include <rtems/rtems/attr.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/tod.h>
|
||||
#include <rtems/core/tod.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* List of things which can be returned by the rtems_clock_get directive.
|
||||
|
||||
@@ -32,8 +32,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/core/object.h>
|
||||
|
||||
/*
|
||||
* The following structure defines the port control block. Each port
|
||||
@@ -201,7 +200,7 @@ STATIC INLINE boolean _Dual_ported_memory_Is_null(
|
||||
Dual_ported_memory_Control *the_port
|
||||
);
|
||||
|
||||
#include <rtems/dpmem.inl>
|
||||
#include <rtems/rtems/dpmem.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -28,11 +28,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/eventset.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
#include <rtems/rtems/eventset.h>
|
||||
|
||||
/*
|
||||
* This constant is passed as the event_in to the
|
||||
@@ -106,7 +107,8 @@ rtems_status_code rtems_event_receive (
|
||||
void _Event_Seize (
|
||||
rtems_event_set event_in,
|
||||
rtems_option option_set,
|
||||
rtems_interval ticks
|
||||
rtems_interval ticks,
|
||||
rtems_event_set *event_out
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -147,8 +149,8 @@ void _Event_Timeout (
|
||||
|
||||
EXTERN boolean _Event_Sync; /* event manager sync flag */
|
||||
|
||||
#include <rtems/event.inl>
|
||||
#include <rtems/eventmp.h>
|
||||
#include <rtems/rtems/eventmp.h>
|
||||
#include <rtems/rtems/event.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/event.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -132,7 +132,7 @@ STATIC INLINE rtems_event_set _Event_sets_Clear(
|
||||
rtems_event_set the_mask
|
||||
);
|
||||
|
||||
#include <rtems/eventset.inl>
|
||||
#include <rtems/rtems/eventset.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*
|
||||
* Interrupt level type
|
||||
@@ -29,6 +29,27 @@ extern "C" {
|
||||
|
||||
typedef ISR_Level rtems_interrupt_level;
|
||||
|
||||
/*
|
||||
* The following type defines the control block used to manage
|
||||
* the vectors.
|
||||
*/
|
||||
|
||||
typedef ISR_Vector_number rtems_vector_number;
|
||||
|
||||
/*
|
||||
* Return type for ISR Handler
|
||||
*/
|
||||
|
||||
typedef void rtems_isr;
|
||||
|
||||
/*
|
||||
* Pointer to an ISR Handler
|
||||
*/
|
||||
|
||||
typedef rtems_isr ( *rtems_isr_entry )(
|
||||
rtems_vector_number
|
||||
);
|
||||
|
||||
/*
|
||||
* _Interrupt_Manager_initialization
|
||||
*
|
||||
|
||||
@@ -34,10 +34,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/chain.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/core/chain.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
|
||||
/*
|
||||
* The following defines the data types needed to manipulate
|
||||
@@ -468,8 +469,8 @@ STATIC INLINE Message_queue_Control *_Message_queue_Get (
|
||||
Objects_Locations *location
|
||||
);
|
||||
|
||||
#include <rtems/message.inl>
|
||||
#include <rtems/msgmp.h>
|
||||
#include <rtems/rtems/message.inl>
|
||||
#include <rtems/rtems/msgmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*
|
||||
* The following type defines the control block used to manage
|
||||
@@ -173,7 +173,7 @@ STATIC INLINE void _Modes_Change (
|
||||
Modes_Control *changed
|
||||
);
|
||||
|
||||
#include <rtems/modes.inl>
|
||||
#include <rtems/rtems/modes.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -45,20 +45,6 @@ void _Multiprocessing_Manager_initialization ( void );
|
||||
|
||||
void rtems_multiprocessing_announce ( void );
|
||||
|
||||
/*
|
||||
*
|
||||
* _Multiprocessing_Receive_server
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This routine is a server thread which processes remote requests
|
||||
* from other nodes.
|
||||
*/
|
||||
|
||||
Thread _Multiprocessing_Receive_server (
|
||||
Thread_Argument ignored
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/message.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
@@ -97,7 +97,7 @@ rtems_status_code _Message_queue_MP_Send_request_packet (
|
||||
void *buffer,
|
||||
unsigned32 *size_p,
|
||||
rtems_option option_set,
|
||||
rtems_interval timeout
|
||||
Watchdog_Interval timeout
|
||||
);
|
||||
|
||||
/*
|
||||
|
||||
@@ -69,7 +69,7 @@ STATIC INLINE boolean _Options_Is_any (
|
||||
rtems_option option_set
|
||||
);
|
||||
|
||||
#include <rtems/options.inl>
|
||||
#include <rtems/rtems/options.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/address.h>
|
||||
#include <rtems/attr.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/core/address.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* The following defines the control block used to manage each partition.
|
||||
@@ -280,8 +280,8 @@ STATIC INLINE boolean _Partition_Is_null (
|
||||
Partition_Control *the_partition
|
||||
);
|
||||
|
||||
#include <rtems/part.inl>
|
||||
#include <rtems/partmp.h>
|
||||
#include <rtems/rtems/part.inl>
|
||||
#include <rtems/rtems/partmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,11 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
#include <rtems/rtems/part.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -29,10 +29,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the states in which a
|
||||
@@ -50,7 +49,7 @@ typedef enum {
|
||||
* directive to obtain status information.
|
||||
*/
|
||||
|
||||
#define RTEMS_PERIOD_STATUS RTEMS_NO_TIMEOUT
|
||||
#define RTEMS_PERIOD_STATUS WATCHDOG_NO_TIMEOUT
|
||||
|
||||
/*
|
||||
* The following structure defines the control block used to manage
|
||||
@@ -276,7 +275,7 @@ STATIC INLINE boolean _Rate_monotonic_Is_null (
|
||||
Rate_monotonic_Control *the_period
|
||||
);
|
||||
|
||||
#include <rtems/ratemon.inl>
|
||||
#include <rtems/rtems/ratemon.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -30,11 +30,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/heap.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
#include <rtems/core/heap.h>
|
||||
#include <rtems/debug.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* The following records define the control block used to manage
|
||||
@@ -278,8 +279,8 @@ STATIC INLINE boolean _Region_Is_null (
|
||||
Region_Control *the_region
|
||||
);
|
||||
|
||||
#include <rtems/region.inl>
|
||||
#include <rtems/regionmp.h>
|
||||
#include <rtems/rtems/region.inl>
|
||||
#include <rtems/rtems/regionmp.h>
|
||||
|
||||
/*
|
||||
* _Region_Debug_Walk
|
||||
|
||||
@@ -21,11 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/region.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/rtems/region.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -24,31 +24,83 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/init.h>
|
||||
#include <rtems/tasks.h>
|
||||
#include <rtems/intr.h>
|
||||
#include <rtems/clock.h>
|
||||
#include <rtems/rtems/tasks.h>
|
||||
#include <rtems/rtems/intr.h>
|
||||
#include <rtems/rtems/clock.h>
|
||||
#include <rtems/extension.h>
|
||||
#include <rtems/timer.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/signal.h>
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/region.h>
|
||||
#include <rtems/dpmem.h>
|
||||
#include <rtems/rtems/timer.h>
|
||||
#include <rtems/rtems/sem.h>
|
||||
#include <rtems/rtems/message.h>
|
||||
#include <rtems/rtems/event.h>
|
||||
#include <rtems/rtems/signal.h>
|
||||
#include <rtems/rtems/event.h>
|
||||
#include <rtems/rtems/part.h>
|
||||
#include <rtems/rtems/region.h>
|
||||
#include <rtems/rtems/dpmem.h>
|
||||
#include <rtems/io.h>
|
||||
#include <rtems/fatal.h>
|
||||
#include <rtems/ratemon.h>
|
||||
#include <rtems/mp.h>
|
||||
#include <rtems/rtems/ratemon.h>
|
||||
#include <rtems/rtems/mp.h>
|
||||
|
||||
#include <rtems/support.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/sysstate.h>
|
||||
|
||||
#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
|
||||
|
||||
/*
|
||||
* The following define the constants which may be used in name searches.
|
||||
*/
|
||||
|
||||
#define RTEMS_SEARCH_ALL_NODES OBJECTS_SEARCH_ALL_NODES
|
||||
#define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
|
||||
#define RTEMS_SEARCH_LOCAL_NODE OBJECTS_SEARCH_LOCAL_NODE
|
||||
#define RTEMS_WHO_AM_I OBJECTS_WHO_AM_I
|
||||
|
||||
/*
|
||||
* Parameters and return id's for _Objects_Get_next
|
||||
*/
|
||||
|
||||
#define RTEMS_OBJECT_ID_INITIAL_INDEX OBJECTS_ID_INITIAL_INDEX
|
||||
#define RTEMS_OBJECT_ID_FINAL_INDEX OBJECTS_ID_FINAL_INDEX
|
||||
|
||||
#define RTEMS_OBJECT_ID_INITIAL(node) OBJECTS_ID_INITIAL(node)
|
||||
#define RTEMS_OBJECT_ID_FINAL OBJECTS_ID_FINAL
|
||||
|
||||
/*
|
||||
* The following constant defines the minimum stack size which every
|
||||
* thread must exceed.
|
||||
*/
|
||||
|
||||
#define RTEMS_MINIMUM_STACK_SIZE STACK_MINIMUM_SIZE
|
||||
|
||||
/*
|
||||
* Constant for indefinite wait. (actually an illegal interval)
|
||||
*/
|
||||
|
||||
#define RTEMS_NO_TIMEOUT WATCHDOG_NO_TIMEOUT
|
||||
|
||||
/*
|
||||
* An MPCI must support packets of at least this size.
|
||||
*/
|
||||
|
||||
#define RTEMS_MINIMUM_PACKET_SIZE MP_PACKET_MINIMUM_PACKET_SIZE
|
||||
|
||||
/*
|
||||
* The following constant defines the number of unsigned32's
|
||||
* in a packet which must be converted to native format in a
|
||||
* heterogeneous system. In packets longer than
|
||||
* MP_PACKET_MINIMUN_HETERO_CONVERSION unsigned32's, some of the "extra" data
|
||||
* may a user message buffer which is not automatically endian swapped.
|
||||
*/
|
||||
|
||||
#define RTEMS_MINIMUN_HETERO_CONVERSION MP_PACKET_MINIMUN_HETERO_CONVERSION
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
34
c/src/exec/rtems/headers/rtemsapi.h
Normal file
34
c/src/exec/rtems/headers/rtemsapi.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* RTEMS API Support
|
||||
*
|
||||
* NOTE:
|
||||
*
|
||||
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* All rights assigned to U.S. Government, 1994.
|
||||
*
|
||||
* This material may be reproduced by or for the U.S. Government pursuant
|
||||
* to the copyright license under the clause at DFARS 252.227-7013. This
|
||||
* notice must appear in all copies of this file and its derivatives.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __RTEMS_API_h
|
||||
#define __RTEMS_API_h
|
||||
|
||||
#include <rtems/config.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_API_Initialize
|
||||
*
|
||||
* XXX
|
||||
*/
|
||||
|
||||
void _RTEMS_API_Initialize(
|
||||
rtems_configuration_table *configuration_table
|
||||
);
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -31,10 +31,14 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/attr.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/rtems/tasks.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/core/coremutex.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/coresem.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
|
||||
/*
|
||||
* The following defines the control block used to manage each semaphore.
|
||||
@@ -42,12 +46,11 @@ extern "C" {
|
||||
|
||||
typedef struct {
|
||||
Objects_Control Object;
|
||||
Thread_queue_Control Wait_queue;
|
||||
rtems_attribute attribute_set;
|
||||
unsigned32 count;
|
||||
unsigned32 nest_count;
|
||||
Thread_Control *holder;
|
||||
Objects_Id holder_id;
|
||||
union {
|
||||
CORE_mutex_Control mutex;
|
||||
CORE_semaphore_Control semaphore;
|
||||
} Core_control;
|
||||
} Semaphore_Control;
|
||||
|
||||
/*
|
||||
@@ -86,7 +89,7 @@ rtems_status_code rtems_semaphore_create(
|
||||
unsigned32 count,
|
||||
rtems_attribute attribute_set,
|
||||
rtems_task_priority priority_ceiling,
|
||||
Objects_Id *id
|
||||
rtems_id *id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -106,7 +109,7 @@ rtems_status_code rtems_semaphore_create(
|
||||
rtems_status_code rtems_semaphore_ident(
|
||||
rtems_name name,
|
||||
unsigned32 node,
|
||||
Objects_Id *id
|
||||
rtems_id *id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -119,7 +122,7 @@ rtems_status_code rtems_semaphore_ident(
|
||||
*/
|
||||
|
||||
rtems_status_code rtems_semaphore_delete(
|
||||
Objects_Id id
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -137,7 +140,7 @@ rtems_status_code rtems_semaphore_delete(
|
||||
*/
|
||||
|
||||
rtems_status_code rtems_semaphore_obtain(
|
||||
Objects_Id id,
|
||||
rtems_id id,
|
||||
unsigned32 option_set,
|
||||
rtems_interval timeout
|
||||
);
|
||||
@@ -155,7 +158,7 @@ rtems_status_code rtems_semaphore_obtain(
|
||||
*/
|
||||
|
||||
rtems_status_code rtems_semaphore_release(
|
||||
Objects_Id id
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -213,7 +216,7 @@ STATIC INLINE void _Semaphore_Free (
|
||||
*/
|
||||
|
||||
STATIC INLINE Semaphore_Control *_Semaphore_Get (
|
||||
Objects_Id id,
|
||||
rtems_id id,
|
||||
Objects_Locations *location
|
||||
);
|
||||
|
||||
@@ -229,8 +232,66 @@ STATIC INLINE boolean _Semaphore_Is_null (
|
||||
Semaphore_Control *the_semaphore
|
||||
);
|
||||
|
||||
#include <rtems/sem.inl>
|
||||
#include <rtems/semmp.h>
|
||||
/*
|
||||
* _Semaphore_Translate_core_mutex_return_code
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns a RTEMS status code based on the mutex
|
||||
* status code specified.
|
||||
*/
|
||||
|
||||
rtems_status_code _Semaphore_Translate_core_mutex_return_code (
|
||||
unsigned32 the_mutex_status
|
||||
);
|
||||
|
||||
/*
|
||||
* _Semaphore_Translate_core_semaphore_return_code
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns a RTEMS status code based on the semaphore
|
||||
* status code specified.
|
||||
*/
|
||||
|
||||
rtems_status_code _Semaphore_Translate_core_semaphore_return_code (
|
||||
unsigned32 the_mutex_status
|
||||
);
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Core_mutex_mp_support
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function processes the global actions necessary for remote
|
||||
* accesses to a global semaphore based on a core mutex. This function
|
||||
* is called by the core.
|
||||
*/
|
||||
|
||||
void _Semaphore_Core_mutex_mp_support (
|
||||
Thread_Control *the_thread,
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Core_mp_support
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function processes the global actions necessary for remote
|
||||
* accesses to a global semaphore based on a core semaphore. This function
|
||||
* is called by the core.
|
||||
*/
|
||||
|
||||
void _Semaphore_Core_semaphore_mp_support (
|
||||
Thread_Control *the_thread,
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
#include <rtems/rtems/sem.inl>
|
||||
#include <rtems/rtems/semmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/rtems/sem.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -27,11 +27,21 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/asr.h>
|
||||
#include <rtems/modes.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/status.h>
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/rtems/asr.h>
|
||||
#include <rtems/rtems/modes.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* _Signal_Manager_initialization
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This routine performs the initialization necessary for this manager.
|
||||
*/
|
||||
|
||||
void _Signal_Manager_initialization( void );
|
||||
|
||||
/*
|
||||
* rtems_signal_catch
|
||||
@@ -63,7 +73,7 @@ rtems_status_code rtems_signal_send(
|
||||
rtems_signal_set signal_set
|
||||
);
|
||||
|
||||
#include <rtems/signalmp.h>
|
||||
#include <rtems/rtems/signalmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/asr.h>
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/asr.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -52,13 +52,22 @@ typedef enum {
|
||||
RTEMS_NOT_OWNER_OF_RESOURCE = 23, /* not owner of resource */
|
||||
RTEMS_NOT_IMPLEMENTED = 24, /* directive not implemented */
|
||||
RTEMS_INTERNAL_ERROR = 25, /* RTEMS inconsistency detected */
|
||||
RTEMS_PROXY_BLOCKING = 26, /* internal multiprocessing only */
|
||||
RTEMS_NO_MEMORY = 27 /* could not get enough memory */
|
||||
RTEMS_NO_MEMORY = 26 /* could not get enough memory */
|
||||
} rtems_status_code;
|
||||
|
||||
#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL
|
||||
#define RTEMS_STATUS_CODES_LAST RTEMS_NO_MEMORY
|
||||
|
||||
extern rtems_status_code _Status_Object_name_errors_to_status[];
|
||||
|
||||
#ifdef INIT
|
||||
rtems_status_code _Status_Object_name_errors_to_status[] = {
|
||||
RTEMS_SUCCESSFUL, /* OBJECTS_SUCCESSFUL */
|
||||
RTEMS_INVALID_NAME, /* OBJECTS_INVALID_NAME */
|
||||
RTEMS_INVALID_NODE /* OBJECTS_INVALID_NODE */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* rtems_is_status_successful
|
||||
*
|
||||
@@ -86,20 +95,7 @@ STATIC INLINE boolean rtems_are_statuses_equal (
|
||||
rtems_status_code code2
|
||||
);
|
||||
|
||||
/*
|
||||
* _Status_Is_proxy_blocking
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns TRUE if the status code is equal to the
|
||||
* status which indicates that a proxy is blocking, and FALSE otherwise.
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _Status_Is_proxy_blocking (
|
||||
rtems_status_code code
|
||||
);
|
||||
|
||||
#include <rtems/status.inl>
|
||||
#include <rtems/rtems/status.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* rtems_is_name_valid
|
||||
@@ -70,7 +70,52 @@ STATIC INLINE void rtems_name_to_characters(
|
||||
char *c4
|
||||
);
|
||||
|
||||
#include <rtems/support.inl>
|
||||
/*
|
||||
* rtems_get_class
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns the class portion of the ID.
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_get_class( _id ) \
|
||||
_Objects_Get_class( _id )
|
||||
|
||||
/*
|
||||
* rtems_get_node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns the node portion of the ID.
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_get_node( _id ) \
|
||||
_Objects_Get_node( _id )
|
||||
|
||||
/*
|
||||
* rtems_get_index
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns the index portion of the ID.
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_get_index( _id ) \
|
||||
_Objects_Get_index( _id )
|
||||
|
||||
/*
|
||||
* Time related
|
||||
*/
|
||||
|
||||
#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) \
|
||||
TOD_MILLISECONDS_TO_MICROSECONDS(_ms)
|
||||
#define RTEMS_MILLISECONDS_TO_TICKS(_ms) \
|
||||
TOD_MILLISECONDS_TO_TICKS(_ms)
|
||||
|
||||
#include <rtems/rtems/support.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/priority.h>
|
||||
#include <rtems/tasks.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/priority.h>
|
||||
#include <rtems/rtems/tasks.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -38,16 +38,13 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/region.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/states.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/states.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/eventset.h>
|
||||
#include <rtems/rtems/asr.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
|
||||
/*
|
||||
* Constant to be used as the ID of current task
|
||||
@@ -60,7 +57,106 @@ extern "C" {
|
||||
* interval when a task wishes to yield the CPU.
|
||||
*/
|
||||
|
||||
#define RTEMS_YIELD_PROCESSOR RTEMS_NO_TIMEOUT
|
||||
#define RTEMS_YIELD_PROCESSOR WATCHDOG_NO_TIMEOUT
|
||||
|
||||
/*
|
||||
* Define the type for an RTEMS API task priority.
|
||||
*/
|
||||
|
||||
typedef Priority_Control rtems_task_priority;
|
||||
|
||||
#define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY
|
||||
|
||||
#define RTEMS_MINIMUM_PRIORITY (PRIORITY_MINIMUM + 1)
|
||||
#define RTEMS_MAXIMUM_PRIORITY PRIORITY_MAXIMUM
|
||||
|
||||
/*
|
||||
* The following constant is passed to rtems_task_set_priority when the
|
||||
* caller wants to obtain the current priority.
|
||||
*/
|
||||
|
||||
#define RTEMS_CURRENT_PRIORITY PRIORITY_MINIMUM
|
||||
|
||||
/*
|
||||
* Notepads constants (indices into notepad array)
|
||||
*/
|
||||
|
||||
#define RTEMS_NOTEPAD_FIRST 0 /* lowest numbered notepad */
|
||||
#define RTEMS_NOTEPAD_0 0 /* notepad location 0 */
|
||||
#define RTEMS_NOTEPAD_1 1 /* notepad location 1 */
|
||||
#define RTEMS_NOTEPAD_2 2 /* notepad location 2 */
|
||||
#define RTEMS_NOTEPAD_3 3 /* notepad location 3 */
|
||||
#define RTEMS_NOTEPAD_4 4 /* notepad location 4 */
|
||||
#define RTEMS_NOTEPAD_5 5 /* notepad location 5 */
|
||||
#define RTEMS_NOTEPAD_6 6 /* notepad location 6 */
|
||||
#define RTEMS_NOTEPAD_7 7 /* notepad location 7 */
|
||||
#define RTEMS_NOTEPAD_8 8 /* notepad location 8 */
|
||||
#define RTEMS_NOTEPAD_9 9 /* notepad location 9 */
|
||||
#define RTEMS_NOTEPAD_10 10 /* notepad location 10 */
|
||||
#define RTEMS_NOTEPAD_11 11 /* notepad location 11 */
|
||||
#define RTEMS_NOTEPAD_12 12 /* notepad location 12 */
|
||||
#define RTEMS_NOTEPAD_13 13 /* notepad location 13 */
|
||||
#define RTEMS_NOTEPAD_14 14 /* notepad location 14 */
|
||||
#define RTEMS_NOTEPAD_15 15 /* notepad location 15 */
|
||||
#define RTEMS_NOTEPAD_LAST RTEMS_NOTEPAD_15 /* highest numbered notepad */
|
||||
|
||||
#define RTEMS_NUMBER_NOTEPADS (RTEMS_NOTEPAD_LAST+1)
|
||||
|
||||
/*
|
||||
* External API name for Thread_Control
|
||||
*/
|
||||
|
||||
typedef Thread_Control rtems_tcb;
|
||||
|
||||
/*
|
||||
* The following defines the "return type" of an RTEMS task.
|
||||
*/
|
||||
|
||||
typedef void rtems_task;
|
||||
|
||||
/*
|
||||
* The following defines the argument to an RTEMS task.
|
||||
*/
|
||||
|
||||
typedef unsigned32 rtems_task_argument;
|
||||
|
||||
/*
|
||||
* The following defines the type for the entry point of an RTEMS task.
|
||||
*/
|
||||
|
||||
typedef rtems_task ( *rtems_task_entry )(
|
||||
rtems_task_argument
|
||||
);
|
||||
|
||||
/*
|
||||
* The following records define the Initialization Tasks Table.
|
||||
* Each entry contains the information required by RTEMS to
|
||||
* create and start a user task automatically at executive
|
||||
* initialization time.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
rtems_name name; /* task name */
|
||||
unsigned32 stack_size; /* task stack size */
|
||||
rtems_task_priority initial_priority; /* task priority */
|
||||
rtems_attribute attribute_set; /* task attributes */
|
||||
rtems_task_entry entry_point; /* task entry point */
|
||||
rtems_mode mode_set; /* task initial mode */
|
||||
unsigned32 argument; /* task argument */
|
||||
} rtems_initialization_tasks_table;
|
||||
|
||||
/*
|
||||
* This is the API specific information required by each thread for
|
||||
* the RTEMS API to function correctly.
|
||||
*/
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned32 Notepads[ RTEMS_NUMBER_NOTEPADS ];
|
||||
rtems_event_set pending_events;
|
||||
rtems_event_set event_condition;
|
||||
ASR_Information Signal;
|
||||
} RTEMS_API_Control;
|
||||
|
||||
/*
|
||||
* The following defines the information control block used to
|
||||
@@ -69,6 +165,13 @@ extern "C" {
|
||||
|
||||
EXTERN Objects_Information _RTEMS_tasks_Information;
|
||||
|
||||
/*
|
||||
* These are used to manage the user initialization tasks.
|
||||
*/
|
||||
|
||||
EXTERN rtems_initialization_tasks_table *_RTEMS_tasks_User_initialization_tasks;
|
||||
EXTERN unsigned32 _RTEMS_tasks_Number_of_initialization_tasks;
|
||||
|
||||
/*
|
||||
* _RTEMS_tasks_Manager_initialization
|
||||
*
|
||||
@@ -78,7 +181,9 @@ EXTERN Objects_Information _RTEMS_tasks_Information;
|
||||
*/
|
||||
|
||||
void _RTEMS_tasks_Manager_initialization(
|
||||
unsigned32 maximum_tasks
|
||||
unsigned32 maximum_tasks,
|
||||
unsigned32 number_of_initialization_tasks,
|
||||
rtems_initialization_tasks_table *user_tasks
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -313,32 +418,43 @@ STATIC INLINE void _RTEMS_tasks_Free (
|
||||
);
|
||||
|
||||
/*
|
||||
* _RTEMS_tasks_Cancel_wait
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This routine unblocks the_thread and cancels any timers
|
||||
* which the_thread has active.
|
||||
*/
|
||||
|
||||
STATIC INLINE void _RTEMS_tasks_Cancel_wait(
|
||||
Thread_Control *the_thread
|
||||
);
|
||||
|
||||
/*
|
||||
* _RTEMS_Tasks_Priority_to_Core
|
||||
* _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(
|
||||
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
|
||||
rtems_task_priority priority
|
||||
);
|
||||
|
||||
#include <rtems/tasks.inl>
|
||||
#include <rtems/taskmp.h>
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Initialize_user_tasks
|
||||
*
|
||||
* This routine creates and starts all configured user
|
||||
* initialzation threads.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*/
|
||||
|
||||
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
|
||||
);
|
||||
|
||||
#include <rtems/rtems/tasks.inl>
|
||||
#include <rtems/rtems/taskmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -33,10 +33,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/tod.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/tod.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type details the classes to which a timer
|
||||
@@ -50,10 +49,15 @@ typedef enum {
|
||||
} Timer_Classes;
|
||||
|
||||
/*
|
||||
* The following defines the type of a Timer Service Routine.
|
||||
* The following types define a pointer to a timer service routine.
|
||||
*/
|
||||
|
||||
typedef rtems_timer_service_routine_entry Timer_Service;
|
||||
typedef void rtems_timer_service_routine;
|
||||
|
||||
typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )(
|
||||
rtems_id,
|
||||
void *
|
||||
);
|
||||
|
||||
/*
|
||||
* The following defines the information control block used to manage
|
||||
@@ -155,7 +159,7 @@ rtems_status_code rtems_timer_delete(
|
||||
rtems_status_code rtems_timer_fire_after(
|
||||
Objects_Id id,
|
||||
rtems_interval ticks,
|
||||
Timer_Service routine,
|
||||
rtems_timer_service_routine_entry routine,
|
||||
void *user_data
|
||||
);
|
||||
|
||||
@@ -172,7 +176,7 @@ rtems_status_code rtems_timer_fire_after(
|
||||
rtems_status_code rtems_timer_fire_when(
|
||||
Objects_Id id,
|
||||
rtems_time_of_day *wall_time,
|
||||
Timer_Service routine,
|
||||
rtems_timer_service_routine_entry routine,
|
||||
void *user_data
|
||||
);
|
||||
|
||||
@@ -283,7 +287,7 @@ STATIC INLINE boolean _Timer_Is_null (
|
||||
Timer_Control *the_timer
|
||||
);
|
||||
|
||||
#include <rtems/timer.inl>
|
||||
#include <rtems/rtems/timer.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -20,9 +20,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/priority.h>
|
||||
#include <rtems/modes.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/priority.h>
|
||||
#include <rtems/rtems/modes.h>
|
||||
#include <rtems/core/mpci.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
|
||||
/*
|
||||
* RTEMS basic type definitions
|
||||
@@ -51,18 +53,35 @@ typedef Context_Control_fp rtems_context_fp;
|
||||
typedef CPU_Interrupt_frame rtems_interrupt_frame;
|
||||
|
||||
/*
|
||||
* Define the type for an RTEMS API task priority.
|
||||
* Time related
|
||||
*/
|
||||
|
||||
typedef Priority_Control rtems_task_priority;
|
||||
typedef Watchdog_Interval rtems_interval;
|
||||
typedef TOD_Control rtems_time_of_day;
|
||||
|
||||
#define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY
|
||||
/*
|
||||
* Define the type for an RTEMS API task mode.
|
||||
*/
|
||||
|
||||
typedef Modes_Control rtems_mode;
|
||||
|
||||
/*
|
||||
* MPCI related entries
|
||||
*/
|
||||
|
||||
typedef MP_packet_Classes rtems_mp_packet_classes;
|
||||
typedef MP_packet_Prefix rtems_packet_prefix;
|
||||
|
||||
typedef MPCI_initialization_entry rtems_mpci_initialization_entry;
|
||||
typedef MPCI_get_packet_entry rtems_mpci_get_packet_entry;
|
||||
typedef MPCI_return_packet_entry rtems_mpci_return_packet_entry;
|
||||
typedef MPCI_send_entry rtems_mpci_send_packet_entry;
|
||||
typedef MPCI_receive_entry rtems_mpci_receive_packet_entry;
|
||||
|
||||
typedef MPCI_Entry rtems_mpci_entry;
|
||||
|
||||
typedef MPCI_Control rtems_mpci_table;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -24,31 +24,83 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/init.h>
|
||||
#include <rtems/tasks.h>
|
||||
#include <rtems/intr.h>
|
||||
#include <rtems/clock.h>
|
||||
#include <rtems/rtems/tasks.h>
|
||||
#include <rtems/rtems/intr.h>
|
||||
#include <rtems/rtems/clock.h>
|
||||
#include <rtems/extension.h>
|
||||
#include <rtems/timer.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/signal.h>
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/region.h>
|
||||
#include <rtems/dpmem.h>
|
||||
#include <rtems/rtems/timer.h>
|
||||
#include <rtems/rtems/sem.h>
|
||||
#include <rtems/rtems/message.h>
|
||||
#include <rtems/rtems/event.h>
|
||||
#include <rtems/rtems/signal.h>
|
||||
#include <rtems/rtems/event.h>
|
||||
#include <rtems/rtems/part.h>
|
||||
#include <rtems/rtems/region.h>
|
||||
#include <rtems/rtems/dpmem.h>
|
||||
#include <rtems/io.h>
|
||||
#include <rtems/fatal.h>
|
||||
#include <rtems/ratemon.h>
|
||||
#include <rtems/mp.h>
|
||||
#include <rtems/rtems/ratemon.h>
|
||||
#include <rtems/rtems/mp.h>
|
||||
|
||||
#include <rtems/support.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/sysstate.h>
|
||||
|
||||
#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
|
||||
|
||||
/*
|
||||
* The following define the constants which may be used in name searches.
|
||||
*/
|
||||
|
||||
#define RTEMS_SEARCH_ALL_NODES OBJECTS_SEARCH_ALL_NODES
|
||||
#define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
|
||||
#define RTEMS_SEARCH_LOCAL_NODE OBJECTS_SEARCH_LOCAL_NODE
|
||||
#define RTEMS_WHO_AM_I OBJECTS_WHO_AM_I
|
||||
|
||||
/*
|
||||
* Parameters and return id's for _Objects_Get_next
|
||||
*/
|
||||
|
||||
#define RTEMS_OBJECT_ID_INITIAL_INDEX OBJECTS_ID_INITIAL_INDEX
|
||||
#define RTEMS_OBJECT_ID_FINAL_INDEX OBJECTS_ID_FINAL_INDEX
|
||||
|
||||
#define RTEMS_OBJECT_ID_INITIAL(node) OBJECTS_ID_INITIAL(node)
|
||||
#define RTEMS_OBJECT_ID_FINAL OBJECTS_ID_FINAL
|
||||
|
||||
/*
|
||||
* The following constant defines the minimum stack size which every
|
||||
* thread must exceed.
|
||||
*/
|
||||
|
||||
#define RTEMS_MINIMUM_STACK_SIZE STACK_MINIMUM_SIZE
|
||||
|
||||
/*
|
||||
* Constant for indefinite wait. (actually an illegal interval)
|
||||
*/
|
||||
|
||||
#define RTEMS_NO_TIMEOUT WATCHDOG_NO_TIMEOUT
|
||||
|
||||
/*
|
||||
* An MPCI must support packets of at least this size.
|
||||
*/
|
||||
|
||||
#define RTEMS_MINIMUM_PACKET_SIZE MP_PACKET_MINIMUM_PACKET_SIZE
|
||||
|
||||
/*
|
||||
* The following constant defines the number of unsigned32's
|
||||
* in a packet which must be converted to native format in a
|
||||
* heterogeneous system. In packets longer than
|
||||
* MP_PACKET_MINIMUN_HETERO_CONVERSION unsigned32's, some of the "extra" data
|
||||
* may a user message buffer which is not automatically endian swapped.
|
||||
*/
|
||||
|
||||
#define RTEMS_MINIMUN_HETERO_CONVERSION MP_PACKET_MINIMUN_HETERO_CONVERSION
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/modes.h>
|
||||
#include <rtems/rtems/modes.h>
|
||||
|
||||
/*
|
||||
*
|
||||
@@ -54,6 +54,7 @@ typedef rtems_asr ( *rtems_asr_entry )(
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
boolean is_enabled; /* are ASRs enabled currently? */
|
||||
rtems_asr_entry handler; /* address of RTEMS_ASR */
|
||||
Modes_Control mode_set; /* RTEMS_ASR mode */
|
||||
rtems_signal_set signals_posted; /* signal set */
|
||||
@@ -167,7 +168,7 @@ STATIC INLINE void _ASR_Post_signals(
|
||||
rtems_signal_set *signal_set
|
||||
);
|
||||
|
||||
#include <rtems/asr.inl>
|
||||
#include <rtems/rtems/asr.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -44,6 +44,9 @@ typedef unsigned32 rtems_attribute;
|
||||
#define RTEMS_NO_INHERIT_PRIORITY 0x00000000
|
||||
#define RTEMS_INHERIT_PRIORITY 0x00000020
|
||||
|
||||
#define RTEMS_NO_PRIORITY_CEILING 0x00000000
|
||||
#define RTEMS_PRIORITY_CEILING 0x00000040
|
||||
|
||||
#if ( CPU_HARDWARE_FP == TRUE )
|
||||
#define ATTRIBUTES_NOT_SUPPORTED 0
|
||||
#else
|
||||
@@ -177,7 +180,21 @@ STATIC INLINE boolean _Attributes_Is_inherit_priority(
|
||||
rtems_attribute attribute_set
|
||||
);
|
||||
|
||||
#include <rtems/attr.inl>
|
||||
/*
|
||||
* _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
|
||||
);
|
||||
|
||||
|
||||
#include <rtems/rtems/attr.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/tod.h>
|
||||
#include <rtems/core/tod.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* List of things which can be returned by the rtems_clock_get directive.
|
||||
|
||||
@@ -32,8 +32,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/core/object.h>
|
||||
|
||||
/*
|
||||
* The following structure defines the port control block. Each port
|
||||
@@ -201,7 +200,7 @@ STATIC INLINE boolean _Dual_ported_memory_Is_null(
|
||||
Dual_ported_memory_Control *the_port
|
||||
);
|
||||
|
||||
#include <rtems/dpmem.inl>
|
||||
#include <rtems/rtems/dpmem.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -28,11 +28,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/eventset.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
#include <rtems/rtems/eventset.h>
|
||||
|
||||
/*
|
||||
* This constant is passed as the event_in to the
|
||||
@@ -106,7 +107,8 @@ rtems_status_code rtems_event_receive (
|
||||
void _Event_Seize (
|
||||
rtems_event_set event_in,
|
||||
rtems_option option_set,
|
||||
rtems_interval ticks
|
||||
rtems_interval ticks,
|
||||
rtems_event_set *event_out
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -147,8 +149,8 @@ void _Event_Timeout (
|
||||
|
||||
EXTERN boolean _Event_Sync; /* event manager sync flag */
|
||||
|
||||
#include <rtems/event.inl>
|
||||
#include <rtems/eventmp.h>
|
||||
#include <rtems/rtems/eventmp.h>
|
||||
#include <rtems/rtems/event.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/event.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -132,7 +132,7 @@ STATIC INLINE rtems_event_set _Event_sets_Clear(
|
||||
rtems_event_set the_mask
|
||||
);
|
||||
|
||||
#include <rtems/eventset.inl>
|
||||
#include <rtems/rtems/eventset.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*
|
||||
* Interrupt level type
|
||||
@@ -29,6 +29,27 @@ extern "C" {
|
||||
|
||||
typedef ISR_Level rtems_interrupt_level;
|
||||
|
||||
/*
|
||||
* The following type defines the control block used to manage
|
||||
* the vectors.
|
||||
*/
|
||||
|
||||
typedef ISR_Vector_number rtems_vector_number;
|
||||
|
||||
/*
|
||||
* Return type for ISR Handler
|
||||
*/
|
||||
|
||||
typedef void rtems_isr;
|
||||
|
||||
/*
|
||||
* Pointer to an ISR Handler
|
||||
*/
|
||||
|
||||
typedef rtems_isr ( *rtems_isr_entry )(
|
||||
rtems_vector_number
|
||||
);
|
||||
|
||||
/*
|
||||
* _Interrupt_Manager_initialization
|
||||
*
|
||||
|
||||
@@ -34,10 +34,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/chain.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/core/chain.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
|
||||
/*
|
||||
* The following defines the data types needed to manipulate
|
||||
@@ -468,8 +469,8 @@ STATIC INLINE Message_queue_Control *_Message_queue_Get (
|
||||
Objects_Locations *location
|
||||
);
|
||||
|
||||
#include <rtems/message.inl>
|
||||
#include <rtems/msgmp.h>
|
||||
#include <rtems/rtems/message.inl>
|
||||
#include <rtems/rtems/msgmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*
|
||||
* The following type defines the control block used to manage
|
||||
@@ -173,7 +173,7 @@ STATIC INLINE void _Modes_Change (
|
||||
Modes_Control *changed
|
||||
);
|
||||
|
||||
#include <rtems/modes.inl>
|
||||
#include <rtems/rtems/modes.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -45,20 +45,6 @@ void _Multiprocessing_Manager_initialization ( void );
|
||||
|
||||
void rtems_multiprocessing_announce ( void );
|
||||
|
||||
/*
|
||||
*
|
||||
* _Multiprocessing_Receive_server
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This routine is a server thread which processes remote requests
|
||||
* from other nodes.
|
||||
*/
|
||||
|
||||
Thread _Multiprocessing_Receive_server (
|
||||
Thread_Argument ignored
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/message.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
@@ -97,7 +97,7 @@ rtems_status_code _Message_queue_MP_Send_request_packet (
|
||||
void *buffer,
|
||||
unsigned32 *size_p,
|
||||
rtems_option option_set,
|
||||
rtems_interval timeout
|
||||
Watchdog_Interval timeout
|
||||
);
|
||||
|
||||
/*
|
||||
|
||||
@@ -69,7 +69,7 @@ STATIC INLINE boolean _Options_Is_any (
|
||||
rtems_option option_set
|
||||
);
|
||||
|
||||
#include <rtems/options.inl>
|
||||
#include <rtems/rtems/options.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/address.h>
|
||||
#include <rtems/attr.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/core/address.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* The following defines the control block used to manage each partition.
|
||||
@@ -280,8 +280,8 @@ STATIC INLINE boolean _Partition_Is_null (
|
||||
Partition_Control *the_partition
|
||||
);
|
||||
|
||||
#include <rtems/part.inl>
|
||||
#include <rtems/partmp.h>
|
||||
#include <rtems/rtems/part.inl>
|
||||
#include <rtems/rtems/partmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,11 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
#include <rtems/rtems/part.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -29,10 +29,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the states in which a
|
||||
@@ -50,7 +49,7 @@ typedef enum {
|
||||
* directive to obtain status information.
|
||||
*/
|
||||
|
||||
#define RTEMS_PERIOD_STATUS RTEMS_NO_TIMEOUT
|
||||
#define RTEMS_PERIOD_STATUS WATCHDOG_NO_TIMEOUT
|
||||
|
||||
/*
|
||||
* The following structure defines the control block used to manage
|
||||
@@ -276,7 +275,7 @@ STATIC INLINE boolean _Rate_monotonic_Is_null (
|
||||
Rate_monotonic_Control *the_period
|
||||
);
|
||||
|
||||
#include <rtems/ratemon.inl>
|
||||
#include <rtems/rtems/ratemon.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -30,11 +30,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/heap.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
#include <rtems/core/heap.h>
|
||||
#include <rtems/debug.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* The following records define the control block used to manage
|
||||
@@ -278,8 +279,8 @@ STATIC INLINE boolean _Region_Is_null (
|
||||
Region_Control *the_region
|
||||
);
|
||||
|
||||
#include <rtems/region.inl>
|
||||
#include <rtems/regionmp.h>
|
||||
#include <rtems/rtems/region.inl>
|
||||
#include <rtems/rtems/regionmp.h>
|
||||
|
||||
/*
|
||||
* _Region_Debug_Walk
|
||||
|
||||
@@ -21,11 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/region.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/rtems/region.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
34
c/src/exec/rtems/include/rtems/rtems/rtemsapi.h
Normal file
34
c/src/exec/rtems/include/rtems/rtems/rtemsapi.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* RTEMS API Support
|
||||
*
|
||||
* NOTE:
|
||||
*
|
||||
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* All rights assigned to U.S. Government, 1994.
|
||||
*
|
||||
* This material may be reproduced by or for the U.S. Government pursuant
|
||||
* to the copyright license under the clause at DFARS 252.227-7013. This
|
||||
* notice must appear in all copies of this file and its derivatives.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __RTEMS_API_h
|
||||
#define __RTEMS_API_h
|
||||
|
||||
#include <rtems/config.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_API_Initialize
|
||||
*
|
||||
* XXX
|
||||
*/
|
||||
|
||||
void _RTEMS_API_Initialize(
|
||||
rtems_configuration_table *configuration_table
|
||||
);
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -31,10 +31,14 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/attr.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/rtems/tasks.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/core/coremutex.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/coresem.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
|
||||
/*
|
||||
* The following defines the control block used to manage each semaphore.
|
||||
@@ -42,12 +46,11 @@ extern "C" {
|
||||
|
||||
typedef struct {
|
||||
Objects_Control Object;
|
||||
Thread_queue_Control Wait_queue;
|
||||
rtems_attribute attribute_set;
|
||||
unsigned32 count;
|
||||
unsigned32 nest_count;
|
||||
Thread_Control *holder;
|
||||
Objects_Id holder_id;
|
||||
union {
|
||||
CORE_mutex_Control mutex;
|
||||
CORE_semaphore_Control semaphore;
|
||||
} Core_control;
|
||||
} Semaphore_Control;
|
||||
|
||||
/*
|
||||
@@ -86,7 +89,7 @@ rtems_status_code rtems_semaphore_create(
|
||||
unsigned32 count,
|
||||
rtems_attribute attribute_set,
|
||||
rtems_task_priority priority_ceiling,
|
||||
Objects_Id *id
|
||||
rtems_id *id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -106,7 +109,7 @@ rtems_status_code rtems_semaphore_create(
|
||||
rtems_status_code rtems_semaphore_ident(
|
||||
rtems_name name,
|
||||
unsigned32 node,
|
||||
Objects_Id *id
|
||||
rtems_id *id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -119,7 +122,7 @@ rtems_status_code rtems_semaphore_ident(
|
||||
*/
|
||||
|
||||
rtems_status_code rtems_semaphore_delete(
|
||||
Objects_Id id
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -137,7 +140,7 @@ rtems_status_code rtems_semaphore_delete(
|
||||
*/
|
||||
|
||||
rtems_status_code rtems_semaphore_obtain(
|
||||
Objects_Id id,
|
||||
rtems_id id,
|
||||
unsigned32 option_set,
|
||||
rtems_interval timeout
|
||||
);
|
||||
@@ -155,7 +158,7 @@ rtems_status_code rtems_semaphore_obtain(
|
||||
*/
|
||||
|
||||
rtems_status_code rtems_semaphore_release(
|
||||
Objects_Id id
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -213,7 +216,7 @@ STATIC INLINE void _Semaphore_Free (
|
||||
*/
|
||||
|
||||
STATIC INLINE Semaphore_Control *_Semaphore_Get (
|
||||
Objects_Id id,
|
||||
rtems_id id,
|
||||
Objects_Locations *location
|
||||
);
|
||||
|
||||
@@ -229,8 +232,66 @@ STATIC INLINE boolean _Semaphore_Is_null (
|
||||
Semaphore_Control *the_semaphore
|
||||
);
|
||||
|
||||
#include <rtems/sem.inl>
|
||||
#include <rtems/semmp.h>
|
||||
/*
|
||||
* _Semaphore_Translate_core_mutex_return_code
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns a RTEMS status code based on the mutex
|
||||
* status code specified.
|
||||
*/
|
||||
|
||||
rtems_status_code _Semaphore_Translate_core_mutex_return_code (
|
||||
unsigned32 the_mutex_status
|
||||
);
|
||||
|
||||
/*
|
||||
* _Semaphore_Translate_core_semaphore_return_code
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns a RTEMS status code based on the semaphore
|
||||
* status code specified.
|
||||
*/
|
||||
|
||||
rtems_status_code _Semaphore_Translate_core_semaphore_return_code (
|
||||
unsigned32 the_mutex_status
|
||||
);
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Core_mutex_mp_support
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function processes the global actions necessary for remote
|
||||
* accesses to a global semaphore based on a core mutex. This function
|
||||
* is called by the core.
|
||||
*/
|
||||
|
||||
void _Semaphore_Core_mutex_mp_support (
|
||||
Thread_Control *the_thread,
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Semaphore_Core_mp_support
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function processes the global actions necessary for remote
|
||||
* accesses to a global semaphore based on a core semaphore. This function
|
||||
* is called by the core.
|
||||
*/
|
||||
|
||||
void _Semaphore_Core_semaphore_mp_support (
|
||||
Thread_Control *the_thread,
|
||||
rtems_id id
|
||||
);
|
||||
|
||||
#include <rtems/rtems/sem.inl>
|
||||
#include <rtems/rtems/semmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/rtems/sem.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -27,11 +27,21 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/asr.h>
|
||||
#include <rtems/modes.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/status.h>
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/rtems/asr.h>
|
||||
#include <rtems/rtems/modes.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* _Signal_Manager_initialization
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This routine performs the initialization necessary for this manager.
|
||||
*/
|
||||
|
||||
void _Signal_Manager_initialization( void );
|
||||
|
||||
/*
|
||||
* rtems_signal_catch
|
||||
@@ -63,7 +73,7 @@ rtems_status_code rtems_signal_send(
|
||||
rtems_signal_set signal_set
|
||||
);
|
||||
|
||||
#include <rtems/signalmp.h>
|
||||
#include <rtems/rtems/signalmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/asr.h>
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/asr.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -52,13 +52,22 @@ typedef enum {
|
||||
RTEMS_NOT_OWNER_OF_RESOURCE = 23, /* not owner of resource */
|
||||
RTEMS_NOT_IMPLEMENTED = 24, /* directive not implemented */
|
||||
RTEMS_INTERNAL_ERROR = 25, /* RTEMS inconsistency detected */
|
||||
RTEMS_PROXY_BLOCKING = 26, /* internal multiprocessing only */
|
||||
RTEMS_NO_MEMORY = 27 /* could not get enough memory */
|
||||
RTEMS_NO_MEMORY = 26 /* could not get enough memory */
|
||||
} rtems_status_code;
|
||||
|
||||
#define RTEMS_STATUS_CODES_FIRST RTEMS_SUCCESSFUL
|
||||
#define RTEMS_STATUS_CODES_LAST RTEMS_NO_MEMORY
|
||||
|
||||
extern rtems_status_code _Status_Object_name_errors_to_status[];
|
||||
|
||||
#ifdef INIT
|
||||
rtems_status_code _Status_Object_name_errors_to_status[] = {
|
||||
RTEMS_SUCCESSFUL, /* OBJECTS_SUCCESSFUL */
|
||||
RTEMS_INVALID_NAME, /* OBJECTS_INVALID_NAME */
|
||||
RTEMS_INVALID_NODE /* OBJECTS_INVALID_NODE */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* rtems_is_status_successful
|
||||
*
|
||||
@@ -86,20 +95,7 @@ STATIC INLINE boolean rtems_are_statuses_equal (
|
||||
rtems_status_code code2
|
||||
);
|
||||
|
||||
/*
|
||||
* _Status_Is_proxy_blocking
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns TRUE if the status code is equal to the
|
||||
* status which indicates that a proxy is blocking, and FALSE otherwise.
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _Status_Is_proxy_blocking (
|
||||
rtems_status_code code
|
||||
);
|
||||
|
||||
#include <rtems/status.inl>
|
||||
#include <rtems/rtems/status.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
|
||||
/*
|
||||
* rtems_is_name_valid
|
||||
@@ -70,7 +70,52 @@ STATIC INLINE void rtems_name_to_characters(
|
||||
char *c4
|
||||
);
|
||||
|
||||
#include <rtems/support.inl>
|
||||
/*
|
||||
* rtems_get_class
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns the class portion of the ID.
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_get_class( _id ) \
|
||||
_Objects_Get_class( _id )
|
||||
|
||||
/*
|
||||
* rtems_get_node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns the node portion of the ID.
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_get_node( _id ) \
|
||||
_Objects_Get_node( _id )
|
||||
|
||||
/*
|
||||
* rtems_get_index
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This function returns the index portion of the ID.
|
||||
*
|
||||
*/
|
||||
|
||||
#define rtems_get_index( _id ) \
|
||||
_Objects_Get_index( _id )
|
||||
|
||||
/*
|
||||
* Time related
|
||||
*/
|
||||
|
||||
#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) \
|
||||
TOD_MILLISECONDS_TO_MICROSECONDS(_ms)
|
||||
#define RTEMS_MILLISECONDS_TO_TICKS(_ms) \
|
||||
TOD_MILLISECONDS_TO_TICKS(_ms)
|
||||
|
||||
#include <rtems/rtems/support.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/priority.h>
|
||||
#include <rtems/tasks.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/priority.h>
|
||||
#include <rtems/rtems/tasks.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type defines the list of
|
||||
|
||||
@@ -38,16 +38,13 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/region.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/states.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/types.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/states.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/eventset.h>
|
||||
#include <rtems/rtems/asr.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
|
||||
/*
|
||||
* Constant to be used as the ID of current task
|
||||
@@ -60,7 +57,106 @@ extern "C" {
|
||||
* interval when a task wishes to yield the CPU.
|
||||
*/
|
||||
|
||||
#define RTEMS_YIELD_PROCESSOR RTEMS_NO_TIMEOUT
|
||||
#define RTEMS_YIELD_PROCESSOR WATCHDOG_NO_TIMEOUT
|
||||
|
||||
/*
|
||||
* Define the type for an RTEMS API task priority.
|
||||
*/
|
||||
|
||||
typedef Priority_Control rtems_task_priority;
|
||||
|
||||
#define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY
|
||||
|
||||
#define RTEMS_MINIMUM_PRIORITY (PRIORITY_MINIMUM + 1)
|
||||
#define RTEMS_MAXIMUM_PRIORITY PRIORITY_MAXIMUM
|
||||
|
||||
/*
|
||||
* The following constant is passed to rtems_task_set_priority when the
|
||||
* caller wants to obtain the current priority.
|
||||
*/
|
||||
|
||||
#define RTEMS_CURRENT_PRIORITY PRIORITY_MINIMUM
|
||||
|
||||
/*
|
||||
* Notepads constants (indices into notepad array)
|
||||
*/
|
||||
|
||||
#define RTEMS_NOTEPAD_FIRST 0 /* lowest numbered notepad */
|
||||
#define RTEMS_NOTEPAD_0 0 /* notepad location 0 */
|
||||
#define RTEMS_NOTEPAD_1 1 /* notepad location 1 */
|
||||
#define RTEMS_NOTEPAD_2 2 /* notepad location 2 */
|
||||
#define RTEMS_NOTEPAD_3 3 /* notepad location 3 */
|
||||
#define RTEMS_NOTEPAD_4 4 /* notepad location 4 */
|
||||
#define RTEMS_NOTEPAD_5 5 /* notepad location 5 */
|
||||
#define RTEMS_NOTEPAD_6 6 /* notepad location 6 */
|
||||
#define RTEMS_NOTEPAD_7 7 /* notepad location 7 */
|
||||
#define RTEMS_NOTEPAD_8 8 /* notepad location 8 */
|
||||
#define RTEMS_NOTEPAD_9 9 /* notepad location 9 */
|
||||
#define RTEMS_NOTEPAD_10 10 /* notepad location 10 */
|
||||
#define RTEMS_NOTEPAD_11 11 /* notepad location 11 */
|
||||
#define RTEMS_NOTEPAD_12 12 /* notepad location 12 */
|
||||
#define RTEMS_NOTEPAD_13 13 /* notepad location 13 */
|
||||
#define RTEMS_NOTEPAD_14 14 /* notepad location 14 */
|
||||
#define RTEMS_NOTEPAD_15 15 /* notepad location 15 */
|
||||
#define RTEMS_NOTEPAD_LAST RTEMS_NOTEPAD_15 /* highest numbered notepad */
|
||||
|
||||
#define RTEMS_NUMBER_NOTEPADS (RTEMS_NOTEPAD_LAST+1)
|
||||
|
||||
/*
|
||||
* External API name for Thread_Control
|
||||
*/
|
||||
|
||||
typedef Thread_Control rtems_tcb;
|
||||
|
||||
/*
|
||||
* The following defines the "return type" of an RTEMS task.
|
||||
*/
|
||||
|
||||
typedef void rtems_task;
|
||||
|
||||
/*
|
||||
* The following defines the argument to an RTEMS task.
|
||||
*/
|
||||
|
||||
typedef unsigned32 rtems_task_argument;
|
||||
|
||||
/*
|
||||
* The following defines the type for the entry point of an RTEMS task.
|
||||
*/
|
||||
|
||||
typedef rtems_task ( *rtems_task_entry )(
|
||||
rtems_task_argument
|
||||
);
|
||||
|
||||
/*
|
||||
* The following records define the Initialization Tasks Table.
|
||||
* Each entry contains the information required by RTEMS to
|
||||
* create and start a user task automatically at executive
|
||||
* initialization time.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
rtems_name name; /* task name */
|
||||
unsigned32 stack_size; /* task stack size */
|
||||
rtems_task_priority initial_priority; /* task priority */
|
||||
rtems_attribute attribute_set; /* task attributes */
|
||||
rtems_task_entry entry_point; /* task entry point */
|
||||
rtems_mode mode_set; /* task initial mode */
|
||||
unsigned32 argument; /* task argument */
|
||||
} rtems_initialization_tasks_table;
|
||||
|
||||
/*
|
||||
* This is the API specific information required by each thread for
|
||||
* the RTEMS API to function correctly.
|
||||
*/
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned32 Notepads[ RTEMS_NUMBER_NOTEPADS ];
|
||||
rtems_event_set pending_events;
|
||||
rtems_event_set event_condition;
|
||||
ASR_Information Signal;
|
||||
} RTEMS_API_Control;
|
||||
|
||||
/*
|
||||
* The following defines the information control block used to
|
||||
@@ -69,6 +165,13 @@ extern "C" {
|
||||
|
||||
EXTERN Objects_Information _RTEMS_tasks_Information;
|
||||
|
||||
/*
|
||||
* These are used to manage the user initialization tasks.
|
||||
*/
|
||||
|
||||
EXTERN rtems_initialization_tasks_table *_RTEMS_tasks_User_initialization_tasks;
|
||||
EXTERN unsigned32 _RTEMS_tasks_Number_of_initialization_tasks;
|
||||
|
||||
/*
|
||||
* _RTEMS_tasks_Manager_initialization
|
||||
*
|
||||
@@ -78,7 +181,9 @@ EXTERN Objects_Information _RTEMS_tasks_Information;
|
||||
*/
|
||||
|
||||
void _RTEMS_tasks_Manager_initialization(
|
||||
unsigned32 maximum_tasks
|
||||
unsigned32 maximum_tasks,
|
||||
unsigned32 number_of_initialization_tasks,
|
||||
rtems_initialization_tasks_table *user_tasks
|
||||
);
|
||||
|
||||
/*
|
||||
@@ -313,32 +418,43 @@ STATIC INLINE void _RTEMS_tasks_Free (
|
||||
);
|
||||
|
||||
/*
|
||||
* _RTEMS_tasks_Cancel_wait
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
* This routine unblocks the_thread and cancels any timers
|
||||
* which the_thread has active.
|
||||
*/
|
||||
|
||||
STATIC INLINE void _RTEMS_tasks_Cancel_wait(
|
||||
Thread_Control *the_thread
|
||||
);
|
||||
|
||||
/*
|
||||
* _RTEMS_Tasks_Priority_to_Core
|
||||
* _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(
|
||||
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
|
||||
rtems_task_priority priority
|
||||
);
|
||||
|
||||
#include <rtems/tasks.inl>
|
||||
#include <rtems/taskmp.h>
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Initialize_user_tasks
|
||||
*
|
||||
* This routine creates and starts all configured user
|
||||
* initialzation threads.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*/
|
||||
|
||||
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
|
||||
);
|
||||
|
||||
#include <rtems/rtems/tasks.inl>
|
||||
#include <rtems/rtems/taskmp.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -33,10 +33,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/tod.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/tod.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
/*
|
||||
* The following enumerated type details the classes to which a timer
|
||||
@@ -50,10 +49,15 @@ typedef enum {
|
||||
} Timer_Classes;
|
||||
|
||||
/*
|
||||
* The following defines the type of a Timer Service Routine.
|
||||
* The following types define a pointer to a timer service routine.
|
||||
*/
|
||||
|
||||
typedef rtems_timer_service_routine_entry Timer_Service;
|
||||
typedef void rtems_timer_service_routine;
|
||||
|
||||
typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )(
|
||||
rtems_id,
|
||||
void *
|
||||
);
|
||||
|
||||
/*
|
||||
* The following defines the information control block used to manage
|
||||
@@ -155,7 +159,7 @@ rtems_status_code rtems_timer_delete(
|
||||
rtems_status_code rtems_timer_fire_after(
|
||||
Objects_Id id,
|
||||
rtems_interval ticks,
|
||||
Timer_Service routine,
|
||||
rtems_timer_service_routine_entry routine,
|
||||
void *user_data
|
||||
);
|
||||
|
||||
@@ -172,7 +176,7 @@ rtems_status_code rtems_timer_fire_after(
|
||||
rtems_status_code rtems_timer_fire_when(
|
||||
Objects_Id id,
|
||||
rtems_time_of_day *wall_time,
|
||||
Timer_Service routine,
|
||||
rtems_timer_service_routine_entry routine,
|
||||
void *user_data
|
||||
);
|
||||
|
||||
@@ -283,7 +287,7 @@ STATIC INLINE boolean _Timer_Is_null (
|
||||
Timer_Control *the_timer
|
||||
);
|
||||
|
||||
#include <rtems/timer.inl>
|
||||
#include <rtems/rtems/timer.inl>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -20,9 +20,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/priority.h>
|
||||
#include <rtems/modes.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/priority.h>
|
||||
#include <rtems/rtems/modes.h>
|
||||
#include <rtems/core/mpci.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
|
||||
/*
|
||||
* RTEMS basic type definitions
|
||||
@@ -51,18 +53,35 @@ typedef Context_Control_fp rtems_context_fp;
|
||||
typedef CPU_Interrupt_frame rtems_interrupt_frame;
|
||||
|
||||
/*
|
||||
* Define the type for an RTEMS API task priority.
|
||||
* Time related
|
||||
*/
|
||||
|
||||
typedef Priority_Control rtems_task_priority;
|
||||
typedef Watchdog_Interval rtems_interval;
|
||||
typedef TOD_Control rtems_time_of_day;
|
||||
|
||||
#define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY
|
||||
/*
|
||||
* Define the type for an RTEMS API task mode.
|
||||
*/
|
||||
|
||||
typedef Modes_Control rtems_mode;
|
||||
|
||||
/*
|
||||
* MPCI related entries
|
||||
*/
|
||||
|
||||
typedef MP_packet_Classes rtems_mp_packet_classes;
|
||||
typedef MP_packet_Prefix rtems_packet_prefix;
|
||||
|
||||
typedef MPCI_initialization_entry rtems_mpci_initialization_entry;
|
||||
typedef MPCI_get_packet_entry rtems_mpci_get_packet_entry;
|
||||
typedef MPCI_return_packet_entry rtems_mpci_return_packet_entry;
|
||||
typedef MPCI_send_entry rtems_mpci_send_packet_entry;
|
||||
typedef MPCI_receive_entry rtems_mpci_receive_packet_entry;
|
||||
|
||||
typedef MPCI_Entry rtems_mpci_entry;
|
||||
|
||||
typedef MPCI_Control rtems_mpci_table;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef __INLINE_ASR_inl
|
||||
#define __INLINE_ASR_inl
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
@@ -29,6 +29,7 @@ STATIC INLINE void _ASR_Initialize (
|
||||
ASR_Information *information
|
||||
)
|
||||
{
|
||||
information->is_enabled = TRUE;
|
||||
information->handler = NULL;
|
||||
information->mode_set = RTEMS_DEFAULT_MODES;
|
||||
information->signals_posted = 0;
|
||||
|
||||
@@ -108,5 +108,18 @@ STATIC INLINE boolean _Attributes_Is_inherit_priority(
|
||||
return ( attribute_set & RTEMS_INHERIT_PRIORITY );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_priority_ceiling
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _Attributes_Is_priority_ceiling(
|
||||
rtems_attribute attribute_set
|
||||
)
|
||||
{
|
||||
return ( attribute_set & RTEMS_PRIORITY_CEILING );
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -24,6 +24,12 @@
|
||||
STATIC INLINE void _Event_Manager_initialization( void )
|
||||
{
|
||||
_Event_Sync = FALSE;
|
||||
|
||||
/*
|
||||
* Register the MP Process Packet routine.
|
||||
*/
|
||||
|
||||
_MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef __MESSAGE_QUEUE_inl
|
||||
#define __MESSAGE_QUEUE_inl
|
||||
|
||||
#include <rtems/wkspace.h>
|
||||
#include <rtems/core/wkspace.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
|
||||
@@ -53,7 +53,7 @@ STATIC INLINE boolean _Modes_Is_asr_disabled (
|
||||
Modes_Control mode_set
|
||||
)
|
||||
{
|
||||
return ( mode_set & RTEMS_ASR_MASK );
|
||||
return (mode_set & RTEMS_ASR_MASK) == RTEMS_NO_ASR;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
@@ -66,7 +66,7 @@ STATIC INLINE boolean _Modes_Is_preempt (
|
||||
Modes_Control mode_set
|
||||
)
|
||||
{
|
||||
return ( ( mode_set & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT );
|
||||
return (mode_set & RTEMS_PREEMPT_MASK) == RTEMS_PREEMPT;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
@@ -79,8 +79,7 @@ STATIC INLINE boolean _Modes_Is_timeslice (
|
||||
Modes_Control mode_set
|
||||
)
|
||||
{
|
||||
return ((mode_set & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) ==
|
||||
(RTEMS_TIMESLICE|RTEMS_PREEMPT) );
|
||||
return (mode_set & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef __INLINE_ASR_inl
|
||||
#define __INLINE_ASR_inl
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
@@ -29,6 +29,7 @@ STATIC INLINE void _ASR_Initialize (
|
||||
ASR_Information *information
|
||||
)
|
||||
{
|
||||
information->is_enabled = TRUE;
|
||||
information->handler = NULL;
|
||||
information->mode_set = RTEMS_DEFAULT_MODES;
|
||||
information->signals_posted = 0;
|
||||
|
||||
@@ -108,5 +108,18 @@ STATIC INLINE boolean _Attributes_Is_inherit_priority(
|
||||
return ( attribute_set & RTEMS_INHERIT_PRIORITY );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_priority_ceiling
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _Attributes_Is_priority_ceiling(
|
||||
rtems_attribute attribute_set
|
||||
)
|
||||
{
|
||||
return ( attribute_set & RTEMS_PRIORITY_CEILING );
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -24,6 +24,12 @@
|
||||
STATIC INLINE void _Event_Manager_initialization( void )
|
||||
{
|
||||
_Event_Sync = FALSE;
|
||||
|
||||
/*
|
||||
* Register the MP Process Packet routine.
|
||||
*/
|
||||
|
||||
_MPCI_Register_packet_processor( MP_PACKET_EVENT, _Event_MP_Process_packet );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef __MESSAGE_QUEUE_inl
|
||||
#define __MESSAGE_QUEUE_inl
|
||||
|
||||
#include <rtems/wkspace.h>
|
||||
#include <rtems/core/wkspace.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
|
||||
@@ -53,7 +53,7 @@ STATIC INLINE boolean _Modes_Is_asr_disabled (
|
||||
Modes_Control mode_set
|
||||
)
|
||||
{
|
||||
return ( mode_set & RTEMS_ASR_MASK );
|
||||
return (mode_set & RTEMS_ASR_MASK) == RTEMS_NO_ASR;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
@@ -66,7 +66,7 @@ STATIC INLINE boolean _Modes_Is_preempt (
|
||||
Modes_Control mode_set
|
||||
)
|
||||
{
|
||||
return ( ( mode_set & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT );
|
||||
return (mode_set & RTEMS_PREEMPT_MASK) == RTEMS_PREEMPT;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
@@ -79,8 +79,7 @@ STATIC INLINE boolean _Modes_Is_timeslice (
|
||||
Modes_Control mode_set
|
||||
)
|
||||
{
|
||||
return ((mode_set & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) ==
|
||||
(RTEMS_TIMESLICE|RTEMS_PREEMPT) );
|
||||
return (mode_set & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
|
||||
@@ -44,17 +44,5 @@ STATIC INLINE boolean rtems_are_statuses_equal(
|
||||
return (code1 == code2);
|
||||
}
|
||||
|
||||
/*
|
||||
* _Status_Is_proxy_blocking
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _Status_Is_proxy_blocking (
|
||||
rtems_status_code code
|
||||
)
|
||||
{
|
||||
return (code == RTEMS_PROXY_BLOCKING);
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -17,11 +17,6 @@
|
||||
#ifndef __RTEMS_TASKS_inl
|
||||
#define __RTEMS_TASKS_inl
|
||||
|
||||
#include <rtems/msgmp.h>
|
||||
#include <rtems/partmp.h>
|
||||
#include <rtems/regionmp.h>
|
||||
#include <rtems/semmp.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Allocate
|
||||
@@ -51,61 +46,29 @@ STATIC INLINE void _RTEMS_tasks_Free (
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Cancel_wait
|
||||
*
|
||||
* _RTEMS_tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
STATIC INLINE void _RTEMS_tasks_Cancel_wait(
|
||||
Thread_Control *the_thread
|
||||
)
|
||||
{
|
||||
States_Control state;
|
||||
States_Control remote_state;
|
||||
|
||||
state = the_thread->current_state;
|
||||
|
||||
/* XXX do this with the object class */
|
||||
if ( _States_Is_waiting_on_thread_queue( state ) ) {
|
||||
if ( _States_Is_waiting_for_rpc_reply( state ) &&
|
||||
_States_Is_locally_blocked( state ) ) {
|
||||
remote_state = _States_Clear(
|
||||
STATES_WAITING_FOR_RPC_REPLY | STATES_TRANSIENT,
|
||||
state
|
||||
);
|
||||
|
||||
switch ( remote_state ) {
|
||||
|
||||
case STATES_WAITING_FOR_BUFFER:
|
||||
_Partition_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
case STATES_WAITING_FOR_SEGMENT:
|
||||
_Region_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
case STATES_WAITING_FOR_SEMAPHORE:
|
||||
_Semaphore_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
case STATES_WAITING_FOR_MESSAGE:
|
||||
_Message_queue_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
}
|
||||
}
|
||||
_Thread_queue_Extract( the_thread->Wait.queue, the_thread );
|
||||
}
|
||||
else if ( _Watchdog_Is_active( &the_thread->Timer ) )
|
||||
(void) _Watchdog_Remove( &the_thread->Timer );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_Tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
STATIC INLINE Priority_Control _RTEMS_Tasks_Priority_to_Core(
|
||||
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
|
||||
rtems_task_priority priority
|
||||
)
|
||||
{
|
||||
return (Priority_Control) priority;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Priority_is_valid
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid (
|
||||
rtems_task_priority the_priority
|
||||
)
|
||||
{
|
||||
return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&
|
||||
( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -44,17 +44,5 @@ STATIC INLINE boolean rtems_are_statuses_equal(
|
||||
return (code1 == code2);
|
||||
}
|
||||
|
||||
/*
|
||||
* _Status_Is_proxy_blocking
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _Status_Is_proxy_blocking (
|
||||
rtems_status_code code
|
||||
)
|
||||
{
|
||||
return (code == RTEMS_PROXY_BLOCKING);
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -17,11 +17,6 @@
|
||||
#ifndef __RTEMS_TASKS_inl
|
||||
#define __RTEMS_TASKS_inl
|
||||
|
||||
#include <rtems/msgmp.h>
|
||||
#include <rtems/partmp.h>
|
||||
#include <rtems/regionmp.h>
|
||||
#include <rtems/semmp.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Allocate
|
||||
@@ -51,61 +46,29 @@ STATIC INLINE void _RTEMS_tasks_Free (
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Cancel_wait
|
||||
*
|
||||
* _RTEMS_tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
STATIC INLINE void _RTEMS_tasks_Cancel_wait(
|
||||
Thread_Control *the_thread
|
||||
)
|
||||
{
|
||||
States_Control state;
|
||||
States_Control remote_state;
|
||||
|
||||
state = the_thread->current_state;
|
||||
|
||||
/* XXX do this with the object class */
|
||||
if ( _States_Is_waiting_on_thread_queue( state ) ) {
|
||||
if ( _States_Is_waiting_for_rpc_reply( state ) &&
|
||||
_States_Is_locally_blocked( state ) ) {
|
||||
remote_state = _States_Clear(
|
||||
STATES_WAITING_FOR_RPC_REPLY | STATES_TRANSIENT,
|
||||
state
|
||||
);
|
||||
|
||||
switch ( remote_state ) {
|
||||
|
||||
case STATES_WAITING_FOR_BUFFER:
|
||||
_Partition_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
case STATES_WAITING_FOR_SEGMENT:
|
||||
_Region_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
case STATES_WAITING_FOR_SEMAPHORE:
|
||||
_Semaphore_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
case STATES_WAITING_FOR_MESSAGE:
|
||||
_Message_queue_MP_Send_extract_proxy( the_thread );
|
||||
break;
|
||||
}
|
||||
}
|
||||
_Thread_queue_Extract( the_thread->Wait.queue, the_thread );
|
||||
}
|
||||
else if ( _Watchdog_Is_active( &the_thread->Timer ) )
|
||||
(void) _Watchdog_Remove( &the_thread->Timer );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_Tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
STATIC INLINE Priority_Control _RTEMS_Tasks_Priority_to_Core(
|
||||
STATIC INLINE Priority_Control _RTEMS_tasks_Priority_to_Core(
|
||||
rtems_task_priority priority
|
||||
)
|
||||
{
|
||||
return (Priority_Control) priority;
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Priority_is_valid
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _RTEMS_tasks_Priority_is_valid (
|
||||
rtems_task_priority the_priority
|
||||
)
|
||||
{
|
||||
return ( ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&
|
||||
( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );
|
||||
}
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef __INLINE_ASR_h
|
||||
#define __INLINE_ASR_h
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#define _ASR_Initialize( _information ) \
|
||||
{ \
|
||||
(_information)->is_enabled = TRUE; \
|
||||
(_information)->handler = NULL; \
|
||||
(_information)->mode_set = RTEMS_DEFAULT_MODES; \
|
||||
(_information)->signals_posted = 0; \
|
||||
|
||||
@@ -78,5 +78,14 @@
|
||||
#define _Attributes_Is_inherit_priority( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_INHERIT_PRIORITY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_priority_ceiling
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_priority_ceiling( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_PRIORITY_CEILING )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -22,7 +22,19 @@
|
||||
*/
|
||||
|
||||
#define _Event_Manager_initialization() \
|
||||
_Event_Sync = FALSE
|
||||
do { \
|
||||
\
|
||||
_Event_Sync = FALSE; \
|
||||
\
|
||||
/* \
|
||||
* Register the MP Process Packet routine. \
|
||||
*/ \
|
||||
\
|
||||
_MPCI_Register_packet_processor( \
|
||||
MP_PACKET_EVENT, \
|
||||
_Event_MP_Process_packet \
|
||||
); \
|
||||
} while ( 0 )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
*/
|
||||
|
||||
#define _Modes_Is_asr_disabled( _mode_set ) \
|
||||
( (_mode_set) & RTEMS_ASR_MASK )
|
||||
(((_mode_set) & RTEMS_ASR_MASK) == RTEMS_NO_ASR)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
@@ -59,8 +59,7 @@
|
||||
*/
|
||||
|
||||
#define _Modes_Is_timeslice( _mode_set ) \
|
||||
(((_mode_set) & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == \
|
||||
(RTEMS_TIMESLICE|RTEMS_PREEMPT) )
|
||||
(((_mode_set) & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#ifndef __INLINE_ASR_h
|
||||
#define __INLINE_ASR_h
|
||||
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/core/isr.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#define _ASR_Initialize( _information ) \
|
||||
{ \
|
||||
(_information)->is_enabled = TRUE; \
|
||||
(_information)->handler = NULL; \
|
||||
(_information)->mode_set = RTEMS_DEFAULT_MODES; \
|
||||
(_information)->signals_posted = 0; \
|
||||
|
||||
@@ -78,5 +78,14 @@
|
||||
#define _Attributes_Is_inherit_priority( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_INHERIT_PRIORITY )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Attributes_Is_priority_ceiling
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Attributes_Is_priority_ceiling( _attribute_set ) \
|
||||
( (_attribute_set) & RTEMS_PRIORITY_CEILING )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -22,7 +22,19 @@
|
||||
*/
|
||||
|
||||
#define _Event_Manager_initialization() \
|
||||
_Event_Sync = FALSE
|
||||
do { \
|
||||
\
|
||||
_Event_Sync = FALSE; \
|
||||
\
|
||||
/* \
|
||||
* Register the MP Process Packet routine. \
|
||||
*/ \
|
||||
\
|
||||
_MPCI_Register_packet_processor( \
|
||||
MP_PACKET_EVENT, \
|
||||
_Event_MP_Process_packet \
|
||||
); \
|
||||
} while ( 0 )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
*/
|
||||
|
||||
#define _Modes_Is_asr_disabled( _mode_set ) \
|
||||
( (_mode_set) & RTEMS_ASR_MASK )
|
||||
(((_mode_set) & RTEMS_ASR_MASK) == RTEMS_NO_ASR)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
@@ -59,8 +59,7 @@
|
||||
*/
|
||||
|
||||
#define _Modes_Is_timeslice( _mode_set ) \
|
||||
(((_mode_set) & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == \
|
||||
(RTEMS_TIMESLICE|RTEMS_PREEMPT) )
|
||||
(((_mode_set) & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
|
||||
@@ -35,13 +35,5 @@
|
||||
#define rtems_are_statuses_equal( _code1, _code2 ) \
|
||||
((_code1) == (_code2))
|
||||
|
||||
/*
|
||||
* _Status_Is_proxy_blocking
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Status_Is_proxy_blocking( _code ) \
|
||||
( (_code) == RTEMS_PROXY_BLOCKING )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -17,11 +17,6 @@
|
||||
#ifndef __RTEMS_TASKS_inl
|
||||
#define __RTEMS_TASKS_inl
|
||||
|
||||
#include <rtems/msgmp.h>
|
||||
#include <rtems/partmp.h>
|
||||
#include <rtems/regionmp.h>
|
||||
#include <rtems/semmp.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Allocate
|
||||
@@ -42,54 +37,22 @@
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Cancel_wait
|
||||
*
|
||||
* _RTEMS_tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
#define _RTEMS_tasks_Cancel_wait( _the_thread ) \
|
||||
{ \
|
||||
States_Control _state; \
|
||||
States_Control _remote_state; \
|
||||
\
|
||||
_state = (_the_thread)->current_state; \
|
||||
\
|
||||
if ( _States_Is_waiting_on_thread_queue( _state ) ) { \
|
||||
if ( _States_Is_waiting_for_rpc_reply( _state ) && \
|
||||
_States_Is_locally_blocked( _state ) ) { \
|
||||
_remote_state = _States_Clear( \
|
||||
STATES_WAITING_FOR_RPC_REPLY + STATES_TRANSIENT, \
|
||||
_state \
|
||||
); \
|
||||
\
|
||||
switch ( _remote_state ) { \
|
||||
\
|
||||
case STATES_WAITING_FOR_BUFFER: \
|
||||
_Partition_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
case STATES_WAITING_FOR_SEGMENT: \
|
||||
_Region_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
case STATES_WAITING_FOR_SEMAPHORE: \
|
||||
_Semaphore_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
case STATES_WAITING_FOR_MESSAGE: \
|
||||
_Message_queue_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
_Thread_queue_Extract( (_the_thread)->Wait.queue, (_the_thread) ); \
|
||||
} \
|
||||
else if ( _Watchdog_Is_active( &(_the_thread)->Timer ) ) \
|
||||
(void) _Watchdog_Remove( &(_the_thread)->Timer ); \
|
||||
}
|
||||
#define _RTEMS_tasks_Priority_to_Core( _priority ) \
|
||||
((Priority_Control) (_priority))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_Tasks_Priority_to_Core
|
||||
* _RTEMS_tasks_Priority_is_valid
|
||||
*
|
||||
*/
|
||||
|
||||
#define _RTEMS_Tasks_Priority_to_Core( _priority ) \
|
||||
((Priority_Control) (_priority))
|
||||
#define _RTEMS_tasks_Priority_is_valid( _the_priority ) \
|
||||
( ((_the_priority) >= RTEMS_MINIMUM_PRIORITY) && \
|
||||
((_the_priority) <= RTEMS_MAXIMUM_PRIORITY) )
|
||||
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -35,13 +35,5 @@
|
||||
#define rtems_are_statuses_equal( _code1, _code2 ) \
|
||||
((_code1) == (_code2))
|
||||
|
||||
/*
|
||||
* _Status_Is_proxy_blocking
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Status_Is_proxy_blocking( _code ) \
|
||||
( (_code) == RTEMS_PROXY_BLOCKING )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -17,11 +17,6 @@
|
||||
#ifndef __RTEMS_TASKS_inl
|
||||
#define __RTEMS_TASKS_inl
|
||||
|
||||
#include <rtems/msgmp.h>
|
||||
#include <rtems/partmp.h>
|
||||
#include <rtems/regionmp.h>
|
||||
#include <rtems/semmp.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Allocate
|
||||
@@ -42,54 +37,22 @@
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_tasks_Cancel_wait
|
||||
*
|
||||
* _RTEMS_tasks_Priority_to_Core
|
||||
*/
|
||||
|
||||
#define _RTEMS_tasks_Cancel_wait( _the_thread ) \
|
||||
{ \
|
||||
States_Control _state; \
|
||||
States_Control _remote_state; \
|
||||
\
|
||||
_state = (_the_thread)->current_state; \
|
||||
\
|
||||
if ( _States_Is_waiting_on_thread_queue( _state ) ) { \
|
||||
if ( _States_Is_waiting_for_rpc_reply( _state ) && \
|
||||
_States_Is_locally_blocked( _state ) ) { \
|
||||
_remote_state = _States_Clear( \
|
||||
STATES_WAITING_FOR_RPC_REPLY + STATES_TRANSIENT, \
|
||||
_state \
|
||||
); \
|
||||
\
|
||||
switch ( _remote_state ) { \
|
||||
\
|
||||
case STATES_WAITING_FOR_BUFFER: \
|
||||
_Partition_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
case STATES_WAITING_FOR_SEGMENT: \
|
||||
_Region_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
case STATES_WAITING_FOR_SEMAPHORE: \
|
||||
_Semaphore_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
case STATES_WAITING_FOR_MESSAGE: \
|
||||
_Message_queue_MP_Send_extract_proxy( (_the_thread) ); \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
_Thread_queue_Extract( (_the_thread)->Wait.queue, (_the_thread) ); \
|
||||
} \
|
||||
else if ( _Watchdog_Is_active( &(_the_thread)->Timer ) ) \
|
||||
(void) _Watchdog_Remove( &(_the_thread)->Timer ); \
|
||||
}
|
||||
#define _RTEMS_tasks_Priority_to_Core( _priority ) \
|
||||
((Priority_Control) (_priority))
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _RTEMS_Tasks_Priority_to_Core
|
||||
* _RTEMS_tasks_Priority_is_valid
|
||||
*
|
||||
*/
|
||||
|
||||
#define _RTEMS_Tasks_Priority_to_Core( _priority ) \
|
||||
((Priority_Control) (_priority))
|
||||
#define _RTEMS_tasks_Priority_is_valid( _the_priority ) \
|
||||
( ((_the_priority) >= RTEMS_MINIMUM_PRIORITY) && \
|
||||
((_the_priority) <= RTEMS_MAXIMUM_PRIORITY) )
|
||||
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -13,10 +13,13 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/address.h>
|
||||
#include <rtems/dpmem.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/address.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/dpmem.h>
|
||||
|
||||
void _Dual_ported_memory_Manager_initialization(
|
||||
unsigned32 maximum_ports
|
||||
@@ -32,7 +35,7 @@ rtems_status_code rtems_port_create(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_port_ident(
|
||||
@@ -40,14 +43,14 @@ rtems_status_code rtems_port_ident(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_port_delete(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_port_internal_to_external(
|
||||
@@ -56,7 +59,7 @@ rtems_status_code rtems_port_internal_to_external(
|
||||
void **external
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_port_external_to_internal(
|
||||
@@ -65,5 +68,5 @@ rtems_status_code rtems_port_external_to_internal(
|
||||
void **internal
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
@@ -13,19 +13,20 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/states.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/event.h>
|
||||
#include <rtems/core/isr.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/states.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
rtems_status_code rtems_event_send(
|
||||
Objects_Id id,
|
||||
rtems_event_set event_in
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_event_receive(
|
||||
@@ -35,6 +36,6 @@ rtems_status_code rtems_event_receive(
|
||||
rtems_event_set *event_out
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,23 +14,18 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/cpu.h>
|
||||
#include <rtems/event.h>
|
||||
#include <rtems/fatal.h>
|
||||
#include <rtems/intthrd.h>
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/mp.h>
|
||||
#include <rtems/mpci.h>
|
||||
#include <rtems/mppkt.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/signal.h>
|
||||
#include <rtems/states.h>
|
||||
#include <rtems/tasks.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/mp.h>
|
||||
#include <rtems/core/cpu.h>
|
||||
#include <rtems/core/interr.h>
|
||||
#include <rtems/core/mpci.h>
|
||||
#include <rtems/core/mppkt.h>
|
||||
#include <rtems/core/states.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
#include <rtems/core/tqdata.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
#include <rtems/sysstate.h>
|
||||
|
||||
void _Multiprocessing_Manager_initialization ( void )
|
||||
{
|
||||
@@ -40,62 +35,76 @@ void rtems_multiprocessing_announce ( void )
|
||||
{
|
||||
}
|
||||
|
||||
Thread _Multiprocessing_Receive_server (
|
||||
Thread_Argument ignored
|
||||
void _MPCI_Handler_initialization(
|
||||
MPCI_Control *users_mpci_table
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
void _MPCI_Handler_initialization ( void )
|
||||
{
|
||||
}
|
||||
|
||||
void _MPCI_Initialization ( void )
|
||||
{
|
||||
}
|
||||
|
||||
rtems_packet_prefix *_MPCI_Get_packet ( void )
|
||||
void _MPCI_Register_packet_processor(
|
||||
Objects_Classes the_class,
|
||||
MPCI_Packet_processor the_packet_processor
|
||||
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
MP_packet_Prefix *_MPCI_Get_packet ( void )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void _MPCI_Return_packet (
|
||||
rtems_packet_prefix *the_packet
|
||||
MP_packet_Prefix *the_packet
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
void _MPCI_Send_process_packet (
|
||||
unsigned32 destination,
|
||||
rtems_packet_prefix *the_packet
|
||||
MP_packet_Prefix *the_packet
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
rtems_status_code _MPCI_Send_request_packet (
|
||||
unsigned32 _MPCI_Send_request_packet (
|
||||
unsigned32 destination,
|
||||
rtems_packet_prefix *the_packet,
|
||||
MP_packet_Prefix *the_packet,
|
||||
States_Control extra_state
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return 0;
|
||||
}
|
||||
|
||||
void _MPCI_Send_response_packet (
|
||||
unsigned32 destination,
|
||||
rtems_packet_prefix *the_packet
|
||||
MP_packet_Prefix *the_packet
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
rtems_packet_prefix *_MPCI_Receive_packet ( void )
|
||||
MP_packet_Prefix *_MPCI_Receive_packet ( void )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Thread_Control *_MPCI_Process_response (
|
||||
rtems_packet_prefix *the_packet
|
||||
MP_packet_Prefix *the_packet
|
||||
)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void _MPCI_Receive_server( void )
|
||||
{
|
||||
}
|
||||
|
||||
void _MPCI_Announce ( void )
|
||||
{
|
||||
}
|
||||
|
||||
/* end of file */
|
||||
|
||||
@@ -14,16 +14,17 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/attr.h>
|
||||
#include <rtems/chain.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/core/chain.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/message.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/states.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/wkspace.h>
|
||||
#include <rtems/core/isr.h>
|
||||
#include <rtems/rtems/message.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/core/states.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/wkspace.h>
|
||||
|
||||
void _Message_queue_Manager_initialization(
|
||||
unsigned32 maximum_message_queues
|
||||
@@ -39,7 +40,7 @@ rtems_status_code rtems_message_queue_create(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_message_queue_ident(
|
||||
@@ -48,14 +49,14 @@ rtems_status_code rtems_message_queue_ident(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_message_queue_delete(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_message_queue_send(
|
||||
@@ -64,7 +65,7 @@ rtems_status_code rtems_message_queue_send(
|
||||
unsigned32 size
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_message_queue_urgent(
|
||||
@@ -73,7 +74,7 @@ rtems_status_code rtems_message_queue_urgent(
|
||||
unsigned32 size
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_message_queue_broadcast(
|
||||
@@ -83,7 +84,7 @@ rtems_status_code rtems_message_queue_broadcast(
|
||||
unsigned32 *count
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_message_queue_receive(
|
||||
@@ -94,7 +95,7 @@ rtems_status_code rtems_message_queue_receive(
|
||||
rtems_interval timeout
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_message_queue_flush(
|
||||
@@ -102,7 +103,7 @@ rtems_status_code rtems_message_queue_flush(
|
||||
unsigned32 *count
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
unsigned32 _Message_queue_Flush_support(
|
||||
@@ -130,5 +131,5 @@ rtems_status_code _Message_queue_Submit(
|
||||
Message_queue_Submit_types submit_type
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
@@ -14,11 +14,12 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/address.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/core/address.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/part.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/part.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
void _Partition_Manager_initialization(
|
||||
unsigned32 maximum_partitions
|
||||
@@ -35,7 +36,7 @@ rtems_status_code rtems_partition_create(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_partition_ident(
|
||||
@@ -44,14 +45,14 @@ rtems_status_code rtems_partition_ident(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_partition_delete(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_partition_get_buffer(
|
||||
@@ -59,7 +60,7 @@ rtems_status_code rtems_partition_get_buffer(
|
||||
void **buffer
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_partition_return_buffer(
|
||||
@@ -67,5 +68,5 @@ rtems_status_code rtems_partition_return_buffer(
|
||||
void *buffer
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
@@ -14,12 +14,13 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/region.h>
|
||||
#include <rtems/states.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/rtems/region.h>
|
||||
#include <rtems/core/states.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
void _Region_Manager_initialization(
|
||||
unsigned32 maximum_regions
|
||||
@@ -36,7 +37,7 @@ rtems_status_code rtems_region_create(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_region_ident(
|
||||
@@ -44,14 +45,14 @@ rtems_status_code rtems_region_ident(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_region_delete(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_region_get_segment(
|
||||
@@ -62,7 +63,7 @@ rtems_status_code rtems_region_get_segment(
|
||||
void **segment
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_region_get_segment_size(
|
||||
@@ -71,7 +72,7 @@ rtems_status_code rtems_region_get_segment_size(
|
||||
unsigned32 *size
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_region_return_segment(
|
||||
@@ -79,5 +80,5 @@ rtems_status_code rtems_region_return_segment(
|
||||
void *segment
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
@@ -14,10 +14,13 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/ratemon.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/core/isr.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/ratemon.h>
|
||||
|
||||
void _Rate_monotonic_Manager_initialization(
|
||||
unsigned32 maximum_periods
|
||||
@@ -30,7 +33,7 @@ rtems_status_code rtems_rate_monotonic_create(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_rate_monotonic_ident(
|
||||
@@ -38,21 +41,21 @@ rtems_status_code rtems_rate_monotonic_ident(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_rate_monotonic_cancel(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_rate_monotonic_delete(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_rate_monotonic_period(
|
||||
@@ -60,7 +63,7 @@ rtems_status_code rtems_rate_monotonic_period(
|
||||
rtems_interval length
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
void _Rate_monotonic_Timeout(
|
||||
|
||||
@@ -14,15 +14,16 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/attr.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/options.h>
|
||||
#include <rtems/sem.h>
|
||||
#include <rtems/states.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/threadq.h>
|
||||
#include <rtems/core/isr.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/rtems/sem.h>
|
||||
#include <rtems/core/states.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/threadq.h>
|
||||
|
||||
void _Semaphore_Manager_initialization(
|
||||
unsigned32 maximum_semaphores
|
||||
@@ -38,7 +39,7 @@ rtems_status_code rtems_semaphore_create(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_semaphore_ident(
|
||||
@@ -47,14 +48,14 @@ rtems_status_code rtems_semaphore_ident(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_semaphore_delete(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_semaphore_obtain(
|
||||
@@ -63,14 +64,14 @@ rtems_status_code rtems_semaphore_obtain(
|
||||
rtems_interval timeout
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_semaphore_release(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
boolean _Semaphore_Seize(
|
||||
|
||||
@@ -14,18 +14,24 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/asr.h>
|
||||
#include <rtems/isr.h>
|
||||
#include <rtems/modes.h>
|
||||
#include <rtems/signal.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/core/isr.h>
|
||||
#include <rtems/core/thread.h>
|
||||
|
||||
#include <rtems/rtems/asr.h>
|
||||
#include <rtems/rtems/modes.h>
|
||||
#include <rtems/rtems/signal.h>
|
||||
|
||||
void _Signal_Manager_initialization( void )
|
||||
{
|
||||
}
|
||||
|
||||
rtems_status_code rtems_signal_catch(
|
||||
rtems_asr_entry handler,
|
||||
rtems_mode mode_set
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_signal_send(
|
||||
@@ -33,5 +39,7 @@ rtems_status_code rtems_signal_send(
|
||||
rtems_signal_set signal_set
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
/* end of file */
|
||||
|
||||
@@ -14,11 +14,14 @@
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/object.h>
|
||||
#include <rtems/thread.h>
|
||||
#include <rtems/timer.h>
|
||||
#include <rtems/tod.h>
|
||||
#include <rtems/watchdog.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/core/object.h>
|
||||
#include <rtems/core/thread.h>
|
||||
#include <rtems/core/tod.h>
|
||||
#include <rtems/core/watchdog.h>
|
||||
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/timer.h>
|
||||
|
||||
void _Timer_Manager_initialization(
|
||||
unsigned32 maximum_timers
|
||||
@@ -31,7 +34,7 @@ rtems_status_code rtems_timer_create(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_timer_ident(
|
||||
@@ -39,46 +42,46 @@ rtems_status_code rtems_timer_ident(
|
||||
Objects_Id *id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_timer_cancel(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_timer_delete(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_timer_fire_after(
|
||||
Objects_Id id,
|
||||
rtems_interval ticks,
|
||||
Timer_Service routine,
|
||||
rtems_timer_service_routine_entry routine,
|
||||
void *user_data
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_timer_fire_when(
|
||||
Objects_Id id,
|
||||
rtems_time_of_day *wall_time,
|
||||
Timer_Service routine,
|
||||
rtems_timer_service_routine_entry routine,
|
||||
void *user_data
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
rtems_status_code rtems_timer_reset(
|
||||
Objects_Id id
|
||||
)
|
||||
{
|
||||
return( RTEMS_NOT_CONFIGURED );
|
||||
return RTEMS_NOT_CONFIGURED;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user