1 #include <CL/cl.h>
2 #include "param_struct.h"
3 #include <platform/icd_test_log.h>
4
5 extern cl_context context;
6
7 extern cl_platform_id platform;
8
9 extern cl_device_id devices;
10
11 extern void CL_CALLBACK setcontextdestructor_callback(cl_context _a, void* _b);
12
13 struct clRetainContext_st clRetainContextData[NUM_ITEMS_clRetainContext] =
14 {
15 {NULL}
16 };
17
18 struct clGetContextInfo_st clGetContextInfoData[NUM_ITEMS_clGetContextInfo] =
19 {
20 {NULL, 0, 0, NULL, NULL}
21 };
22
23 struct clSetContextDestructorCallback_st clSetContextDestructorCallbackData[NUM_ITEMS_clSetContextDestructorCallback] =
24 {
25 {NULL, setcontextdestructor_callback, NULL}
26 };
27
28 struct clGetPlatformInfo_st clGetPlatformInfoData[NUM_ITEMS_clGetPlatformInfo] =
29 {
30 {NULL, 0, 0, NULL, NULL}
31 };
32
33 struct clGetDeviceInfo_st clGetDeviceInfoData[NUM_ITEMS_clGetDeviceInfo] =
34 {
35 {NULL, 0, 0, NULL, NULL}
36 };
37
38 struct clCreateSubDevices_st clCreateSubDevicesData[NUM_ITEMS_clCreateSubDevices] =
39 {
40 {NULL, NULL, 0, NULL, NULL}
41 };
42
43
44 struct clRetainDevice_st clRetainDeviceData[NUM_ITEMS_clRetainDevice] =
45 {
46 {NULL}
47 };
48
49
test_clRetainContext(const struct clRetainContext_st * data)50 int test_clRetainContext(const struct clRetainContext_st* data)
51 {
52 (void)data;
53 cl_int ret_val;
54
55 test_icd_app_log("clRetainContext(%p)\n", context);
56
57 ret_val = clRetainContext(context);
58
59 test_icd_app_log("Value returned: %d\n", ret_val);
60
61 return 0;
62 }
63
64
test_clGetContextInfo(const struct clGetContextInfo_st * data)65 int test_clGetContextInfo(const struct clGetContextInfo_st* data)
66 {
67 cl_int ret_val;
68
69 test_icd_app_log("clGetContextInfo(%p, %u, %u, %p, %p)\n",
70 context,
71 data->param_name,
72 data->param_value_size,
73 data->param_value,
74 data->param_value_size_ret);
75
76
77 ret_val = clGetContextInfo(context,
78 data->param_name,
79 data->param_value_size,
80 data->param_value,
81 data->param_value_size_ret);
82
83 test_icd_app_log("Value returned: %d\n", ret_val);
84
85 return 0;
86 }
87
88
test_clSetContextDestructorCallback(const struct clSetContextDestructorCallback_st * data)89 int test_clSetContextDestructorCallback(
90 const struct clSetContextDestructorCallback_st* data)
91 {
92 cl_int ret_val;
93
94 test_icd_app_log(
95 "clSetContextDestructorCallback(%p, %p, %p)\n",
96 context,
97 data->pfn_notify,
98 data->user_data);
99
100 ret_val = clSetContextDestructorCallback(
101 context,
102 data->pfn_notify,
103 data->user_data);
104
105 test_icd_app_log("Value returned: %d\n", ret_val);
106
107 return 0;
108 }
109
110
test_clGetPlatformInfo(const struct clGetPlatformInfo_st * data)111 int test_clGetPlatformInfo(const struct clGetPlatformInfo_st* data)
112 {
113 cl_int ret_val;
114
115 test_icd_app_log("clGetPlatformInfo(%p, %u, %u, %p, %p)\n",
116 platform,
117 data->param_name,
118 data->param_value_size,
119 data->param_value,
120 data->param_value_size_ret);
121
122 ret_val = clGetPlatformInfo(platform,
123 data->param_name,
124 data->param_value_size,
125 data->param_value,
126 data->param_value_size_ret);
127
128 test_icd_app_log("Value returned: %d\n", ret_val);
129
130 return 0;
131
132 }
133
test_clGetDeviceInfo(const struct clGetDeviceInfo_st * data)134 int test_clGetDeviceInfo(const struct clGetDeviceInfo_st* data)
135 {
136 cl_int ret_val;
137
138 test_icd_app_log("clGetDeviceInfo(%p, %u, %u, %p, %p)\n",
139 devices,
140 data->param_name,
141 data->param_value_size,
142 data->param_value,
143 data->param_value_size_ret);
144
145 ret_val = clGetDeviceInfo(devices,
146 data->param_name,
147 data->param_value_size,
148 data->param_value,
149 data->param_value_size_ret);
150
151 test_icd_app_log("Value returned: %d\n", ret_val);
152
153 return 0;
154 }
155
test_clCreateSubDevices(const struct clCreateSubDevices_st * data)156 int test_clCreateSubDevices(const struct clCreateSubDevices_st* data)
157 {
158 cl_int ret_val;
159
160 test_icd_app_log("clCreateSubDevices(%p, %p, %u, %p, %p)\n",
161 devices,
162 data->properties,
163 data->num_entries,
164 &devices,
165 data->num_devices);
166
167 ret_val = clCreateSubDevices(devices,
168 data->properties,
169 data->num_entries,
170 &devices,
171 data->num_devices);
172
173 test_icd_app_log("Value returned: %d\n", ret_val);
174
175 return 0;
176 }
177
test_clRetainDevice(const struct clRetainDevice_st * data)178 int test_clRetainDevice(const struct clRetainDevice_st* data)
179 {
180 (void)data;
181 cl_int ret_val;
182
183 test_icd_app_log("clRetainDevice(%p)\n", devices);
184
185 ret_val = clRetainDevice(devices);
186
187 test_icd_app_log("Value returned: %d\n", ret_val);
188
189 return 0;
190 }
191
test_platforms()192 int test_platforms()
193 {
194 int i;
195
196 for (i = 0;i<NUM_ITEMS_clRetainContext;i++) {
197 test_clRetainContext(&clRetainContextData[i]);
198 }
199
200 for (i = 0;i<NUM_ITEMS_clSetContextDestructorCallback;i++) {
201 test_clSetContextDestructorCallback(&clSetContextDestructorCallbackData[i]);
202 }
203
204 for (i = 0;i<NUM_ITEMS_clGetContextInfo;i++) {
205 test_clGetContextInfo(&clGetContextInfoData[i]);
206 }
207
208 #if 0
209 for (i = 0;i<NUM_ITEMS_clGetPlatformInfo;i++) {
210 test_clGetPlatformInfo(&clGetPlatformInfoData[i]);
211 }
212 #endif
213
214 for (i = 0;i<NUM_ITEMS_clGetDeviceInfo;i++) {
215 test_clGetDeviceInfo(&clGetDeviceInfoData[i]);
216 }
217
218 for (i = 0;i<NUM_ITEMS_clCreateSubDevices;i++) {
219 test_clCreateSubDevices(&clCreateSubDevicesData[i]);
220 }
221
222 for (i = 0;i<NUM_ITEMS_clRetainDevice;i++) {
223 test_clRetainDevice(&clRetainDeviceData[i]);
224 }
225
226 return 0;
227 }
228