blob: b7916a86d368706444a85603975d22e1ed374e35 [file] [log] [blame]
Courtney Goeltzenleuchter89e99e62015-04-08 18:04:29 -06001#ifndef VKICD_H
2#define VKICD_H
3
4#include <stdint.h>
5#include <stdbool.h>
6#include "vkPlatform.h"
7
8/*
9 * The ICD must reserve space for a pointer for the loader's dispatch
10 * table, at the start of <each object>.
11 * The ICD must initialize this variable using the SET_LOADER_MAGIC_VALUE macro.
12 */
13
14#define ICD_LOADER_MAGIC 0x01CDC0DE
15
16typedef union _VK_LOADER_DATA {
17 uint32_t loaderMagic;
18 void *loaderData;
19} VK_LOADER_DATA;
20
21static inline void set_loader_magic_value(void *pNewObject) {
22 VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *) pNewObject;
23 loader_info->loaderMagic = ICD_LOADER_MAGIC;
24}
25
26static inline bool valid_loader_magic_value(void *pNewObject) {
27 const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *) pNewObject;
28 return loader_info->loaderMagic == ICD_LOADER_MAGIC;
29}
30
31#endif // VKICD_H
32