/* Interface for Linux/Unix devices. * * Author: Pascal Bauer * * SPDX-FileCopyrightText: 2023-2024 Pascal Bauer * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include #include namespace villas { namespace kernel { namespace devices { class Device { public: virtual ~Device() {}; virtual std::optional> driver() const = 0; virtual std::optional iommu_group() const = 0; virtual std::string name() const = 0; virtual std::filesystem::path override_path() const = 0; virtual std::filesystem::path path() const = 0; virtual void probe() const = 0; }; } // namespace devices } // namespace kernel } // namespace villas