mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-11-08 00:40:21 +08:00
Minor bug fixes to get all targets compilable and running. The
single biggest changes were the expansion of the workspace size macro to include other types of objects and the increase in the minimum stack size for most CPUs.
This commit is contained in:
1 parent
b3ac6a8dfe
commit
3652ad356b
228 files changed
+4850
-2355
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -63,7 +63,7 @@ typedef struct {
|
||||
unsigned32 count;
|
||||
unsigned32 size;
|
||||
unsigned32 pad0;
|
||||
Message_queue_Buffer Buffer;
|
||||
CORE_message_queue_Buffer Buffer;
|
||||
} Message_queue_MP_Packet;
|
||||
|
||||
/*
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -63,7 +63,7 @@ typedef struct {
|
||||
unsigned32 count;
|
||||
unsigned32 size;
|
||||
unsigned32 pad0;
|
||||
Message_queue_Buffer Buffer;
|
||||
CORE_message_queue_Buffer Buffer;
|
||||
} Message_queue_MP_Packet;
|
||||
|
||||
/*
|
||||
|
||||
@@ -19,96 +19,6 @@
|
||||
|
||||
#include <rtems/core/wkspace.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Copy_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Copy_buffer (
|
||||
void *source,
|
||||
void *destination,
|
||||
unsigned32 size
|
||||
)
|
||||
{
|
||||
memcpy(destination, source, size);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE Message_queue_Buffer_control *
|
||||
_Message_queue_Allocate_message_buffer (
|
||||
Message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (Message_queue_Buffer_control *)
|
||||
_Chain_Get( &the_message_queue->Inactive_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Free_message_buffer (
|
||||
Message_queue_Control *the_message_queue,
|
||||
Message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE
|
||||
Message_queue_Buffer_control *_Message_queue_Get_pending_message (
|
||||
Message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (Message_queue_Buffer_control *)
|
||||
_Chain_Get_unprotected( &the_message_queue->Pending_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Append (
|
||||
Message_queue_Control *the_message_queue,
|
||||
Message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Pending_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Prepend (
|
||||
Message_queue_Control *the_message_queue,
|
||||
Message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Prepend(
|
||||
&the_message_queue->Pending_messages,
|
||||
&the_message->Node
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Is_null
|
||||
@@ -133,11 +43,6 @@ STATIC INLINE void _Message_queue_Free (
|
||||
Message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
if (the_message_queue->message_buffers) {
|
||||
_Workspace_Free((void *) the_message_queue->message_buffers);
|
||||
the_message_queue->message_buffers = 0;
|
||||
}
|
||||
|
||||
_Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
|
||||
}
|
||||
|
||||
|
||||
@@ -19,96 +19,6 @@
|
||||
|
||||
#include <rtems/core/wkspace.h>
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Copy_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Copy_buffer (
|
||||
void *source,
|
||||
void *destination,
|
||||
unsigned32 size
|
||||
)
|
||||
{
|
||||
memcpy(destination, source, size);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE Message_queue_Buffer_control *
|
||||
_Message_queue_Allocate_message_buffer (
|
||||
Message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (Message_queue_Buffer_control *)
|
||||
_Chain_Get( &the_message_queue->Inactive_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Free_message_buffer (
|
||||
Message_queue_Control *the_message_queue,
|
||||
Message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE
|
||||
Message_queue_Buffer_control *_Message_queue_Get_pending_message (
|
||||
Message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (Message_queue_Buffer_control *)
|
||||
_Chain_Get_unprotected( &the_message_queue->Pending_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Append (
|
||||
Message_queue_Control *the_message_queue,
|
||||
Message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Pending_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _Message_queue_Prepend (
|
||||
Message_queue_Control *the_message_queue,
|
||||
Message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Prepend(
|
||||
&the_message_queue->Pending_messages,
|
||||
&the_message->Node
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Is_null
|
||||
@@ -133,11 +43,6 @@ STATIC INLINE void _Message_queue_Free (
|
||||
Message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
if (the_message_queue->message_buffers) {
|
||||
_Workspace_Free((void *) the_message_queue->message_buffers);
|
||||
the_message_queue->message_buffers = 0;
|
||||
}
|
||||
|
||||
_Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
|
||||
}
|
||||
|
||||
|
||||
@@ -17,66 +17,6 @@
|
||||
#ifndef __MESSAGE_QUEUE_inl
|
||||
#define __MESSAGE_QUEUE_inl
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Copy_buffer
|
||||
*/
|
||||
|
||||
#define _Message_queue_Copy_buffer( _source, _destination, _size ) \
|
||||
memcpy( _destination, _source, _size)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Allocate_message_buffer( _the_message_queue ) \
|
||||
(Message_queue_Buffer_control *) \
|
||||
_Chain_Get( &(_the_message_queue)->Inactive_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Free_message_buffer( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( \
|
||||
&(_the_message_queue)->Inactive_messages, \
|
||||
&(_the_message)->Node \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Get_pending_message( _the_message_queue ) \
|
||||
(Message_queue_Buffer_control *) \
|
||||
_Chain_Get_unprotected( &(_the_message_queue)->Pending_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Append( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Prepend( _the_message_queue, _the_message ) \
|
||||
_Chain_Prepend( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Is_null
|
||||
@@ -93,19 +33,7 @@
|
||||
*/
|
||||
|
||||
#define _Message_queue_Free( _the_message_queue ) \
|
||||
do { \
|
||||
\
|
||||
if ( (_the_message_queue)->message_buffers ) { \
|
||||
_Workspace_Free((void *) (_the_message_queue)->message_buffers); \
|
||||
(_the_message_queue)->message_buffers = 0; \
|
||||
} \
|
||||
\
|
||||
_Objects_Free( \
|
||||
&_Message_queue_Information, \
|
||||
&(_the_message_queue)->Object \
|
||||
); \
|
||||
} while ( 0 )
|
||||
|
||||
_Objects_Free( &_Message_queue_Information, &(_the_message_queue)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
|
||||
@@ -17,66 +17,6 @@
|
||||
#ifndef __MESSAGE_QUEUE_inl
|
||||
#define __MESSAGE_QUEUE_inl
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Copy_buffer
|
||||
*/
|
||||
|
||||
#define _Message_queue_Copy_buffer( _source, _destination, _size ) \
|
||||
memcpy( _destination, _source, _size)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Allocate_message_buffer( _the_message_queue ) \
|
||||
(Message_queue_Buffer_control *) \
|
||||
_Chain_Get( &(_the_message_queue)->Inactive_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Free_message_buffer( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( \
|
||||
&(_the_message_queue)->Inactive_messages, \
|
||||
&(_the_message)->Node \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Get_pending_message( _the_message_queue ) \
|
||||
(Message_queue_Buffer_control *) \
|
||||
_Chain_Get_unprotected( &(_the_message_queue)->Pending_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Append( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
#define _Message_queue_Prepend( _the_message_queue, _the_message ) \
|
||||
_Chain_Prepend( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _Message_queue_Is_null
|
||||
@@ -93,19 +33,7 @@
|
||||
*/
|
||||
|
||||
#define _Message_queue_Free( _the_message_queue ) \
|
||||
do { \
|
||||
\
|
||||
if ( (_the_message_queue)->message_buffers ) { \
|
||||
_Workspace_Free((void *) (_the_message_queue)->message_buffers); \
|
||||
(_the_message_queue)->message_buffers = 0; \
|
||||
} \
|
||||
\
|
||||
_Objects_Free( \
|
||||
&_Message_queue_Information, \
|
||||
&(_the_message_queue)->Object \
|
||||
); \
|
||||
} while ( 0 )
|
||||
|
||||
_Objects_Free( &_Message_queue_Information, &(_the_message_queue)->Object )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
|
||||
+199
-325
File diff suppressed because it is too large.
Load diff
@@ -133,9 +133,11 @@ rtems_status_code _Message_queue_MP_Send_request_packet (
|
||||
|
||||
if (buffer) {
|
||||
the_packet->Buffer.size = *size_p;
|
||||
_Message_queue_Copy_buffer(buffer,
|
||||
the_packet->Buffer.buffer,
|
||||
*size_p);
|
||||
_CORE_message_queue_Copy_buffer(
|
||||
buffer,
|
||||
the_packet->Buffer.buffer,
|
||||
*size_p
|
||||
);
|
||||
}
|
||||
|
||||
return _MPCI_Send_request_packet(rtems_get_node(message_queue_id),
|
||||
@@ -310,7 +312,7 @@ void _Message_queue_MP_Process_packet (
|
||||
*(rtems_unsigned32 *)the_thread->Wait.return_argument_1 =
|
||||
the_packet->size;
|
||||
|
||||
_Message_queue_Copy_buffer(
|
||||
_CORE_message_queue_Copy_buffer(
|
||||
the_packet->Buffer.buffer,
|
||||
the_thread->Wait.return_argument,
|
||||
the_packet->size
|
||||
|
||||
+43
-56
File diff suppressed because it is too large.
Load diff
@@ -114,26 +114,21 @@ User_extensions_routine _RTEMS_tasks_Switch_extension(
|
||||
asr = &api->Signal;
|
||||
|
||||
_ISR_Disable( level );
|
||||
|
||||
signal_set = asr->signals_posted;
|
||||
|
||||
if ( signal_set ) {
|
||||
/* if ( _ASR_Are_signals_pending( asr ) ) {
|
||||
|
||||
signal_set = asr->signals_posted; */
|
||||
signal_set = asr->signals_posted;
|
||||
asr->signals_posted = 0;
|
||||
_ISR_Enable( level );
|
||||
_ISR_Enable( level );
|
||||
|
||||
asr->nest_level += 1;
|
||||
rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode );
|
||||
|
||||
(*asr->handler)( signal_set );
|
||||
if ( !signal_set ) /* similar to _ASR_Are_signals_pending( asr ) */
|
||||
return;
|
||||
|
||||
asr->nest_level -= 1;
|
||||
rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode );
|
||||
}
|
||||
else
|
||||
_ISR_Enable( level );
|
||||
asr->nest_level += 1;
|
||||
rtems_task_mode( asr->mode_set, RTEMS_ALL_MODE_MASKS, &prev_mode );
|
||||
|
||||
(*asr->handler)( signal_set );
|
||||
|
||||
asr->nest_level -= 1;
|
||||
rtems_task_mode( prev_mode, RTEMS_ALL_MODE_MASKS, &prev_mode );
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -236,13 +236,108 @@ rtems_multiprocessing_table Multiprocessing_configuration = {
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS NULL
|
||||
#endif
|
||||
|
||||
/* Calculate the RAM size based on the maximum number of tasks configured */
|
||||
/*
|
||||
* Calculate the RAM size based on the maximum number of objects configured.
|
||||
* The model is to estimate the memory required for each configured item,
|
||||
* sum the memory requirements and insure that there is at least 32K greater
|
||||
* than that for things not directly addressed such as:
|
||||
*
|
||||
* + stacks greater than minimum size
|
||||
* + FP contexts
|
||||
* + API areas (should be optional)
|
||||
* + messages
|
||||
* + object name and local pointer table overhead
|
||||
* + per node memory requirements
|
||||
* + executive fixed requirements (including at least internal threads
|
||||
* and the Ready chains)
|
||||
*
|
||||
* NOTE: Eventually this should take into account some of the above.
|
||||
* Basically, this is a "back of the envelope" estimate for
|
||||
* memory requirements. It could be more accurate.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE
|
||||
#define CONFIGURE_MEMORY_REQUIRED(_tasks) \
|
||||
(_tasks) * ( (sizeof(Thread_Control) + CONTEXT_FP_SIZE + STACK_MINIMUM_SIZE))
|
||||
|
||||
#define CONFIGURE_OBJECT_TABLE_STUFF \
|
||||
( sizeof(Objects_Control *) + sizeof(rtems_name *) + sizeof(rtems_name) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_TASKS(_tasks) \
|
||||
((_tasks) * \
|
||||
((sizeof(Thread_Control) + CONTEXT_FP_SIZE + \
|
||||
STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \
|
||||
CONFIGURE_OBJECT_TABLE_STUFF)) \
|
||||
)
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_TIMERS(_timers) \
|
||||
((_timers) * ( sizeof(Timer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \
|
||||
((_semaphores) * \
|
||||
( sizeof(Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \
|
||||
( (_queues) * \
|
||||
( sizeof(Message_queue_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \
|
||||
( (_partitions) * \
|
||||
( sizeof(Partition_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_REGIONS(_regions) \
|
||||
( (_regions) * \
|
||||
( sizeof(Region_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PORTS(_ports) \
|
||||
( (_ports) * \
|
||||
( sizeof(Dual_ported_memory_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PERIODS(_periods) \
|
||||
( (_periods) * \
|
||||
( sizeof(Rate_monotonic_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \
|
||||
( (_extensions) * \
|
||||
( sizeof(Extension_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_DEVICES(_devices) \
|
||||
(((_devices) + 1) * ( sizeof(rtems_driver_name_t) ) )
|
||||
|
||||
#ifdef CONFIGURE_MPTEST
|
||||
|
||||
#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PROXIES(_proxies) \
|
||||
( ((_proxies) + 1) * ( sizeof(Thread_Proxy_control) ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \
|
||||
((_global_objects) * ( sizeof(Objects_MP_Control) ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_MP \
|
||||
( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \
|
||||
CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) \
|
||||
)
|
||||
|
||||
#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */
|
||||
|
||||
#else
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_MP 0
|
||||
|
||||
#endif
|
||||
#define CONFIGURE_EXECUTIVE_RAM_SIZE \
|
||||
( (CONFIGURE_MEMORY_REQUIRED(CONFIGURE_MAXIMUM_TASKS) + (128*1024)) &0xffff0000)
|
||||
(( CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS) + \
|
||||
CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \
|
||||
CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES) + \
|
||||
CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES) + \
|
||||
CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS) + \
|
||||
CONFIGURE_MEMORY_FOR_REGIONS(CONFIGURE_MAXIMUM_REGIONS) + \
|
||||
CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS) + \
|
||||
CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS) + \
|
||||
CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(CONFIGURE_MAXIMUM_USER_EXTENSIONS) + \
|
||||
CONFIGURE_MEMORY_FOR_DEVICES(CONFIGURE_MAXIMUM_DEVICES) + \
|
||||
CONFIGURE_MEMORY_FOR_MP + \
|
||||
(96*1024) \
|
||||
) & 0xffff8000)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_INIT
|
||||
|
||||
@@ -236,13 +236,108 @@ rtems_multiprocessing_table Multiprocessing_configuration = {
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS NULL
|
||||
#endif
|
||||
|
||||
/* Calculate the RAM size based on the maximum number of tasks configured */
|
||||
/*
|
||||
* Calculate the RAM size based on the maximum number of objects configured.
|
||||
* The model is to estimate the memory required for each configured item,
|
||||
* sum the memory requirements and insure that there is at least 32K greater
|
||||
* than that for things not directly addressed such as:
|
||||
*
|
||||
* + stacks greater than minimum size
|
||||
* + FP contexts
|
||||
* + API areas (should be optional)
|
||||
* + messages
|
||||
* + object name and local pointer table overhead
|
||||
* + per node memory requirements
|
||||
* + executive fixed requirements (including at least internal threads
|
||||
* and the Ready chains)
|
||||
*
|
||||
* NOTE: Eventually this should take into account some of the above.
|
||||
* Basically, this is a "back of the envelope" estimate for
|
||||
* memory requirements. It could be more accurate.
|
||||
*/
|
||||
|
||||
#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE
|
||||
#define CONFIGURE_MEMORY_REQUIRED(_tasks) \
|
||||
(_tasks) * ( (sizeof(Thread_Control) + CONTEXT_FP_SIZE + STACK_MINIMUM_SIZE))
|
||||
|
||||
#define CONFIGURE_OBJECT_TABLE_STUFF \
|
||||
( sizeof(Objects_Control *) + sizeof(rtems_name *) + sizeof(rtems_name) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_TASKS(_tasks) \
|
||||
((_tasks) * \
|
||||
((sizeof(Thread_Control) + CONTEXT_FP_SIZE + \
|
||||
STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \
|
||||
CONFIGURE_OBJECT_TABLE_STUFF)) \
|
||||
)
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_TIMERS(_timers) \
|
||||
((_timers) * ( sizeof(Timer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \
|
||||
((_semaphores) * \
|
||||
( sizeof(Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \
|
||||
( (_queues) * \
|
||||
( sizeof(Message_queue_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \
|
||||
( (_partitions) * \
|
||||
( sizeof(Partition_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_REGIONS(_regions) \
|
||||
( (_regions) * \
|
||||
( sizeof(Region_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PORTS(_ports) \
|
||||
( (_ports) * \
|
||||
( sizeof(Dual_ported_memory_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PERIODS(_periods) \
|
||||
( (_periods) * \
|
||||
( sizeof(Rate_monotonic_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \
|
||||
( (_extensions) * \
|
||||
( sizeof(Extension_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_DEVICES(_devices) \
|
||||
(((_devices) + 1) * ( sizeof(rtems_driver_name_t) ) )
|
||||
|
||||
#ifdef CONFIGURE_MPTEST
|
||||
|
||||
#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_PROXIES(_proxies) \
|
||||
( ((_proxies) + 1) * ( sizeof(Thread_Proxy_control) ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \
|
||||
((_global_objects) * ( sizeof(Objects_MP_Control) ) )
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_MP \
|
||||
( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \
|
||||
CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) \
|
||||
)
|
||||
|
||||
#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */
|
||||
|
||||
#else
|
||||
|
||||
#define CONFIGURE_MEMORY_FOR_MP 0
|
||||
|
||||
#endif
|
||||
#define CONFIGURE_EXECUTIVE_RAM_SIZE \
|
||||
( (CONFIGURE_MEMORY_REQUIRED(CONFIGURE_MAXIMUM_TASKS) + (128*1024)) &0xffff0000)
|
||||
(( CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS) + \
|
||||
CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \
|
||||
CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES) + \
|
||||
CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES) + \
|
||||
CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS) + \
|
||||
CONFIGURE_MEMORY_FOR_REGIONS(CONFIGURE_MAXIMUM_REGIONS) + \
|
||||
CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS) + \
|
||||
CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS) + \
|
||||
CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(CONFIGURE_MAXIMUM_USER_EXTENSIONS) + \
|
||||
CONFIGURE_MEMORY_FOR_DEVICES(CONFIGURE_MAXIMUM_DEVICES) + \
|
||||
CONFIGURE_MEMORY_FOR_MP + \
|
||||
(96*1024) \
|
||||
) & 0xffff8000)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_INIT
|
||||
|
||||
@@ -193,7 +193,7 @@ void _CPU_ISR_install_vector(
|
||||
void
|
||||
hppa_external_interrupt_initialize(void)
|
||||
{
|
||||
hppa_rtems_isr_entry ignore;
|
||||
hppa_rtems_isr_entry ignore = 0;
|
||||
|
||||
/* mark them all unused */
|
||||
|
||||
@@ -201,8 +201,11 @@ hppa_external_interrupt_initialize(void)
|
||||
DISMISS(~0);
|
||||
|
||||
/* install the external interrupt handler */
|
||||
rtems_interrupt_catch((rtems_isr_entry) hppa_external_interrupt,
|
||||
HPPA_INTERRUPT_EXTERNAL_INTERRUPT, &ignore) ;
|
||||
_CPU_ISR_install_vector(
|
||||
HPPA_INTERRUPT_EXTERNAL_INTERRUPT,
|
||||
(proc_ptr)hppa_external_interrupt,
|
||||
(proc_ptr *)ignore
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
# Division Incorporated makes no representations about the
|
||||
# suitability of this software for any purpose.
|
||||
#
|
||||
* $Id$
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#include <rtems/core/hppa.h>
|
||||
|
||||
@@ -636,7 +636,7 @@ get_ ## name (void) \
|
||||
}
|
||||
|
||||
#define EMIT_SET_CONTROL(name, reg) \
|
||||
static __inline__ unsigned int \
|
||||
static __inline__ void \
|
||||
set_ ## name (unsigned int new_value) \
|
||||
{ \
|
||||
HPPA_ASM_MTCTL(new_value, reg); \
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <rtems/hppa.h>
|
||||
#include <rtems/core/hppa.h>
|
||||
#include <rtems/core/cpu_asm.h>
|
||||
|
||||
.SPACE $PRIVATE$
|
||||
|
||||
@@ -34,7 +34,7 @@ void _CPU_Initialize(
|
||||
)
|
||||
{
|
||||
register unsigned16 fp_status asm ("ax");
|
||||
register unsigned8 *fp_context;
|
||||
register void *fp_context;
|
||||
|
||||
_CPU_Table = *cpu_table;
|
||||
|
||||
@@ -56,7 +56,7 @@ void _CPU_Initialize(
|
||||
|
||||
if ( fp_status == 0 ) {
|
||||
|
||||
fp_context = _CPU_Null_fp_context;
|
||||
fp_context = &_CPU_Null_fp_context;
|
||||
|
||||
asm volatile( "fsave (%0)" : "=r" (fp_context)
|
||||
: "0" (fp_context)
|
||||
|
||||
@@ -147,11 +147,9 @@ EXTERN void *_CPU_Interrupt_stack_high;
|
||||
|
||||
/*
|
||||
* Minimum size of a thread's stack.
|
||||
*
|
||||
* NOTE: 256 bytes is probably too low in most cases.
|
||||
*/
|
||||
|
||||
#define CPU_STACK_MINIMUM_SIZE 256
|
||||
#define CPU_STACK_MINIMUM_SIZE 1024
|
||||
|
||||
/*
|
||||
* i386 is pretty tolerant of alignment. Just put things on 4 byte boundaries.
|
||||
@@ -232,8 +230,8 @@ unsigned32 _CPU_ISR_Get_level( void );
|
||||
|
||||
#define _CPU_Context_Initialize_fp( _fp_area ) \
|
||||
{ \
|
||||
unsigned32 *_source = (unsigned32 *) _CPU_Null_fp_context; \
|
||||
unsigned32 *_destination = (unsigned32 *) *(_fp_area); \
|
||||
unsigned32 *_source = (unsigned32 *) &_CPU_Null_fp_context; \
|
||||
unsigned32 *_destination = *(_fp_area); \
|
||||
unsigned32 _index; \
|
||||
\
|
||||
for ( _index=0 ; _index < CPU_CONTEXT_FP_SIZE/4 ; _index++ ) \
|
||||
|
||||
@@ -170,8 +170,8 @@ typedef struct {
|
||||
do { \
|
||||
register unsigned32 _eflags = 0; \
|
||||
\
|
||||
asm volatile ( "push %0 ; \
|
||||
popf " \
|
||||
asm volatile ( "pushf ; \
|
||||
pop %0" \
|
||||
: "=r" ((_eflags)) : "0" ((_eflags)) \
|
||||
); \
|
||||
\
|
||||
|
||||
@@ -179,7 +179,7 @@ EXTERN void *_CPU_Interrupt_stack_high;
|
||||
*/
|
||||
|
||||
#define CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK \
|
||||
(4096 - CPU_STACK_MINIMUM_SIZE)
|
||||
(CPU_STACK_MINIMUM_SIZE)
|
||||
|
||||
/*
|
||||
* i960 family supports 256 distinct vectors.
|
||||
@@ -193,7 +193,7 @@ EXTERN void *_CPU_Interrupt_stack_high;
|
||||
* NOTE: See CPU_SYSTEM_INITIALIZATION_THREAD_EXTRA_STACK
|
||||
*/
|
||||
|
||||
#define CPU_STACK_MINIMUM_SIZE 1024
|
||||
#define CPU_STACK_MINIMUM_SIZE 2048
|
||||
|
||||
/*
|
||||
* i960 is pretty tolerant of alignment. Just put things on 4 byte boundaries.
|
||||
|
||||
@@ -177,11 +177,9 @@ EXTERN void *_CPU_Interrupt_stack_high;
|
||||
|
||||
/*
|
||||
* Minimum size of a thread's stack.
|
||||
*
|
||||
* NOTE: 256 bytes is probably too low in most cases.
|
||||
*/
|
||||
|
||||
#define CPU_STACK_MINIMUM_SIZE 256
|
||||
#define CPU_STACK_MINIMUM_SIZE 1024
|
||||
|
||||
/*
|
||||
* m68k is pretty tolerant of alignment. Just put things on 4 byte boundaries.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* HP PA-RISC CPU Dependent Source
|
||||
* UNIX Simulator Dependent Source
|
||||
*
|
||||
*
|
||||
* To anyone who acknowledges that this file is provided "AS IS"
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/core/isr.h>
|
||||
#include <rtems/core/interr.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -169,21 +170,16 @@ void _CPU_Context_From_CPU_Init()
|
||||
*/
|
||||
|
||||
_CPU_ISR_Set_level( 0 );
|
||||
setjmp( _CPU_Context_Default_with_ISRs_enabled.regs );
|
||||
sigprocmask(
|
||||
SIG_SETMASK, /* ignored when second arg is NULL */
|
||||
0,
|
||||
&_CPU_Context_Default_with_ISRs_enabled.isr_level
|
||||
_CPU_Context_switch(
|
||||
&_CPU_Context_Default_with_ISRs_enabled,
|
||||
&_CPU_Context_Default_with_ISRs_enabled
|
||||
);
|
||||
|
||||
_CPU_ISR_Set_level( 1 );
|
||||
setjmp( _CPU_Context_Default_with_ISRs_disabled.regs );
|
||||
sigprocmask(
|
||||
SIG_SETMASK, /* ignored when second arg is NULL */
|
||||
0,
|
||||
&_CPU_Context_Default_with_ISRs_disabled.isr_level
|
||||
_CPU_Context_switch(
|
||||
&_CPU_Context_Default_with_ISRs_disabled,
|
||||
&_CPU_Context_Default_with_ISRs_disabled
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
@@ -191,21 +187,21 @@ void _CPU_Context_From_CPU_Init()
|
||||
* _CPU_ISR_Get_level
|
||||
*/
|
||||
|
||||
sigset_t GET_old_mask;
|
||||
|
||||
unsigned32 _CPU_ISR_Get_level( void )
|
||||
{
|
||||
sigset_t sigset;
|
||||
/* sigset_t old_mask; */
|
||||
unsigned32 old_level;
|
||||
|
||||
sigprocmask( 0, 0, &sigset );
|
||||
sigprocmask(0, 0, &GET_old_mask);
|
||||
|
||||
if (memcmp((void *)&posix_empty_mask, (void *)&GET_old_mask, sizeof(sigset_t)))
|
||||
old_level = 1;
|
||||
else
|
||||
old_level = 0;
|
||||
|
||||
/*
|
||||
* This is an educated guess based on ONLY ONE of the signals we
|
||||
* disable/enable to mask ISRs.
|
||||
*/
|
||||
|
||||
if ( sigismember( &sigset, SIGUSR1 ) )
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
return old_level;
|
||||
}
|
||||
|
||||
/* _CPU_Initialize
|
||||
@@ -383,7 +379,7 @@ void _CPU_Context_Initialize(
|
||||
else
|
||||
source = _CPU_Context_Default_with_ISRs_disabled.regs;
|
||||
|
||||
memcpy(_the_context, source, sizeof(jmp_buf));
|
||||
memcpy(_the_context, source, sizeof(Context_Control) ); /* sizeof(jmp_buf)); */
|
||||
|
||||
addr = (unsigned32 *)_the_context;
|
||||
|
||||
@@ -470,15 +466,30 @@ void _CPU_Context_switch(
|
||||
Context_Control *next
|
||||
)
|
||||
{
|
||||
int status;
|
||||
|
||||
/*
|
||||
* Switch levels in one operation
|
||||
*/
|
||||
|
||||
sigprocmask( SIG_SETMASK, &next->isr_level, ¤t->isr_level );
|
||||
status = sigprocmask( SIG_SETMASK, &next->isr_level, ¤t->isr_level );
|
||||
if ( status )
|
||||
_Internal_error_Occurred(
|
||||
INTERNAL_ERROR_CORE,
|
||||
TRUE,
|
||||
status
|
||||
);
|
||||
|
||||
if (setjmp(current->regs) == 0) { /* Save the current context */
|
||||
longjmp(next->regs, 0); /* Switch to the new context */
|
||||
if ( status )
|
||||
_Internal_error_Occurred(
|
||||
INTERNAL_ERROR_CORE,
|
||||
TRUE,
|
||||
status
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
@@ -510,11 +521,18 @@ void _CPU_Restore_float_context(
|
||||
|
||||
unsigned32 _CPU_ISR_Disable_support(void)
|
||||
{
|
||||
int status;
|
||||
sigset_t old_mask;
|
||||
|
||||
sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
|
||||
status = sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
|
||||
if ( status )
|
||||
_Internal_error_Occurred(
|
||||
INTERNAL_ERROR_CORE,
|
||||
TRUE,
|
||||
status
|
||||
);
|
||||
|
||||
if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)) != 0)
|
||||
if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
@@ -529,10 +547,19 @@ void _CPU_ISR_Enable(
|
||||
unsigned32 level
|
||||
)
|
||||
{
|
||||
int status;
|
||||
|
||||
if (level == 0)
|
||||
sigprocmask(SIG_UNBLOCK, &_CPU_Signal_mask, 0);
|
||||
status = sigprocmask(SIG_UNBLOCK, &_CPU_Signal_mask, 0);
|
||||
else
|
||||
sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, 0);
|
||||
status = sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, 0);
|
||||
|
||||
if ( status )
|
||||
_Internal_error_Occurred(
|
||||
INTERNAL_ERROR_CORE,
|
||||
TRUE,
|
||||
status
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,186 @@
|
||||
/* coremsg.inl
|
||||
*
|
||||
* This include file contains the static inline implementation of all
|
||||
* inlined routines in the Core Message Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* All rights assigned to U.S. Government, 1994.
|
||||
*
|
||||
* This material may be reproduced by or for the U.S. Government pursuant
|
||||
* to the copyright license under the clause at DFARS 252.227-7013. This
|
||||
* notice must appear in all copies of this file and its derivatives.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __CORE_MESSAGE_QUEUE_inl
|
||||
#define __CORE_MESSAGE_QUEUE_inl
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Send
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Send(
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
void *buffer,
|
||||
unsigned32 size,
|
||||
Objects_Id id,
|
||||
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
|
||||
)
|
||||
{
|
||||
return _CORE_message_queue_Submit(
|
||||
the_message_queue,
|
||||
buffer,
|
||||
size,
|
||||
id,
|
||||
api_message_queue_mp_support,
|
||||
CORE_MESSAGE_QUEUE_SEND_REQUEST
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Urgent
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Urgent(
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
void *buffer,
|
||||
unsigned32 size,
|
||||
Objects_Id id,
|
||||
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
|
||||
)
|
||||
{
|
||||
return _CORE_message_queue_Submit(
|
||||
the_message_queue,
|
||||
buffer,
|
||||
size,
|
||||
id,
|
||||
api_message_queue_mp_support,
|
||||
CORE_MESSAGE_QUEUE_URGENT_REQUEST
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Copy_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Copy_buffer (
|
||||
void *source,
|
||||
void *destination,
|
||||
unsigned32 size
|
||||
)
|
||||
{
|
||||
memcpy(destination, source, size);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE CORE_message_queue_Buffer_control *
|
||||
_CORE_message_queue_Allocate_message_buffer (
|
||||
CORE_message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (CORE_message_queue_Buffer_control *)
|
||||
_Chain_Get( &the_message_queue->Inactive_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Free_message_buffer (
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
CORE_message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE
|
||||
CORE_message_queue_Buffer_control *_CORE_message_queue_Get_pending_message (
|
||||
CORE_message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (CORE_message_queue_Buffer_control *)
|
||||
_Chain_Get_unprotected( &the_message_queue->Pending_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _CORE_message_queue_Is_priority(
|
||||
CORE_message_queue_Attributes *the_attribute
|
||||
)
|
||||
{
|
||||
return (the_attribute->discipline == CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Append (
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
CORE_message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Pending_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Prepend (
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
CORE_message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Prepend(
|
||||
&the_message_queue->Pending_messages,
|
||||
&the_message->Node
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _CORE_message_queue_Is_null (
|
||||
CORE_message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return ( the_message_queue == NULL );
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -0,0 +1,186 @@
|
||||
/* coremsg.inl
|
||||
*
|
||||
* This include file contains the static inline implementation of all
|
||||
* inlined routines in the Core Message Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* All rights assigned to U.S. Government, 1994.
|
||||
*
|
||||
* This material may be reproduced by or for the U.S. Government pursuant
|
||||
* to the copyright license under the clause at DFARS 252.227-7013. This
|
||||
* notice must appear in all copies of this file and its derivatives.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __CORE_MESSAGE_QUEUE_inl
|
||||
#define __CORE_MESSAGE_QUEUE_inl
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Send
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Send(
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
void *buffer,
|
||||
unsigned32 size,
|
||||
Objects_Id id,
|
||||
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
|
||||
)
|
||||
{
|
||||
return _CORE_message_queue_Submit(
|
||||
the_message_queue,
|
||||
buffer,
|
||||
size,
|
||||
id,
|
||||
api_message_queue_mp_support,
|
||||
CORE_MESSAGE_QUEUE_SEND_REQUEST
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Urgent
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE CORE_message_queue_Status _CORE_message_queue_Urgent(
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
void *buffer,
|
||||
unsigned32 size,
|
||||
Objects_Id id,
|
||||
CORE_message_queue_API_mp_support_callout api_message_queue_mp_support
|
||||
)
|
||||
{
|
||||
return _CORE_message_queue_Submit(
|
||||
the_message_queue,
|
||||
buffer,
|
||||
size,
|
||||
id,
|
||||
api_message_queue_mp_support,
|
||||
CORE_MESSAGE_QUEUE_URGENT_REQUEST
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Copy_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Copy_buffer (
|
||||
void *source,
|
||||
void *destination,
|
||||
unsigned32 size
|
||||
)
|
||||
{
|
||||
memcpy(destination, source, size);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE CORE_message_queue_Buffer_control *
|
||||
_CORE_message_queue_Allocate_message_buffer (
|
||||
CORE_message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (CORE_message_queue_Buffer_control *)
|
||||
_Chain_Get( &the_message_queue->Inactive_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Free_message_buffer (
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
CORE_message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Inactive_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE
|
||||
CORE_message_queue_Buffer_control *_CORE_message_queue_Get_pending_message (
|
||||
CORE_message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return (CORE_message_queue_Buffer_control *)
|
||||
_Chain_Get_unprotected( &the_message_queue->Pending_messages );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _CORE_message_queue_Is_priority(
|
||||
CORE_message_queue_Attributes *the_attribute
|
||||
)
|
||||
{
|
||||
return (the_attribute->discipline == CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Append (
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
CORE_message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Append( &the_message_queue->Pending_messages, &the_message->Node );
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE void _CORE_message_queue_Prepend (
|
||||
CORE_message_queue_Control *the_message_queue,
|
||||
CORE_message_queue_Buffer_control *the_message
|
||||
)
|
||||
{
|
||||
_Chain_Prepend(
|
||||
&the_message_queue->Pending_messages,
|
||||
&the_message->Node
|
||||
);
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
STATIC INLINE boolean _CORE_message_queue_Is_null (
|
||||
CORE_message_queue_Control *the_message_queue
|
||||
)
|
||||
{
|
||||
return ( the_message_queue == NULL );
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -0,0 +1,121 @@
|
||||
/* coremsg.inl
|
||||
*
|
||||
* This include file contains the macro implementation of all
|
||||
* inlined routines in the Core Message Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* All rights assigned to U.S. Government, 1994.
|
||||
*
|
||||
* This material may be reproduced by or for the U.S. Government pursuant
|
||||
* to the copyright license under the clause at DFARS 252.227-7013. This
|
||||
* notice must appear in all copies of this file and its derivatives.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __CORE_MESSAGE_QUEUE_inl
|
||||
#define __CORE_MESSAGE_QUEUE_inl
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Send
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Send( _the_message_queue, _buffer, _size, \
|
||||
_id, _api_message_queue_mp_support ) \
|
||||
_CORE_message_queue_Submit( (_the_message_queue), (_buffer), (_size), \
|
||||
(_id), (_api_message_queue_mp_support), CORE_MESSAGE_QUEUE_SEND_REQUEST )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Urgent
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Urgent( _the_message_queue, _buffer, _size, \
|
||||
_id, _api_message_queue_mp_support ) \
|
||||
_CORE_message_queue_Submit( (_the_message_queue), (_buffer), (_size), \
|
||||
(_id), (_api_message_queue_mp_support), CORE_MESSAGE_QUEUE_URGENT_REQUEST )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Copy_buffer
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Copy_buffer( _source, _destination, _size ) \
|
||||
memcpy( _destination, _source, _size)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Allocate_message_buffer( _the_message_queue ) \
|
||||
(CORE_message_queue_Buffer_control *) \
|
||||
_Chain_Get( &(_the_message_queue)->Inactive_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Free_message_buffer( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( \
|
||||
&(_the_message_queue)->Inactive_messages, \
|
||||
&(_the_message)->Node \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Is_priority( _the_attribute ) \
|
||||
((_the_attribute)->discipline == CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Get_pending_message( _the_message_queue ) \
|
||||
(CORE_message_queue_Buffer_control *) \
|
||||
_Chain_Get_unprotected( &(_the_message_queue)->Pending_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Append( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Prepend( _the_message_queue, _the_message ) \
|
||||
_Chain_Prepend( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Is_null( _the_message_queue ) \
|
||||
( (_the_message_queue) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -0,0 +1,121 @@
|
||||
/* coremsg.inl
|
||||
*
|
||||
* This include file contains the macro implementation of all
|
||||
* inlined routines in the Core Message Handler.
|
||||
*
|
||||
* COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
* All rights assigned to U.S. Government, 1994.
|
||||
*
|
||||
* This material may be reproduced by or for the U.S. Government pursuant
|
||||
* to the copyright license under the clause at DFARS 252.227-7013. This
|
||||
* notice must appear in all copies of this file and its derivatives.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __CORE_MESSAGE_QUEUE_inl
|
||||
#define __CORE_MESSAGE_QUEUE_inl
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Send
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Send( _the_message_queue, _buffer, _size, \
|
||||
_id, _api_message_queue_mp_support ) \
|
||||
_CORE_message_queue_Submit( (_the_message_queue), (_buffer), (_size), \
|
||||
(_id), (_api_message_queue_mp_support), CORE_MESSAGE_QUEUE_SEND_REQUEST )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Urgent
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Urgent( _the_message_queue, _buffer, _size, \
|
||||
_id, _api_message_queue_mp_support ) \
|
||||
_CORE_message_queue_Submit( (_the_message_queue), (_buffer), (_size), \
|
||||
(_id), (_api_message_queue_mp_support), CORE_MESSAGE_QUEUE_URGENT_REQUEST )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Copy_buffer
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Copy_buffer( _source, _destination, _size ) \
|
||||
memcpy( _destination, _source, _size)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Allocate_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Allocate_message_buffer( _the_message_queue ) \
|
||||
(CORE_message_queue_Buffer_control *) \
|
||||
_Chain_Get( &(_the_message_queue)->Inactive_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Free_message_buffer
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Free_message_buffer( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( \
|
||||
&(_the_message_queue)->Inactive_messages, \
|
||||
&(_the_message)->Node \
|
||||
)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_priority
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Is_priority( _the_attribute ) \
|
||||
((_the_attribute)->discipline == CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY)
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Get_pending_message
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Get_pending_message( _the_message_queue ) \
|
||||
(CORE_message_queue_Buffer_control *) \
|
||||
_Chain_Get_unprotected( &(_the_message_queue)->Pending_messages )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Append
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Append( _the_message_queue, _the_message ) \
|
||||
_Chain_Append( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Prepend
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Prepend( _the_message_queue, _the_message ) \
|
||||
_Chain_Prepend( &(_the_message_queue)->Pending_messages, \
|
||||
&(_the_message)->Node )
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CORE_message_queue_Is_null
|
||||
*
|
||||
*/
|
||||
|
||||
#define _CORE_message_queue_Is_null( _the_message_queue ) \
|
||||
( (_the_message_queue) == NULL )
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
File diff suppressed because it is too large.
Load diff
@@ -29,6 +29,7 @@
|
||||
#include <rtems.h>
|
||||
#include <bsp.h>
|
||||
#include <rtems/libio.h>
|
||||
#include <rtems/core/intthrd.h>
|
||||
|
||||
#include <libcsupport.h>
|
||||
|
||||
@@ -85,9 +86,9 @@ fast_idle_switch_hook(rtems_tcb *current_task,
|
||||
* but its the best we could think of at the moment.
|
||||
*/
|
||||
|
||||
if (heir_task->name == rtems_build_name('I', 'D', 'L', 'E'))
|
||||
if (heir_task == _Internal_threads_Idle_thread)
|
||||
CPU_HPPA_CLICKS_PER_TICK = fast_clock;
|
||||
else if (current_task->name == rtems_build_name('I', 'D', 'L', 'E'))
|
||||
else if (heir_task == _Internal_threads_Idle_thread)
|
||||
CPU_HPPA_CLICKS_PER_TICK = normal_clock;
|
||||
}
|
||||
|
||||
@@ -211,7 +212,7 @@ bsp_pretasking_hook(void)
|
||||
|
||||
memset(&fast_idle_extension, 0, sizeof(fast_idle_extension));
|
||||
|
||||
fast_idle_extension.task_switch = fast_idle_switch_hook;
|
||||
fast_idle_extension.thread_switch = fast_idle_switch_hook;
|
||||
|
||||
rc = rtems_extension_create(rtems_build_name('F', 'D', 'L', 'E'),
|
||||
&fast_idle_extension, &extension_id);
|
||||
|
||||
@@ -266,7 +266,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -74,16 +74,41 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -135,9 +160,9 @@ int main(
|
||||
* we do not use the pretasking_hook.
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -237,7 +237,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -81,17 +81,42 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
* and open stdin, stdout, stderr files
|
||||
@@ -138,8 +163,8 @@ int main(
|
||||
else
|
||||
rtems_progname = "RTEMS";
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
Cpu_table.idle_task = NULL; /* do not override system IDLE task */
|
||||
Cpu_table.do_zero_of_workspace = TRUE;
|
||||
|
||||
@@ -192,7 +192,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -76,14 +76,41 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -152,9 +179,9 @@ int main(
|
||||
* we do not use the pretasking_hook.
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -230,7 +230,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -75,15 +75,41 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -158,9 +184,9 @@ int main(
|
||||
* we only use a hook to get the C library initialized.
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -285,7 +285,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -82,15 +82,41 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -192,9 +218,9 @@ int main(
|
||||
* we do not use the pretasking_hook
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -265,7 +265,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ], minor );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -83,14 +83,39 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
*/
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -166,12 +191,12 @@ int main(
|
||||
* we only use a hook to get the C library initialized.
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
Cpu_table.idle_task = NULL; /* do not override system IDLE task */
|
||||
|
||||
Cpu_table.do_zero_of_workspace = TRUE;
|
||||
|
||||
@@ -205,7 +205,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -54,10 +54,6 @@ void bsp_libc_init()
|
||||
extern int end;
|
||||
rtems_unsigned32 heap_start;
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
|
||||
heap_start = (rtems_unsigned32) &end;
|
||||
if (heap_start & (CPU_ALIGNMENT-1))
|
||||
heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
|
||||
@@ -80,15 +76,41 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -152,9 +174,9 @@ int main(
|
||||
* we only use a hook to get the C library initialized.
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -237,7 +237,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ], minor );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -82,15 +82,41 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -165,9 +191,9 @@ int main(
|
||||
* we only use a hook to get the C library initialized.
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -204,7 +204,9 @@ rtems_device_driver console_write(
|
||||
}
|
||||
outbyte( buffer[ count ] );
|
||||
}
|
||||
return maximum;
|
||||
|
||||
rw_args->bytes_moved = maximum;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -83,15 +83,41 @@ void bsp_libc_init()
|
||||
libc_init(1); /* reentrant if possible */
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -119,7 +145,7 @@ bsp_postdriver_hook(void)
|
||||
rtems_fatal_error_occurred('STIO');
|
||||
}
|
||||
|
||||
int main(
|
||||
int bsp_start(
|
||||
int argc,
|
||||
char **argv,
|
||||
char **environp
|
||||
@@ -196,9 +222,9 @@ int main(
|
||||
* we do not use the pretasking_hook
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -19,10 +19,11 @@
|
||||
|
||||
int main(
|
||||
int argc,
|
||||
char **argv
|
||||
char **argv,
|
||||
char **environp
|
||||
)
|
||||
{
|
||||
bsp_start();
|
||||
bsp_start( argc, argv, environp );
|
||||
|
||||
/*
|
||||
* May be able to return to the "crt/start.s" code but also
|
||||
|
||||
@@ -101,14 +101,41 @@ void bsp_libc_init()
|
||||
else
|
||||
libc_init(0); /* non-reentrant */
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* NOTES:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
bsp_pretasking_hook(void)
|
||||
{
|
||||
bsp_libc_init();
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
/*
|
||||
* Initialize the stack bounds checker
|
||||
* We can either turn it on here or from the app.
|
||||
*/
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
|
||||
Stack_check_Initialize();
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_DEBUG
|
||||
rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* After drivers are setup, register some "filenames"
|
||||
@@ -204,13 +231,9 @@ int main(
|
||||
* initialize the CPU table for this BSP
|
||||
*/
|
||||
|
||||
/*
|
||||
* we do not use the pretasking_hook
|
||||
*/
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
|
||||
Cpu_table.pretasking_hook = NULL;
|
||||
|
||||
Cpu_table.predriver_hook = bsp_libc_init; /* RTEMS resources available */
|
||||
Cpu_table.predriver_hook = NULL;
|
||||
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook;
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ rtems_monitor_id_fixup(
|
||||
#else
|
||||
#warning "TONY... FIX ME!!!!!"
|
||||
#if defined(hppa1_1)
|
||||
#error "TONY... I SAID TO FIX ME!!!!! <HAHAHAHAHA>"
|
||||
#warning "TONY... I SAID TO FIX ME!!!!! <HAHAHAHAHA>"
|
||||
#endif
|
||||
id = _Objects_Build_id(0, default_node, rtems_get_index(id));
|
||||
#endif
|
||||
|
||||
@@ -18,9 +18,9 @@ rtems_monitor_queue_canonical(
|
||||
Message_queue_Control *rtems_queue = (Message_queue_Control *) queue_void;
|
||||
|
||||
canonical_queue->attributes = rtems_queue->attribute_set;
|
||||
canonical_queue->maximum_message_size = rtems_queue->maximum_message_size;
|
||||
canonical_queue->maximum_pending_messages = rtems_queue->maximum_pending_messages;
|
||||
canonical_queue->number_of_pending_messages = rtems_queue->number_of_pending_messages;
|
||||
canonical_queue->maximum_message_size = rtems_queue->message_queue.maximum_message_size;
|
||||
canonical_queue->maximum_pending_messages = rtems_queue->message_queue.maximum_pending_messages;
|
||||
canonical_queue->number_of_pending_messages = rtems_queue->message_queue.number_of_pending_messages;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -130,7 +130,7 @@ rtems_monitor_id_fixup(
|
||||
#else
|
||||
#warning "TONY... FIX ME!!!!!"
|
||||
#if defined(hppa1_1)
|
||||
#error "TONY... I SAID TO FIX ME!!!!! <HAHAHAHAHA>"
|
||||
#warning "TONY... I SAID TO FIX ME!!!!! <HAHAHAHAHA>"
|
||||
#endif
|
||||
id = _Objects_Build_id(0, default_node, rtems_get_index(id));
|
||||
#endif
|
||||
|
||||
@@ -18,9 +18,9 @@ rtems_monitor_queue_canonical(
|
||||
Message_queue_Control *rtems_queue = (Message_queue_Control *) queue_void;
|
||||
|
||||
canonical_queue->attributes = rtems_queue->attribute_set;
|
||||
canonical_queue->maximum_message_size = rtems_queue->maximum_message_size;
|
||||
canonical_queue->maximum_pending_messages = rtems_queue->maximum_pending_messages;
|
||||
canonical_queue->number_of_pending_messages = rtems_queue->number_of_pending_messages;
|
||||
canonical_queue->maximum_message_size = rtems_queue->message_queue.maximum_message_size;
|
||||
canonical_queue->maximum_pending_messages = rtems_queue->message_queue.maximum_pending_messages;
|
||||
canonical_queue->number_of_pending_messages = rtems_queue->message_queue.number_of_pending_messages;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -53,7 +53,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
@@ -64,7 +64,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 2 ]
|
||||
@@ -75,7 +75,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -43,7 +43,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[Multiprocessing_configuration.node],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_NO_PREEMPT,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -43,7 +43,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ Multiprocessing_configuration.node ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_NO_PREEMPT,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -43,7 +43,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ Multiprocessing_configuration.node ],
|
||||
Multiprocessing_configuration.node,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -43,7 +43,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[Multiprocessing_configuration.node],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -43,7 +43,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[Multiprocessing_configuration.node],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -43,7 +43,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[Multiprocessing_configuration.node],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -57,7 +57,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ Multiprocessing_configuration.node ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -57,7 +57,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[Multiprocessing_configuration.node],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -80,7 +80,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -95,7 +95,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -110,7 +110,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -54,7 +54,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_GLOBAL,
|
||||
&junk_id
|
||||
|
||||
@@ -76,7 +76,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -91,7 +91,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
|
||||
@@ -120,7 +120,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ Multiprocessing_configuration.node ],
|
||||
2,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Event_task_id[ 1 ]
|
||||
@@ -135,7 +135,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Semaphore_task_name[ Multiprocessing_configuration.node ],
|
||||
2,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Semaphore_task_id[ 1 ]
|
||||
@@ -150,7 +150,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Queue_task_name[ Multiprocessing_configuration.node ],
|
||||
2,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Queue_task_id[ 1 ]
|
||||
@@ -166,7 +166,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Partition_task_name[ Multiprocessing_configuration.node ],
|
||||
2,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_GLOBAL,
|
||||
&Partition_task_id[ 1 ]
|
||||
|
||||
@@ -35,7 +35,7 @@ rtems_task Init(
|
||||
printf( "\n\n*** SAMPLE MULTIPROCESSOR APPLICATION ***\n" );
|
||||
printf( "Creating and starting an application task\n" );
|
||||
task_name = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
status = rtems_task_create( task_name, 1, 1024,
|
||||
status = rtems_task_create( task_name, 1, RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &tid );
|
||||
status = rtems_task_start(
|
||||
tid,
|
||||
|
||||
@@ -39,7 +39,7 @@ rtems_task Init(
|
||||
|
||||
task_name = rtems_build_name( 'T', 'A', '1', ' ' );
|
||||
|
||||
status = rtems_task_create( task_name, 1, 1024,
|
||||
status = rtems_task_create( task_name, 1, RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_INTERRUPT_LEVEL(0), RTEMS_DEFAULT_ATTRIBUTES, &tid );
|
||||
|
||||
status = rtems_task_start( tid, Application_task, ARGUMENT );
|
||||
|
||||
@@ -40,12 +40,18 @@ rtems_task Init(
|
||||
Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
|
||||
Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
|
||||
|
||||
status = rtems_task_create( Task_name[ 1 ], 1, 1024, RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 1 ] );
|
||||
status = rtems_task_create( Task_name[ 2 ], 1, 1024, RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 2 ] );
|
||||
status = rtems_task_create( Task_name[ 3 ], 1, 1024, RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 3 ] );
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ], 1, RTEMS_MINIMUM_STACK_SIZE, RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 1 ]
|
||||
);
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ], 1, RTEMS_MINIMUM_STACK_SIZE, RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 2 ]
|
||||
);
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ], 1, RTEMS_MINIMUM_STACK_SIZE, RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES, &Task_id[ 3 ]
|
||||
);
|
||||
|
||||
status = rtems_task_start( Task_id[ 1 ], Test_task, 1 );
|
||||
status = rtems_task_start( Task_id[ 2 ], Test_task, 2 );
|
||||
|
||||
@@ -45,7 +45,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2 * 1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_INTERRUPT_LEVEL(31),
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -55,7 +55,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
2 * 1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -65,7 +65,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
2 * 1024,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 3,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -38,7 +38,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Preempt_task_name,
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Preempt_task_id
|
||||
@@ -59,7 +59,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
3,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -69,7 +69,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
3,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -79,7 +79,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
3,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
@@ -111,7 +111,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -121,7 +121,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
3,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -131,7 +131,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
3,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -39,7 +39,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -49,7 +49,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
|
||||
@@ -70,7 +70,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -80,7 +80,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -90,7 +90,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_TIMESLICE,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -40,7 +40,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -50,7 +50,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -60,7 +60,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -44,7 +44,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -54,7 +54,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -64,7 +64,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
10,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -62,7 +62,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -72,7 +72,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -82,7 +82,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
250,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
@@ -92,7 +92,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 4 ],
|
||||
254,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 4 ]
|
||||
|
||||
@@ -38,7 +38,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -82,7 +82,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[1],
|
||||
0,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -97,7 +97,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 3,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -30,7 +30,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
0,
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Junk_id
|
||||
@@ -60,7 +60,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -87,7 +87,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
@@ -98,7 +98,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 4 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 4 ]
|
||||
@@ -109,7 +109,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 5 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 5 ]
|
||||
@@ -120,7 +120,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 6 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 6 ]
|
||||
@@ -131,7 +131,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 7 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 7 ]
|
||||
@@ -142,7 +142,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 8 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 8 ]
|
||||
@@ -153,7 +153,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 9 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 9 ]
|
||||
@@ -164,7 +164,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
Task_name[ 10 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 10 ]
|
||||
@@ -175,7 +175,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
task_name,
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Junk_id
|
||||
@@ -190,7 +190,7 @@ void Screen3()
|
||||
status = rtems_task_create(
|
||||
task_name,
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_GLOBAL,
|
||||
&Junk_id
|
||||
|
||||
@@ -39,7 +39,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -49,7 +49,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
|
||||
@@ -138,7 +138,7 @@ pause();
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -148,7 +148,7 @@ pause();
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -158,7 +158,7 @@ pause();
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -47,7 +47,7 @@ void Priority_test_driver(
|
||||
status = rtems_task_create(
|
||||
Priority_task_name[ index ],
|
||||
Task_priority[ index ],
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Priority_task_id[ index ]
|
||||
|
||||
@@ -100,7 +100,7 @@ pause();
|
||||
status = rtems_task_create(
|
||||
Task_name[ 4 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 4 ]
|
||||
@@ -110,7 +110,7 @@ pause();
|
||||
status = rtems_task_create(
|
||||
Task_name[ 5 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 5 ]
|
||||
|
||||
@@ -40,7 +40,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 2,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -50,7 +50,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -60,7 +60,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -39,7 +39,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -49,7 +49,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
|
||||
@@ -41,7 +41,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
4,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -42,7 +42,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
BASE_PRIORITY,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -52,7 +52,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
BASE_PRIORITY,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -62,7 +62,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
BASE_PRIORITY,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
|
||||
@@ -128,7 +128,7 @@ pause();
|
||||
status = rtems_task_create(
|
||||
Task_name[ 4 ],
|
||||
BASE_PRIORITY,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 4 ]
|
||||
@@ -138,7 +138,7 @@ pause();
|
||||
status = rtems_task_create(
|
||||
Task_name[ 5 ],
|
||||
BASE_PRIORITY,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 5 ]
|
||||
|
||||
@@ -41,7 +41,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
2,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
@@ -54,7 +54,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
|
||||
@@ -43,7 +43,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
2,
|
||||
8192,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 4,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_FLOATING_POINT,
|
||||
&Task_id[ 1 ]
|
||||
@@ -53,7 +53,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 2 ],
|
||||
2,
|
||||
8192,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 4,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 2 ]
|
||||
@@ -63,7 +63,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 3 ],
|
||||
2,
|
||||
8192,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 4,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 3 ]
|
||||
@@ -73,7 +73,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 4 ],
|
||||
2,
|
||||
8192,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 4,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_FLOATING_POINT,
|
||||
&Task_id[ 4 ]
|
||||
@@ -83,7 +83,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 5 ],
|
||||
2,
|
||||
8192,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 4,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_FLOATING_POINT,
|
||||
&Task_id[ 5 ]
|
||||
@@ -93,7 +93,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 6 ],
|
||||
1,
|
||||
8192,
|
||||
RTEMS_MINIMUM_STACK_SIZE * 4,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_FLOATING_POINT,
|
||||
&Task_id[ 6 ]
|
||||
|
||||
@@ -44,7 +44,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ index ],
|
||||
Priorities[ index ],
|
||||
4096,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ index ]
|
||||
|
||||
@@ -38,7 +38,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -45,7 +45,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -38,7 +38,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -52,7 +52,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ index ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ index ]
|
||||
|
||||
@@ -38,7 +38,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
BASE_PRIORITY,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
@@ -36,7 +36,7 @@ rtems_task Init(
|
||||
status = rtems_task_create(
|
||||
Task_name[ 1 ],
|
||||
1,
|
||||
2048,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&Task_id[ 1 ]
|
||||
|
||||
Loaded 100 of 228 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user