| /* |
| * Copyright © 2021 Collabora, Ltd. |
| * Author: Antonio Caggiano <antonio.caggiano@collabora.com> |
| * |
| * SPDX-License-Identifier: MIT |
| */ |
| |
| #pragma once |
| |
| struct panfrost_device; |
| struct panfrost_perf; |
| |
| namespace pps |
| { |
| class PanfrostDevice |
| { |
| public: |
| PanfrostDevice(int fd); |
| ~PanfrostDevice(); |
| |
| PanfrostDevice(const PanfrostDevice &) = delete; |
| PanfrostDevice &operator=(const PanfrostDevice &) = delete; |
| |
| PanfrostDevice(PanfrostDevice&&); |
| PanfrostDevice& operator=(PanfrostDevice&&); |
| |
| void *ctx = nullptr; |
| struct panfrost_device* dev = nullptr; |
| }; |
| |
| class PanfrostPerf |
| { |
| public: |
| PanfrostPerf(const PanfrostDevice& dev); |
| ~PanfrostPerf(); |
| |
| PanfrostPerf(const PanfrostPerf &) = delete; |
| PanfrostPerf &operator=(const PanfrostPerf &) = delete; |
| |
| PanfrostPerf(PanfrostPerf&&); |
| PanfrostPerf& operator=(PanfrostPerf&&); |
| |
| int enable() const; |
| void disable() const; |
| int dump() const; |
| |
| struct panfrost_perf *perf = nullptr; |
| }; |
| |
| } // namespace pps |