blob: 0ec7d2aca4c28e3ba2b8b5a66d4b6a0657b5c5b4 [file] [log] [blame]
Aron Virginas-Tare898db92019-08-22 12:56:34 +01001//
Jim Flynnbbfe6032020-07-20 16:57:44 +01002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Aron Virginas-Tare898db92019-08-22 12:56:34 +01003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "EncodeVersion.hpp"
9
Jim Flynnbbfe6032020-07-20 16:57:44 +010010namespace arm
Aron Virginas-Tare898db92019-08-22 12:56:34 +010011{
12
Jim Flynnbbfe6032020-07-20 16:57:44 +010013namespace pipe
Aron Virginas-Tare898db92019-08-22 12:56:34 +010014{
15
Jim Flynned25e0e2019-10-18 13:21:43 +010016class PacketKey final
17{
18public:
19 PacketKey(uint32_t familyId, uint32_t packetId) : m_FamilyId(familyId), m_PacketId(packetId) {}
20
21 uint32_t GetFamilyId() { return m_FamilyId; }
22 uint32_t GetPacketId() { return m_PacketId; }
23
24 bool operator< (const PacketKey& rhs) const;
25 bool operator> (const PacketKey& rhs) const;
26 bool operator<=(const PacketKey& rhs) const;
27 bool operator>=(const PacketKey& rhs) const;
28 bool operator==(const PacketKey& rhs) const;
29 bool operator!=(const PacketKey& rhs) const;
30
31private:
32 uint32_t m_FamilyId;
33 uint32_t m_PacketId;
34};
35
Keith Davis33ed2212020-03-30 10:43:41 +010036static const PacketKey ActivateTimeLinePacket(0 , 6);
Finn Williams2ed809c2020-04-20 21:21:07 +010037static const PacketKey DeactivateTimeLinePacket(0 , 7);
Keith Davis33ed2212020-03-30 10:43:41 +010038
Aron Virginas-Tare898db92019-08-22 12:56:34 +010039class PacketVersionResolver final
40{
41public:
42 PacketVersionResolver() = default;
43 ~PacketVersionResolver() = default;
44
Jim Flynned25e0e2019-10-18 13:21:43 +010045 Version ResolvePacketVersion(uint32_t familyId, uint32_t packetId) const;
Aron Virginas-Tare898db92019-08-22 12:56:34 +010046};
47
Jim Flynnbbfe6032020-07-20 16:57:44 +010048} // namespace pipe
Aron Virginas-Tare898db92019-08-22 12:56:34 +010049
Jim Flynnbbfe6032020-07-20 16:57:44 +010050} // namespace arm