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>
|
2011-09-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||||
|
|
||||||
PR 1873/cpukit
|
PR 1873/cpukit
|
||||||
|
|||||||
@@ -76,6 +76,9 @@ typedef struct {
|
|||||||
CORE_message_queue_Buffer Buffer;
|
CORE_message_queue_Buffer Buffer;
|
||||||
} Message_queue_MP_Packet;
|
} Message_queue_MP_Packet;
|
||||||
|
|
||||||
|
#define MESSAGE_QUEUE_MP_PACKET_SIZE \
|
||||||
|
offsetof(Message_queue_MP_Packet, Buffer.buffer)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief _Message_queue_MP_Send_process_packet
|
* @brief _Message_queue_MP_Send_process_packet
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -27,9 +27,6 @@
|
|||||||
#include <rtems/score/watchdog.h>
|
#include <rtems/score/watchdog.h>
|
||||||
#include <rtems/rtems/support.h>
|
#include <rtems/rtems/support.h>
|
||||||
|
|
||||||
#define MESSAGE_QUEUE_MP_PACKET_SIZE \
|
|
||||||
offsetof(Message_queue_MP_Packet, Buffer.buffer)
|
|
||||||
|
|
||||||
RTEMS_STATIC_ASSERT(
|
RTEMS_STATIC_ASSERT(
|
||||||
MESSAGE_QUEUE_MP_PACKET_SIZE <= MP_PACKET_MINIMUM_PACKET_SIZE,
|
MESSAGE_QUEUE_MP_PACKET_SIZE <= MP_PACKET_MINIMUM_PACKET_SIZE,
|
||||||
Message_queue_MP_Packet
|
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 = _Message_queue_MP_Get_packet();
|
||||||
the_packet->Prefix.the_class = MP_PACKET_MESSAGE_QUEUE;
|
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 )
|
if ( size_p )
|
||||||
the_packet->Prefix.length += *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
|
* 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 = _Message_queue_MP_Get_packet();
|
||||||
the_packet->Prefix.the_class = MP_PACKET_MESSAGE_QUEUE;
|
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;
|
||||||
the_packet->Prefix.to_convert = sizeof(Message_queue_MP_Packet);
|
the_packet->Prefix.to_convert = MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||||
|
|
||||||
if (! _Options_Is_no_wait(option_set))
|
if (! _Options_Is_no_wait(option_set))
|
||||||
the_packet->Prefix.timeout = timeout;
|
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
|
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 )
|
if ( is_global && max_packet_payload_size < max_message_size )
|
||||||
return RTEMS_INVALID_SIZE;
|
return RTEMS_INVALID_SIZE;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user