summaryrefslogtreecommitdiff
path: root/kms++/inc
diff options
context:
space:
mode:
Diffstat (limited to 'kms++/inc')
-rw-r--r--kms++/inc/kms++/kms++.h1
-rw-r--r--kms++/inc/kms++/swsync.h39
2 files changed, 40 insertions, 0 deletions
diff --git a/kms++/inc/kms++/kms++.h b/kms++/inc/kms++/kms++.h
index 6fc6977..f15c916 100644
--- a/kms++/inc/kms++/kms++.h
+++ b/kms++/inc/kms++/kms++.h
@@ -14,3 +14,4 @@
#include "blob.h"
#include "pipeline.h"
#include "pagefliphandler.h"
+#include "swsync.h"
diff --git a/kms++/inc/kms++/swsync.h b/kms++/inc/kms++/swsync.h
new file mode 100644
index 0000000..04b1596
--- /dev/null
+++ b/kms++/inc/kms++/swsync.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <cstdint>
+
+namespace kms
+{
+
+class SWSync;
+
+class SWSyncTimeline
+{
+public:
+ SWSyncTimeline();
+ ~SWSyncTimeline();
+
+ SWSync *createFence(uint32_t value);
+ void signal(uint32_t value);
+ uint32_t value() const { return m_value; };
+
+private:
+ int m_fd;
+ uint32_t m_value;
+};
+
+class SWSync
+{
+public:
+ ~SWSync();
+
+ int fd() { return m_fd; };
+
+private:
+ friend SWSyncTimeline;
+ SWSync(int fd);
+
+ int m_fd;
+};
+
+}