Version 3.0.23.01.25
[clinfo] / src / info_loc.h
1 #ifndef INFO_LOC_H
2 #define INFO_LOC_H
3
4 #include "ext.h"
5
6 struct info_loc {
7         const char *function;
8         const char *sname; // parameter symbolic name
9         const char *pname; // parameter printable name
10         size_t line;
11         cl_platform_id plat;
12         cl_device_id dev;
13         union {
14                 cl_platform_info plat;
15                 cl_device_info dev;
16                 cl_icdl_info icdl;
17         } param;
18 };
19
20 static inline void reset_loc(struct info_loc *loc, const char *func)
21 {
22         loc->function = func;
23         loc->sname = loc->pname = NULL;
24         loc->line = 0;
25         loc->plat = NULL;
26         loc->dev = NULL;
27         loc->param.plat = 0;
28 }
29
30 #define RESET_LOC_PARAM(_loc, _dev, _param) do { \
31         _loc.param._dev = _param; \
32         _loc.sname = #_param; \
33 } while (0)
34
35 #endif