Index: NVMsgQ.c =================================================================== diff -u -rebf3ea1b1f09cb5a21abde6f6106c9213df5afff -rcfda869b0370c1444bcc16e91f6e3a42bb4d1f03 --- NVMsgQ.c (.../NVMsgQ.c) (revision ebf3ea1b1f09cb5a21abde6f6106c9213df5afff) +++ NVMsgQ.c (.../NVMsgQ.c) (revision cfda869b0370c1444bcc16e91f6e3a42bb4d1f03) @@ -58,14 +58,22 @@ * @details \b Outputs: requestQueue, * requestQueueRearIndex, requestQueueCount * @param request NV message request to be queued - * @return none + * @return TRUE if the NV message request was enqueued successfully, + * FALSE if the queue is full. *************************************************************************/ -void enqueueNVMsgRequest( NVM_MSG_REQUEST_Q_T request ) +BOOL enqueueNVMsgRequest( NVM_MSG_REQUEST_Q_T request ) { - requestQueue[ requestQueueRearIndex ] = request; + BOOL status = FALSE; - requestQueueCount++; - requestQueueRearIndex = INC_WRAP( requestQueueRearIndex, 0, QUEUE_MAX_SIZE - 1 ); + if ( FALSE == isNVMsgRequestQueueFull() ) + { + requestQueue[ requestQueueRearIndex ] = request; + requestQueueCount++; + requestQueueRearIndex = INC_WRAP( requestQueueRearIndex, 0, QUEUE_MAX_SIZE - 1 ); + status = TRUE; + } + + return status; } /*********************************************************************//** @@ -77,10 +85,12 @@ * requestQueue * @details \b Outputs: requestQueueFrontIndex, requestQueueCount, * currentNVMsgRequest - * @return none + * @return TRUE if the NV message request was dequeued successfully; + * FALSE if the queue is empty. *************************************************************************/ -void dequeueNVMsgRequest( void ) +BOOL dequeueNVMsgRequest( void ) { + BOOL status = FALSE; U32 tempIndex; _disable_IRQ(); @@ -89,13 +99,16 @@ if ( FALSE == isNVMsgRequestQueueEmpty() ) { requestQueueFrontIndex = INC_WRAP( requestQueueFrontIndex, 0, QUEUE_MAX_SIZE - 1 ); - currentNVMsgRequest = requestQueue[ tempIndex ]; + currentNVMsgRequest = requestQueue[ tempIndex ]; + status = TRUE; } if ( requestQueueCount > 0 ) { requestQueueCount--; } _enable_IRQ(); + + return status; } /*********************************************************************//**