1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include "PeriodicCounterSelectionResponseHandler.hpp"
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include <common/include/CommonProfilingUtils.hpp>
9*89c4ff92SAndroid Build Coastguard Worker 
10*89c4ff92SAndroid Build Coastguard Worker #include <iostream>
11*89c4ff92SAndroid Build Coastguard Worker 
12*89c4ff92SAndroid Build Coastguard Worker namespace armnn
13*89c4ff92SAndroid Build Coastguard Worker {
14*89c4ff92SAndroid Build Coastguard Worker 
15*89c4ff92SAndroid Build Coastguard Worker namespace gatordmock
16*89c4ff92SAndroid Build Coastguard Worker {
17*89c4ff92SAndroid Build Coastguard Worker 
operator ()(const arm::pipe::Packet & packet)18*89c4ff92SAndroid Build Coastguard Worker void PeriodicCounterSelectionResponseHandler::operator()(const arm::pipe::Packet& packet)
19*89c4ff92SAndroid Build Coastguard Worker {
20*89c4ff92SAndroid Build Coastguard Worker     if (!m_QuietOperation)    // Are we supposed to print to stdout?
21*89c4ff92SAndroid Build Coastguard Worker     {
22*89c4ff92SAndroid Build Coastguard Worker         uint32_t period = arm::pipe::ReadUint32(reinterpret_cast<const unsigned char*>(packet.GetData()), 0);
23*89c4ff92SAndroid Build Coastguard Worker         uint32_t numCounters = 0;
24*89c4ff92SAndroid Build Coastguard Worker         // First check if there are any counters mentioned.
25*89c4ff92SAndroid Build Coastguard Worker         if(packet.GetLength() > 4)
26*89c4ff92SAndroid Build Coastguard Worker         {
27*89c4ff92SAndroid Build Coastguard Worker             // Length will be 4 bytes for the period and then a list of 16 bit UIDS.
28*89c4ff92SAndroid Build Coastguard Worker             numCounters = ((packet.GetLength() - 4) / 2);
29*89c4ff92SAndroid Build Coastguard Worker         }
30*89c4ff92SAndroid Build Coastguard Worker         std::cout << "PeriodicCounterSelectionResponse: Collection interval = " << std::dec << period << "uSec"
31*89c4ff92SAndroid Build Coastguard Worker                   << " Num counters activated = " << numCounters << std::endl;
32*89c4ff92SAndroid Build Coastguard Worker     }
33*89c4ff92SAndroid Build Coastguard Worker }
34*89c4ff92SAndroid Build Coastguard Worker 
35*89c4ff92SAndroid Build Coastguard Worker }    // namespace gatordmock
36*89c4ff92SAndroid Build Coastguard Worker 
37*89c4ff92SAndroid Build Coastguard Worker }    // namespace armnn