diff options
Diffstat (limited to 'cpukit/rtems/macros')
-rw-r--r-- | cpukit/rtems/macros/rtems/rtems/message.inl | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/cpukit/rtems/macros/rtems/rtems/message.inl b/cpukit/rtems/macros/rtems/rtems/message.inl index 5415708ac5..ac0b1afb3a 100644 --- a/cpukit/rtems/macros/rtems/rtems/message.inl +++ b/cpukit/rtems/macros/rtems/rtems/message.inl @@ -23,8 +23,7 @@ */ #define _Message_queue_Copy_buffer( _source, _destination ) \ - *(Message_queue_Buffer *)(_destination) = \ - *(Message_queue_Buffer *)(_source) + memcpy( _destination, _source, _size) /*PAGE * @@ -86,23 +85,24 @@ /*PAGE * - * _Message_queue_Allocate - * - */ - -#define _Message_queue_Allocate() \ - (Message_queue_Control *) \ - _Objects_Allocate( &_Message_queue_Information ) - -/*PAGE - * * _Message_queue_Free * */ #define _Message_queue_Free( _the_message_queue ) \ - _Objects_Free( &_Message_queue_Information, \ - &(_the_message_queue)->Object ) + do { \ + \ + if ( (_the_messsage_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 ) + /*PAGE * |