diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-05 13:32:39 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-05 13:32:39 +0000 |
commit | f773c0122a4412a8846764a35cccb241efa034c2 (patch) | |
tree | d5e623ff112535491866477204be4c207a07c301 /cpukit/score/src/coremsgseize.c | |
parent | 2008-08-04 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-f773c0122a4412a8846764a35cccb241efa034c2.tar.bz2 |
2008-08-04 Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtems/include/rtems/rtems/sem.h, rtems/src/semobtain.c:
Changed option set type to rtems_option.
* score/src/objectgetinfo.c: Check return value of
_Objects_API_maximum_class().
* libmisc/monitor/mon-mpci.c, libmisc/monitor/monitor.h,
rtems/include/rtems/rtems/message.h, rtems/src/msgmp.c,
rtems/src/msgqallocate.c, rtems/src/msgqbroadcast.c,
rtems/src/msgqcreate.c, rtems/src/msgqreceive.c, rtems/src/msgqsend.c,
rtems/src/msgqurgent.c, score/include/rtems/score/coremsg.h,
score/include/rtems/score/mpci.h, score/include/rtems/score/thread.h,
score/inline/rtems/score/coremsg.inl, score/src/coremsg.c,
score/src/coremsgbroadcast.c, score/src/coremsgseize.c,
score/src/coremsgsubmit.c:
Removed parameters of _Message_queue_Allocate(). Changed option set
type to rtems_option. Changed type of maximum message and packet size
to size_t. Changed the input buffer type for message send functions to
"const void *". Changed the pointer to the second return argument in
the thread wait information to a union. This union can contain a
pointer to an immutable or a mutable object. This is somewhat fragile.
An alternative would be to add a third pointer for immutable objects,
but this would increase the structure size.
Diffstat (limited to 'cpukit/score/src/coremsgseize.c')
-rw-r--r-- | cpukit/score/src/coremsgseize.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/cpukit/score/src/coremsgseize.c b/cpukit/score/src/coremsgseize.c index 010f201b78..48c4d7ecb4 100644 --- a/cpukit/score/src/coremsgseize.c +++ b/cpukit/score/src/coremsgseize.c @@ -46,7 +46,7 @@ * the_message_queue - pointer to message queue * id - id of object we are waitig on * buffer - pointer to message buffer to be filled - * size - pointer to the size of buffer to be filled + * size_p - pointer to the size of buffer to be filled * wait - TRUE if wait is allowed, FALSE otherwise * timeout - time to wait for a message * @@ -63,7 +63,7 @@ void _CORE_message_queue_Seize( CORE_message_queue_Control *the_message_queue, Objects_Id id, void *buffer, - size_t *size, + size_t *size_p, boolean wait, Watchdog_Interval timeout ) @@ -81,9 +81,9 @@ void _CORE_message_queue_Seize( the_message_queue->number_of_pending_messages -= 1; _ISR_Enable( level ); - *size = the_message->Contents.size; + *size_p = the_message->Contents.size; _Thread_Executing->Wait.count = the_message->priority; - _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size); + _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size_p); /* * There could be a thread waiting to send a message. If there @@ -106,9 +106,9 @@ void _CORE_message_queue_Seize( */ the_message->priority = the_thread->Wait.count; - the_message->Contents.size = (uint32_t)the_thread->Wait.option; + the_message->Contents.size = (size_t) the_thread->Wait.option; _CORE_message_queue_Copy_buffer( - the_thread->Wait.return_argument, + the_thread->Wait.return_argument_second.immutable_object, the_message->Contents.buffer, the_message->Contents.size ); @@ -128,10 +128,10 @@ void _CORE_message_queue_Seize( } _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue ); - executing->Wait.queue = &the_message_queue->Wait_queue; - executing->Wait.id = id; - executing->Wait.return_argument = buffer; - executing->Wait.return_argument_1 = (void *)size; + executing->Wait.queue = &the_message_queue->Wait_queue; + executing->Wait.id = id; + executing->Wait.return_argument_second.mutable_object = buffer; + executing->Wait.return_argument = size_p; /* Wait.count will be filled in with the message priority */ _ISR_Enable( level ); |