forked from Imagelibrary/rtems
2011-09-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1844/cpukit * rtems/include/rtems/rtems/msgmp.h: Define MESSAGE_QUEUE_MP_PACKET_SIZE. * rtems/src/msgmp.c, rtems/src/msgqcreate.c: Use MESSAGE_QUEUE_MP_PACKET_SIZE.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2011-09-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||
|
||||
PR 1844/cpukit
|
||||
* rtems/include/rtems/rtems/msgmp.h: Define
|
||||
MESSAGE_QUEUE_MP_PACKET_SIZE.
|
||||
* rtems/src/msgmp.c, rtems/src/msgqcreate.c: Use
|
||||
MESSAGE_QUEUE_MP_PACKET_SIZE.
|
||||
|
||||
2011-09-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||
|
||||
PR 1873/cpukit
|
||||
|
||||
@@ -76,6 +76,9 @@ typedef struct {
|
||||
CORE_message_queue_Buffer Buffer;
|
||||
} Message_queue_MP_Packet;
|
||||
|
||||
#define MESSAGE_QUEUE_MP_PACKET_SIZE \
|
||||
offsetof(Message_queue_MP_Packet, Buffer.buffer)
|
||||
|
||||
/**
|
||||
* @brief _Message_queue_MP_Send_process_packet
|
||||
*
|
||||
|
||||
@@ -27,9 +27,6 @@
|
||||
#include <rtems/score/watchdog.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
|
||||
#define MESSAGE_QUEUE_MP_PACKET_SIZE \
|
||||
offsetof(Message_queue_MP_Packet, Buffer.buffer)
|
||||
|
||||
RTEMS_STATIC_ASSERT(
|
||||
MESSAGE_QUEUE_MP_PACKET_SIZE <= MP_PACKET_MINIMUM_PACKET_SIZE,
|
||||
Message_queue_MP_Packet
|
||||
@@ -116,10 +113,10 @@ rtems_status_code _Message_queue_MP_Send_request_packet (
|
||||
|
||||
the_packet = _Message_queue_MP_Get_packet();
|
||||
the_packet->Prefix.the_class = MP_PACKET_MESSAGE_QUEUE;
|
||||
the_packet->Prefix.length = sizeof(Message_queue_MP_Packet);
|
||||
the_packet->Prefix.length = MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||
if ( size_p )
|
||||
the_packet->Prefix.length += *size_p;
|
||||
the_packet->Prefix.to_convert = sizeof(Message_queue_MP_Packet);
|
||||
the_packet->Prefix.to_convert = MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||
|
||||
/*
|
||||
* make sure message is not too big for our MPCI driver
|
||||
@@ -162,8 +159,8 @@ rtems_status_code _Message_queue_MP_Send_request_packet (
|
||||
|
||||
the_packet = _Message_queue_MP_Get_packet();
|
||||
the_packet->Prefix.the_class = MP_PACKET_MESSAGE_QUEUE;
|
||||
the_packet->Prefix.length = sizeof(Message_queue_MP_Packet);
|
||||
the_packet->Prefix.to_convert = sizeof(Message_queue_MP_Packet);
|
||||
the_packet->Prefix.length = MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||
the_packet->Prefix.to_convert = MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||
|
||||
if (! _Options_Is_no_wait(option_set))
|
||||
the_packet->Prefix.timeout = timeout;
|
||||
|
||||
@@ -95,7 +95,7 @@ rtems_status_code rtems_message_queue_create(
|
||||
*/
|
||||
|
||||
max_packet_payload_size = _MPCI_table->maximum_packet_size
|
||||
- sizeof ( Message_queue_MP_Packet );
|
||||
- MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||
if ( is_global && max_packet_payload_size < max_message_size )
|
||||
return RTEMS_INVALID_SIZE;
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user