summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/coremsgseize.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-08-05 13:32:39 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-08-05 13:32:39 +0000
commitf773c0122a4412a8846764a35cccb241efa034c2 (patch)
treed5e623ff112535491866477204be4c207a07c301 /cpukit/score/src/coremsgseize.c
parent2008-08-04 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-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.c20
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 );