From 5d883bda7458b70ff63d28cf51e102e194558e84 Mon Sep 17 00:00:00 2001
From: Pascal Bauer <pascal.bauer@rwth-aachen.de>
Date: Fri, 20 Sep 2024 17:13:25 +0200
Subject: [PATCH] platform intc

---
 .../include/villas/fpga/ips/platform_intc.hpp | 22 +++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 fpga/include/villas/fpga/ips/platform_intc.hpp

diff --git a/fpga/include/villas/fpga/ips/platform_intc.hpp b/fpga/include/villas/fpga/ips/platform_intc.hpp
new file mode 100644
index 000000000..e24bfd67f
--- /dev/null
+++ b/fpga/include/villas/fpga/ips/platform_intc.hpp
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <villas/fpga/ips/intc.hpp>
+#include <villas/kernel/vfio_device.hpp>
+
+class PlatformInterruptController
+    : public villas::fpga::ip::InterruptController {
+public:
+  PlatformInterruptController(
+      std::shared_ptr<villas::kernel::vfio::Device> vfioDevice) {
+    //TODO: efds
+    this->num_irqs = vfioDevice->platformInterruptInit(efds);
+  }
+
+  bool enableInterrupt(IrqMaskType mask, bool polling) override {
+    for (int i = 0; i < num_irqs; i++) {
+      if (mask & (1 << i))
+        this->polling[i] = polling;
+    }
+    return true;
+  }
+};
\ No newline at end of file