diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-07-31 19:01:42 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-07-31 19:01:42 +0000 |
commit | e7d8b5882699d0a44ab51c5547bbcd6b21d96b52 (patch) | |
tree | f2e77cb206d68ee1d74d3c32c5ef174c58a0c902 /cpukit/rtems/src/msgmp.c | |
parent | Added comment to indicate what the commented out C_PIECES indicated. (diff) | |
download | rtems-e7d8b5882699d0a44ab51c5547bbcd6b21d96b52.tar.bz2 |
Added rtems_message_queue_get_number_pending directive.
Diffstat (limited to '')
-rw-r--r-- | cpukit/rtems/src/msgmp.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/cpukit/rtems/src/msgmp.c b/cpukit/rtems/src/msgmp.c index 2168b9db7d..b7ded2cf30 100644 --- a/cpukit/rtems/src/msgmp.c +++ b/cpukit/rtems/src/msgmp.c @@ -73,6 +73,8 @@ void _Message_queue_MP_Send_process_packet ( case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: case MESSAGE_QUEUE_MP_FLUSH_REQUEST: case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_REQUEST: + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE: break; } @@ -101,6 +103,7 @@ rtems_status_code _Message_queue_MP_Send_request_packet ( case MESSAGE_QUEUE_MP_URGENT_REQUEST: case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: case MESSAGE_QUEUE_MP_FLUSH_REQUEST: + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_REQUEST: the_packet = _Message_queue_MP_Get_packet(); the_packet->Prefix.the_class = MP_PACKET_MESSAGE_QUEUE; @@ -120,7 +123,7 @@ rtems_status_code _Message_queue_MP_Send_request_packet ( return RTEMS_INVALID_SIZE; } - if ( ! _Options_Is_no_wait(option_set)) + if (! _Options_Is_no_wait(option_set)) the_packet->Prefix.timeout = timeout; the_packet->operation = operation; @@ -154,7 +157,7 @@ rtems_status_code _Message_queue_MP_Send_request_packet ( the_packet->Prefix.length = sizeof(Message_queue_MP_Packet); the_packet->Prefix.to_convert = sizeof(Message_queue_MP_Packet); - if ( ! _Options_Is_no_wait(option_set)) + if (! _Options_Is_no_wait(option_set)) the_packet->Prefix.timeout = timeout; the_packet->operation = MESSAGE_QUEUE_MP_RECEIVE_REQUEST; @@ -180,6 +183,7 @@ rtems_status_code _Message_queue_MP_Send_request_packet ( case MESSAGE_QUEUE_MP_URGENT_RESPONSE: case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE: break; } @@ -207,6 +211,7 @@ void _Message_queue_MP_Send_response_packet ( case MESSAGE_QUEUE_MP_URGENT_RESPONSE: case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE: the_packet = ( Message_queue_MP_Packet *) the_thread->receive_packet; @@ -237,6 +242,7 @@ void _Message_queue_MP_Send_response_packet ( case MESSAGE_QUEUE_MP_URGENT_REQUEST: case MESSAGE_QUEUE_MP_BROADCAST_REQUEST: case MESSAGE_QUEUE_MP_FLUSH_REQUEST: + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_REQUEST: break; } @@ -284,7 +290,7 @@ void _Message_queue_MP_Process_packet ( the_thread = _Thread_MP_Find_proxy( the_packet->proxy_id ); - if ( ! _Thread_Is_null( the_thread ) ) + if (! _Thread_Is_null( the_thread ) ) _Thread_queue_Extract( the_thread->Wait.queue, the_thread ); _MPCI_Return_packet( the_packet_prefix ); @@ -300,7 +306,7 @@ void _Message_queue_MP_Process_packet ( the_packet->Prefix.timeout ); - if ( ! _Thread_Is_proxy_blocking( the_packet->Prefix.return_code ) ) + if (! _Thread_Is_proxy_blocking( the_packet->Prefix.return_code ) ) _Message_queue_MP_Send_response_packet( MESSAGE_QUEUE_MP_RECEIVE_RESPONSE, the_packet->Prefix.id, @@ -382,6 +388,7 @@ void _Message_queue_MP_Process_packet ( case MESSAGE_QUEUE_MP_BROADCAST_RESPONSE: case MESSAGE_QUEUE_MP_FLUSH_RESPONSE: + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE: the_thread = _MPCI_Process_response( the_packet_prefix ); @@ -404,6 +411,20 @@ void _Message_queue_MP_Process_packet ( ); break; + case MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_REQUEST: + + the_packet->Prefix.return_code = rtems_message_queue_get_number_pending( + the_packet->Prefix.id, + &the_packet->count + ); + + _Message_queue_MP_Send_response_packet( + MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE, + the_packet->Prefix.id, + _Thread_Executing + ); + break; + } } |