From 2a2b9304f2b0ec4c59cc457ac24e23f62e7664c6 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Sat, 11 Apr 2015 15:34:07 +0800 Subject: xgl-generate.py: add and use helpers from loader.h Add helpers to loader.h to improve readability of LoaderEntrypointsSubcommand. --- loader/loader.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'loader/loader.h') diff --git a/loader/loader.h b/loader/loader.h index 397c5d3e..d307c53e 100644 --- a/loader/loader.h +++ b/loader/loader.h @@ -36,6 +36,9 @@ #include #endif // WIN32 #include +#include +#include + #if defined(__GNUC__) && __GNUC__ >= 4 # define LOADER_EXPORT __attribute__((visibility("default"))) #elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) @@ -44,6 +47,34 @@ # define LOADER_EXPORT #endif +static inline void loader_set_data(void *obj, const void *data) +{ + *((const void **) obj) = data; +} + +static inline void *loader_get_data(const void *obj) +{ + return *((void **) obj); +} + +static inline void loader_init_data(void *obj, const void *data) +{ + assert(valid_loader_magic_value(obj) && + "Incompatible ICD, first dword must be initialized to ICD_LOADER_MAGIC. See loader/README.md for details."); + + loader_set_data(obj, data); +} + +static inline void *loader_unwrap_gpu(XGL_PHYSICAL_GPU *gpu) +{ + const XGL_BASE_LAYER_OBJECT *wrap = (const XGL_BASE_LAYER_OBJECT *) *gpu; + + *gpu = (XGL_PHYSICAL_GPU) wrap->nextObject; + + return loader_get_data(wrap->baseObject); +} + extern uint32_t loader_activate_layers(XGL_PHYSICAL_GPU gpu, const XGL_DEVICE_CREATE_INFO* pCreateInfo); #define MAX_LAYER_LIBRARIES 64 + #endif /* LOADER_H */ -- cgit v1.2.3