Moved header files from include to include/vulkan
authorDavid Pinedo <david@lunarg.com>
Fri, 6 Nov 2015 19:54:48 +0000 (12:54 -0700)
committerMark Lobodzinski <mark@lunarg.com>
Fri, 4 May 2018 15:23:47 +0000 (09:23 -0600)
include/vulkan/vk_icd.h [new file with mode: 0644]

diff --git a/include/vulkan/vk_icd.h b/include/vulkan/vk_icd.h
new file mode 100644 (file)
index 0000000..634d653
--- /dev/null
@@ -0,0 +1,33 @@
+#ifndef VKICD_H
+#define VKICD_H
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "vk_platform.h"
+#include "vk_sdk_platform.h"
+
+/*
+ * The ICD must reserve space for a pointer for the loader's dispatch
+ * table, at the start of <each object>.
+ * The ICD must initialize this variable using the SET_LOADER_MAGIC_VALUE macro.
+ */
+
+#define ICD_LOADER_MAGIC   0x01CDC0DE
+
+typedef union _VK_LOADER_DATA {
+  uintptr_t loaderMagic;
+  void *loaderData;
+} VK_LOADER_DATA;
+
+static inline void set_loader_magic_value(void* pNewObject) {
+    VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *) pNewObject;
+    loader_info->loaderMagic = ICD_LOADER_MAGIC;
+}
+
+static inline bool valid_loader_magic_value(void* pNewObject) {
+    const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *) pNewObject;
+    return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC;
+}
+
+#endif // VKICD_H
+