blob: 826ee1f10d6d9ff11c00b4350a9d88624b6b89f1 [file] [log] [blame]
Finn Williamse63a0262019-10-22 10:30:49 +01001//
Jim Flynnbbfe6032020-07-20 16:57:44 +01002// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
Finn Williamse63a0262019-10-22 10:30:49 +01003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Finn Williams0c8cb992020-05-07 10:38:15 +01008#include "TimelineCaptureCommandHandler.hpp"
Finn Williamse6a2ccd2020-02-27 16:21:41 +00009
Jim Flynnbbfe6032020-07-20 16:57:44 +010010#include <common/include/SwTrace.hpp>
Finn Williamse63a0262019-10-22 10:30:49 +010011
Jim Flynnbbfe6032020-07-20 16:57:44 +010012namespace arm
Finn Williamse63a0262019-10-22 10:30:49 +010013{
14
Jim Flynnbbfe6032020-07-20 16:57:44 +010015namespace pipe
Finn Williamse63a0262019-10-22 10:30:49 +010016{
17
Jim Flynnbbfe6032020-07-20 16:57:44 +010018class TimelineDirectoryCaptureCommandHandler : public arm::pipe::CommandHandlerFunctor
Finn Williamse63a0262019-10-22 10:30:49 +010019{
20 // Utils
Matteo Martincigh34a407d2019-11-06 15:30:54 +000021 uint32_t uint8_t_size = sizeof(uint8_t);
Finn Williamse63a0262019-10-22 10:30:49 +010022 uint32_t uint32_t_size = sizeof(uint32_t);
23
24public:
25 TimelineDirectoryCaptureCommandHandler(uint32_t familyId,
26 uint32_t packetId,
27 uint32_t version,
Finn Williamse6a2ccd2020-02-27 16:21:41 +000028 TimelineCaptureCommandHandler& timelineCaptureCommandHandler,
Finn Williamse63a0262019-10-22 10:30:49 +010029 bool quietOperation = false)
Matteo Martincigh34a407d2019-11-06 15:30:54 +000030 : CommandHandlerFunctor(familyId, packetId, version)
Finn Williamse6a2ccd2020-02-27 16:21:41 +000031 , m_TimelineCaptureCommandHandler(timelineCaptureCommandHandler)
Matteo Martincigh34a407d2019-11-06 15:30:54 +000032 , m_QuietOperation(quietOperation)
Finn Williamse63a0262019-10-22 10:30:49 +010033 {}
34
Jim Flynnbbfe6032020-07-20 16:57:44 +010035 void operator()(const arm::pipe::Packet& packet) override;
Finn Williamse63a0262019-10-22 10:30:49 +010036
Jim Flynnbbfe6032020-07-20 16:57:44 +010037 arm::pipe::SwTraceHeader m_SwTraceHeader;
38 std::vector<arm::pipe::SwTraceMessage> m_SwTraceMessages;
Finn Williamse63a0262019-10-22 10:30:49 +010039
40private:
Jim Flynnbbfe6032020-07-20 16:57:44 +010041 void ParseData(const arm::pipe::Packet& packet);
Finn Williamse63a0262019-10-22 10:30:49 +010042 void Print();
43
Finn Williamse6a2ccd2020-02-27 16:21:41 +000044 TimelineCaptureCommandHandler& m_TimelineCaptureCommandHandler;
Finn Williamse63a0262019-10-22 10:30:49 +010045 bool m_QuietOperation;
46};
47
Jim Flynnbbfe6032020-07-20 16:57:44 +010048} //namespace pipe
Finn Williamse63a0262019-10-22 10:30:49 +010049
Jim Flynnbbfe6032020-07-20 16:57:44 +010050} //namespace arm