diff options
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H index 3f3f354fc..06d4bef58 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H +++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H @@ -79,40 +79,32 @@ class MemTdCtlr */ uint32_t handleCmdComplete( STEP_CODE_DATA_STRUCT & io_sc ); + /** + * @brief This only pushes a new TdEntry to the back of iv_queue. + * @post Fetch attentions must also call handleTdEvent() to trigger + * diagnostics, if not already in progress. + * @param i_entry The new TD queue entry. + */ + void pushToQueue( TdEntry * i_entry ) { iv_queue.push(i_entry); } + + #ifdef __HOSTBOOT_RUNTIME /** - * @brief Adds a new TD procedure to the queue. - * - * During runtime, this is used to process TD requests during analysis of - * attentions other than the command complete attention (i.e. memory CEs - * and UEs). If there isn't a current TD procedure in progress, this - * function will stop background scrubbing and start this new procedure. - * Otherwise, this new procedure is simply added to the queue. - * - * It is possible that some of the other attentions may occur during the IPL - * after Hostboot has been flushed from the cache to system memory. At that - * point we don't have time to complete a TD procedure. Therefore, the - * requests will be ignored. Any chip marks placed during this time will be - * redetected when the runtime TD controller is initialized. + * @brief This tells the TD controller there was a TdEntry added to the + * queue (via pushToQueue) because of a fetch attention and + * additional processing may be needed to start the next TD + * procedure. If there isn't a current TD procedure in progress, + * this function will stop background scrubbing and starts the first + * procedure in the queue. * - * During MemDiags, this will simply add a new procedure to the queue, since - * we know a TD procedure will already be in progress when this is called. + * @pre A TdEntry must be added to the queue (via pushToQueue) before + * calling this function. * * @note Initializes the TD controller, if needed. * @param io_sc The step code data struct. - * @param i_entry The new TD queue entry. * @return Non-SUCCESS if an internal function fails, SUCCESS otherwise. */ - uint32_t handleTdEvent( STEP_CODE_DATA_STRUCT & io_sc, - TdEntry * i_entry ); - - /** - * @brief Pushes a new TdEntry to the back of iv_queue. - * @param i_entry The new TD queue entry. - */ - void pushToQueue( TdEntry * i_entry ) { iv_queue.push(i_entry); } - - #ifdef __HOSTBOOT_RUNTIME + uint32_t handleTdEvent( STEP_CODE_DATA_STRUCT & io_sc ); /** * @brief Handles reset-reload or FO scenario. |