Line | Count | Source |
1 | | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
2 | | * Copyright by The HDF Group. * |
3 | | * All rights reserved. * |
4 | | * * |
5 | | * This file is part of HDF5. The full HDF5 copyright notice, including * |
6 | | * terms governing use, modification, and redistribution, is contained in * |
7 | | * the LICENSE file, which can be found at the root of the source code * |
8 | | * distribution tree, or in https://www.hdfgroup.org/licenses. * |
9 | | * If you do not have access to either file, you may request a copy from * |
10 | | * help@hdfgroup.org. * |
11 | | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
12 | | |
13 | | /*------------------------------------------------------------------------- |
14 | | * |
15 | | * Created: H5trace.c |
16 | | * |
17 | | * Purpose: Internal code for tracing API calls |
18 | | * |
19 | | *------------------------------------------------------------------------- |
20 | | */ |
21 | | |
22 | | /****************/ |
23 | | /* Module Setup */ |
24 | | /****************/ |
25 | | #include "H5module.h" /* This source code file is part of the H5 module */ |
26 | | #define H5I_FRIEND /* Suppress error about including H5Ipkg */ |
27 | | |
28 | | /***********/ |
29 | | /* Headers */ |
30 | | /***********/ |
31 | | #include "H5private.h" /* Generic Functions */ |
32 | | #include "H5Dprivate.h" /* Datasets */ |
33 | | #include "H5Eprivate.h" /* Error handling */ |
34 | | #include "H5FDprivate.h" /* File drivers */ |
35 | | #include "H5Rprivate.h" /* References */ |
36 | | #include "H5Ipkg.h" /* IDs */ |
37 | | #include "H5Mpublic.h" /* Maps */ |
38 | | #include "H5MMprivate.h" /* Memory management */ |
39 | | #include "H5RSprivate.h" /* Reference-counted strings */ |
40 | | #include "H5VLprivate.h" /* Virtual Object Layer */ |
41 | | |
42 | | #ifdef H5_HAVE_PARALLEL |
43 | | /* Datatypes of predefined drivers needed by H5_trace() */ |
44 | | #include "H5FDmpio.h" |
45 | | #endif /* H5_HAVE_PARALLEL */ |
46 | | |
47 | | /****************/ |
48 | | /* Local Macros */ |
49 | | /****************/ |
50 | | |
51 | | /******************/ |
52 | | /* Local Typedefs */ |
53 | | /******************/ |
54 | | |
55 | | /********************/ |
56 | | /* Package Typedefs */ |
57 | | /********************/ |
58 | | |
59 | | /********************/ |
60 | | /* Local Prototypes */ |
61 | | /********************/ |
62 | | static herr_t H5_trace_args_bool(H5RS_str_t *rs, bool val); |
63 | | static herr_t H5_trace_args_cset(H5RS_str_t *rs, H5T_cset_t cset); |
64 | | static herr_t H5_trace_args_close_degree(H5RS_str_t *rs, H5F_close_degree_t degree); |
65 | | |
66 | | /*********************/ |
67 | | /* Package Variables */ |
68 | | /*********************/ |
69 | | |
70 | | /*****************************/ |
71 | | /* Library Private Variables */ |
72 | | /*****************************/ |
73 | | |
74 | | /*******************/ |
75 | | /* Local Variables */ |
76 | | /*******************/ |
77 | | |
78 | | /*------------------------------------------------------------------------- |
79 | | * Function: H5_trace_args_bool |
80 | | * |
81 | | * Purpose: This routine formats an bool and adds the output to |
82 | | * the refcounted string (RS) argument. |
83 | | * |
84 | | * Return: SUCCEED / FAIL |
85 | | * |
86 | | *------------------------------------------------------------------------- |
87 | | */ |
88 | | static herr_t |
89 | | H5_trace_args_bool(H5RS_str_t *rs, bool val) |
90 | 0 | { |
91 | | /* FUNC_ENTER() should not be called */ |
92 | |
|
93 | 0 | if (true == val) |
94 | 0 | H5RS_acat(rs, "TRUE"); |
95 | 0 | else if (!val) |
96 | 0 | H5RS_acat(rs, "FALSE"); |
97 | 0 | else |
98 | 0 | H5RS_asprintf_cat(rs, "TRUE(%u)", (unsigned)val); |
99 | |
|
100 | 0 | return SUCCEED; |
101 | 0 | } /* end H5_trace_args_bool() */ |
102 | | |
103 | | /*------------------------------------------------------------------------- |
104 | | * Function: H5_trace_args_cset |
105 | | * |
106 | | * Purpose: This routine formats an H5T_cset_t and adds the output to |
107 | | * the refcounted string (RS) argument. |
108 | | * |
109 | | * Return: SUCCEED / FAIL |
110 | | * |
111 | | *------------------------------------------------------------------------- |
112 | | */ |
113 | | static herr_t |
114 | | H5_trace_args_cset(H5RS_str_t *rs, H5T_cset_t cset) |
115 | 0 | { |
116 | | /* FUNC_ENTER() should not be called */ |
117 | |
|
118 | 0 | switch (cset) { |
119 | 0 | case H5T_CSET_ERROR: |
120 | 0 | H5RS_acat(rs, "H5T_CSET_ERROR"); |
121 | 0 | break; |
122 | | |
123 | 0 | case H5T_CSET_ASCII: |
124 | 0 | H5RS_acat(rs, "H5T_CSET_ASCII"); |
125 | 0 | break; |
126 | | |
127 | 0 | case H5T_CSET_UTF8: |
128 | 0 | H5RS_acat(rs, "H5T_CSET_UTF8"); |
129 | 0 | break; |
130 | | |
131 | 0 | case H5T_CSET_RESERVED_2: |
132 | 0 | case H5T_CSET_RESERVED_3: |
133 | 0 | case H5T_CSET_RESERVED_4: |
134 | 0 | case H5T_CSET_RESERVED_5: |
135 | 0 | case H5T_CSET_RESERVED_6: |
136 | 0 | case H5T_CSET_RESERVED_7: |
137 | 0 | case H5T_CSET_RESERVED_8: |
138 | 0 | case H5T_CSET_RESERVED_9: |
139 | 0 | case H5T_CSET_RESERVED_10: |
140 | 0 | case H5T_CSET_RESERVED_11: |
141 | 0 | case H5T_CSET_RESERVED_12: |
142 | 0 | case H5T_CSET_RESERVED_13: |
143 | 0 | case H5T_CSET_RESERVED_14: |
144 | 0 | case H5T_CSET_RESERVED_15: |
145 | 0 | H5RS_asprintf_cat(rs, "H5T_CSET_RESERVED_%ld", (long)cset); |
146 | 0 | break; |
147 | | |
148 | 0 | default: |
149 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)cset); |
150 | 0 | break; |
151 | 0 | } |
152 | | |
153 | 0 | return SUCCEED; |
154 | 0 | } /* end H5_trace_args_cset() */ |
155 | | |
156 | | /*------------------------------------------------------------------------- |
157 | | * Function: H5_trace_args_close_degree |
158 | | * |
159 | | * Purpose: This routine formats an H5F_close_degree_t and adds the output to |
160 | | * the refcounted string (RS) argument. |
161 | | * |
162 | | * Return: SUCCEED / FAIL |
163 | | * |
164 | | *------------------------------------------------------------------------- |
165 | | */ |
166 | | static herr_t |
167 | | H5_trace_args_close_degree(H5RS_str_t *rs, H5F_close_degree_t degree) |
168 | 0 | { |
169 | | /* FUNC_ENTER() should not be called */ |
170 | |
|
171 | 0 | switch (degree) { |
172 | 0 | case H5F_CLOSE_DEFAULT: |
173 | 0 | H5RS_acat(rs, "H5F_CLOSE_DEFAULT"); |
174 | 0 | break; |
175 | | |
176 | 0 | case H5F_CLOSE_WEAK: |
177 | 0 | H5RS_acat(rs, "H5F_CLOSE_WEAK"); |
178 | 0 | break; |
179 | | |
180 | 0 | case H5F_CLOSE_SEMI: |
181 | 0 | H5RS_acat(rs, "H5F_CLOSE_SEMI"); |
182 | 0 | break; |
183 | | |
184 | 0 | case H5F_CLOSE_STRONG: |
185 | 0 | H5RS_acat(rs, "H5F_CLOSE_STRONG"); |
186 | 0 | break; |
187 | | |
188 | 0 | default: |
189 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)degree); |
190 | 0 | break; |
191 | 0 | } /* end switch */ |
192 | | |
193 | 0 | return SUCCEED; |
194 | 0 | } /* end H5_trace_args_cset() */ |
195 | | |
196 | | /*------------------------------------------------------------------------- |
197 | | * Function: H5_trace_args |
198 | | * |
199 | | * Purpose: This routine formats a set of function arguments, placing the |
200 | | * resulting string in the refcounted string (RS) argument. |
201 | | * |
202 | | * The TYPE argument is a string which gives the type of each of |
203 | | * the following argument pairs. Each type begins with zero or |
204 | | * more asterisks (one for each level of indirection, although |
205 | | * some types have one level of indirection already implied) |
206 | | * followed by either one letter (lower case) or two letters |
207 | | * (first one uppercase). |
208 | | * |
209 | | * The variable argument list consists of pairs of values. Each |
210 | | * pair is a string which is the formal argument name in the |
211 | | * calling function, followed by the argument value. The type |
212 | | * of the argument value is given by the TYPE string. |
213 | | * |
214 | | * Note: The TYPE string is meant to be terse and is generated by a |
215 | | * separate perl script. |
216 | | * |
217 | | * Return: SUCCEED / FAIL |
218 | | * |
219 | | *------------------------------------------------------------------------- |
220 | | */ |
221 | | herr_t |
222 | | H5_trace_args(H5RS_str_t *rs, const char *type, va_list ap) |
223 | 0 | { |
224 | 0 | const char *argname; |
225 | 0 | int argno = 0, ptr, asize_idx; |
226 | 0 | hssize_t asize[16]; |
227 | 0 | hssize_t i; |
228 | 0 | void *vp = NULL; |
229 | | |
230 | | /* FUNC_ENTER() should not be called */ |
231 | | |
232 | | /* Clear array sizes */ |
233 | 0 | for (i = 0; i < (hssize_t)NELMTS(asize); i++) |
234 | 0 | asize[i] = -1; |
235 | | |
236 | | /* Parse the argument types */ |
237 | 0 | for (argno = 0; *type; argno++, type += (isupper(*type) ? 2 : 1)) { |
238 | | /* Count levels of indirection */ |
239 | 0 | for (ptr = 0; '*' == *type; type++) |
240 | 0 | ptr++; |
241 | | |
242 | | /* Array parameter, possibly with another argument as the array size */ |
243 | 0 | if ('[' == *type) { |
244 | 0 | char *rest; |
245 | |
|
246 | 0 | if ('a' == type[1]) { |
247 | 0 | asize_idx = (int)strtol(type + 2, &rest, 10); |
248 | 0 | assert(0 <= asize_idx && asize_idx < (int)NELMTS(asize)); |
249 | 0 | assert(']' == *rest); |
250 | 0 | type = rest + 1; |
251 | 0 | } |
252 | 0 | else { |
253 | 0 | rest = (char *)strchr(type, ']'); |
254 | 0 | assert(rest); |
255 | 0 | type = rest + 1; |
256 | 0 | asize_idx = -1; |
257 | 0 | } |
258 | 0 | } /* end if */ |
259 | 0 | else |
260 | 0 | asize_idx = -1; |
261 | | |
262 | | /* |
263 | | * The argument name. If the argument name is the null pointer then |
264 | | * don't print the argument or the following `=' (this is used for |
265 | | * return values). |
266 | | */ |
267 | 0 | argname = va_arg(ap, char *); |
268 | 0 | if (argname) |
269 | 0 | H5RS_asprintf_cat(rs, "%s%s=", argno ? ", " : "", argname); |
270 | | |
271 | | /* A pointer/array */ |
272 | 0 | if (ptr) { |
273 | 0 | vp = va_arg(ap, void *); |
274 | 0 | if (vp) { |
275 | 0 | switch (type[0]) { |
276 | 0 | case 'h': /* hsize_t */ |
277 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
278 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
279 | 0 | hsize_t *p = (hsize_t *)vp; |
280 | |
|
281 | 0 | H5RS_acat(rs, " {"); |
282 | 0 | for (i = 0; i < asize[asize_idx]; i++) { |
283 | 0 | if (H5S_UNLIMITED == p[i]) |
284 | 0 | H5RS_asprintf_cat(rs, "%sH5S_UNLIMITED", (i ? ", " : "")); |
285 | 0 | else |
286 | 0 | H5RS_asprintf_cat(rs, "%s%" PRIuHSIZE, (i ? ", " : ""), p[i]); |
287 | 0 | } /* end for */ |
288 | 0 | H5RS_acat(rs, "}"); |
289 | 0 | } /* end if */ |
290 | 0 | break; |
291 | | |
292 | 0 | case 'H': |
293 | 0 | if ('s' == type[1]) { /* hssize_t */ |
294 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
295 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
296 | 0 | hssize_t *p = (hssize_t *)vp; |
297 | |
|
298 | 0 | H5RS_acat(rs, " {"); |
299 | 0 | for (i = 0; i < asize[asize_idx]; i++) |
300 | 0 | H5RS_asprintf_cat(rs, "%s%" PRIdHSIZE, (i ? ", " : ""), p[i]); |
301 | 0 | H5RS_acat(rs, "}"); |
302 | 0 | } /* end if */ |
303 | 0 | } /* end if */ |
304 | 0 | else |
305 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
306 | 0 | break; |
307 | | |
308 | 0 | case 'I': |
309 | 0 | if ('s' == type[1]) { /* int / int32_t */ |
310 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
311 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
312 | 0 | int *p = (int *)vp; |
313 | |
|
314 | 0 | H5RS_acat(rs, " {"); |
315 | 0 | for (i = 0; i < asize[asize_idx]; i++) |
316 | 0 | H5RS_asprintf_cat(rs, "%s%d", (i ? ", " : ""), p[i]); |
317 | 0 | H5RS_acat(rs, "}"); |
318 | 0 | } /* end if */ |
319 | 0 | } /* end if */ |
320 | 0 | else if ('u' == type[1]) { /* unsigned / uint32_t */ |
321 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
322 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
323 | 0 | unsigned *p = (unsigned *)vp; |
324 | |
|
325 | 0 | H5RS_acat(rs, " {"); |
326 | 0 | for (i = 0; i < asize[asize_idx]; i++) |
327 | 0 | H5RS_asprintf_cat(rs, "%s%u", i ? ", " : "", p[i]); |
328 | 0 | H5RS_acat(rs, "}"); |
329 | 0 | } /* end if */ |
330 | 0 | } /* end else-if */ |
331 | 0 | else |
332 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
333 | 0 | break; |
334 | | |
335 | 0 | case 's': /* char* */ |
336 | | /* Strings have one level of indirection by default, pointers |
337 | | * to strings have 2 or more. |
338 | | */ |
339 | 0 | if (ptr > 1) |
340 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
341 | 0 | else |
342 | 0 | H5RS_asprintf_cat(rs, "\"%s\"", (const char *)vp); |
343 | 0 | break; |
344 | | |
345 | 0 | case 'U': |
346 | 0 | if ('l' == type[1]) { /* unsigned long */ |
347 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
348 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
349 | 0 | unsigned long *p = (unsigned long *)vp; |
350 | |
|
351 | 0 | H5RS_acat(rs, " {"); |
352 | 0 | for (i = 0; i < asize[asize_idx]; i++) |
353 | 0 | H5RS_asprintf_cat(rs, "%s%lu", i ? ", " : "", p[i]); |
354 | 0 | H5RS_acat(rs, "}"); |
355 | 0 | } /* end if */ |
356 | 0 | } /* end if */ |
357 | 0 | else if ('L' == type[1]) { /* unsigned long long / uint64_t */ |
358 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
359 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
360 | 0 | unsigned long long *p = (unsigned long long *)vp; |
361 | |
|
362 | 0 | H5RS_acat(rs, " {"); |
363 | 0 | for (i = 0; i < asize[asize_idx]; i++) |
364 | 0 | H5RS_asprintf_cat(rs, "%s%llu", i ? ", " : "", p[i]); |
365 | 0 | H5RS_acat(rs, "}"); |
366 | 0 | } /* end if */ |
367 | 0 | } /* end else-if */ |
368 | 0 | else |
369 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
370 | 0 | break; |
371 | | |
372 | 0 | case 'x': /* void */ |
373 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
374 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
375 | 0 | void **p = (void **)vp; |
376 | |
|
377 | 0 | H5RS_acat(rs, " {"); |
378 | 0 | for (i = 0; i < asize[asize_idx]; i++) { |
379 | 0 | if (p[i]) |
380 | 0 | H5RS_asprintf_cat(rs, "%s%p", (i ? ", " : ""), p[i]); |
381 | 0 | else |
382 | 0 | H5RS_asprintf_cat(rs, "%sNULL", (i ? ", " : "")); |
383 | 0 | } /* end for */ |
384 | 0 | H5RS_acat(rs, "}"); |
385 | 0 | } /* end if */ |
386 | 0 | break; |
387 | | |
388 | 0 | case 'z': /* size_t */ |
389 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
390 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
391 | 0 | size_t *p = (size_t *)vp; |
392 | |
|
393 | 0 | H5RS_acat(rs, " {"); |
394 | 0 | for (i = 0; i < asize[asize_idx]; i++) |
395 | 0 | H5RS_asprintf_cat(rs, "%s%zu", (i ? ", " : ""), p[i]); |
396 | 0 | H5RS_acat(rs, "}"); |
397 | 0 | } /* end if */ |
398 | 0 | break; |
399 | | |
400 | 0 | case 'Z': |
401 | 0 | if ('s' == type[1]) { /* ssize_t */ |
402 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
403 | 0 | if (asize_idx >= 0 && asize[asize_idx] >= 0) { |
404 | 0 | ssize_t *p = (ssize_t *)vp; |
405 | |
|
406 | 0 | H5RS_acat(rs, " {"); |
407 | 0 | for (i = 0; i < asize[asize_idx]; i++) |
408 | 0 | H5RS_asprintf_cat(rs, "%s%zd", (i ? ", " : ""), p[i]); |
409 | 0 | H5RS_acat(rs, "}"); |
410 | 0 | } /* end if */ |
411 | 0 | } /* end if */ |
412 | 0 | else |
413 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
414 | 0 | break; |
415 | | |
416 | 0 | default: |
417 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
418 | 0 | } /* end switch */ |
419 | 0 | } /* end if */ |
420 | 0 | else |
421 | 0 | H5RS_acat(rs, "NULL"); |
422 | 0 | } /* end if */ |
423 | | /* A value */ |
424 | 0 | else { |
425 | 0 | switch (type[0]) { |
426 | 0 | case 'a': /* haddr_t */ |
427 | 0 | { |
428 | 0 | haddr_t addr = va_arg(ap, haddr_t); |
429 | |
|
430 | 0 | if (H5_addr_defined(addr)) |
431 | 0 | H5RS_asprintf_cat(rs, "%" PRIuHADDR, addr); |
432 | 0 | else |
433 | 0 | H5RS_acat(rs, "UNDEF"); |
434 | 0 | } /* end block */ |
435 | 0 | break; |
436 | | |
437 | 0 | case 'A': |
438 | 0 | switch (type[1]) { |
439 | 0 | case 'i': /* H5A_info_t */ |
440 | 0 | { |
441 | 0 | H5A_info_t ainfo = va_arg(ap, H5A_info_t); |
442 | |
|
443 | 0 | H5RS_acat(rs, "{"); |
444 | 0 | H5_trace_args_bool(rs, ainfo.corder_valid); |
445 | 0 | H5RS_asprintf_cat(rs, ", %u, ", ainfo.corder); |
446 | 0 | H5_trace_args_cset(rs, ainfo.cset); |
447 | 0 | H5RS_asprintf_cat(rs, "%" PRIuHSIZE "}", ainfo.data_size); |
448 | 0 | } /* end block */ |
449 | 0 | break; |
450 | | |
451 | 0 | #ifndef H5_NO_DEPRECATED_SYMBOLS |
452 | 0 | case 'o': /* H5A_operator1_t */ |
453 | 0 | { |
454 | 0 | H5A_operator1_t aop1 = (H5A_operator1_t)va_arg(ap, H5A_operator1_t); |
455 | |
|
456 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)aop1); |
457 | 0 | } /* end block */ |
458 | 0 | break; |
459 | 0 | #endif /* H5_NO_DEPRECATED_SYMBOLS */ |
460 | | |
461 | 0 | case 'O': /* H5A_operator2_t */ |
462 | 0 | { |
463 | 0 | H5A_operator2_t aop2 = (H5A_operator2_t)va_arg(ap, H5A_operator2_t); |
464 | |
|
465 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)aop2); |
466 | 0 | } /* end block */ |
467 | 0 | break; |
468 | | |
469 | 0 | default: |
470 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(A%c)", type[1]); |
471 | 0 | goto error; |
472 | 0 | } /* end switch */ |
473 | 0 | break; |
474 | | |
475 | 0 | case 'b': /* bool */ |
476 | 0 | { |
477 | | /* Can't pass bool to va_arg() */ |
478 | 0 | bool bool_var = (bool)va_arg(ap, int); |
479 | |
|
480 | 0 | H5_trace_args_bool(rs, bool_var); |
481 | 0 | } /* end block */ |
482 | 0 | break; |
483 | | |
484 | 0 | case 'C': |
485 | 0 | switch (type[1]) { |
486 | 0 | case 'c': /* H5AC_cache_config_t */ |
487 | 0 | { |
488 | 0 | H5AC_cache_config_t cc = va_arg(ap, H5AC_cache_config_t); |
489 | |
|
490 | 0 | H5RS_asprintf_cat(rs, "{%d, ", cc.version); |
491 | 0 | H5_trace_args_bool(rs, cc.rpt_fcn_enabled); |
492 | 0 | H5RS_acat(rs, ", "); |
493 | 0 | H5_trace_args_bool(rs, cc.open_trace_file); |
494 | 0 | H5RS_acat(rs, ", "); |
495 | 0 | H5_trace_args_bool(rs, cc.close_trace_file); |
496 | 0 | H5RS_asprintf_cat(rs, ", '%s', ", cc.trace_file_name); |
497 | 0 | H5RS_acat(rs, ", "); |
498 | 0 | H5_trace_args_bool(rs, cc.evictions_enabled); |
499 | 0 | H5RS_acat(rs, ", "); |
500 | 0 | H5_trace_args_bool(rs, cc.set_initial_size); |
501 | 0 | H5RS_asprintf_cat(rs, ", %zu, ", cc.initial_size); |
502 | 0 | H5RS_asprintf_cat(rs, "%f, ", cc.min_clean_fraction); |
503 | 0 | H5RS_asprintf_cat(rs, "%zu, ", cc.max_size); |
504 | 0 | H5RS_asprintf_cat(rs, "%zu, ", cc.min_size); |
505 | 0 | H5RS_asprintf_cat(rs, "%ld, ", cc.epoch_length); |
506 | 0 | switch (cc.incr_mode) { |
507 | 0 | case H5C_incr__off: |
508 | 0 | H5RS_acat(rs, "H5C_incr__off"); |
509 | 0 | break; |
510 | | |
511 | 0 | case H5C_incr__threshold: |
512 | 0 | H5RS_acat(rs, "H5C_incr__threshold"); |
513 | 0 | break; |
514 | | |
515 | 0 | default: |
516 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)cc.incr_mode); |
517 | 0 | break; |
518 | 0 | } /* end switch */ |
519 | 0 | H5RS_asprintf_cat(rs, ", %f, ", cc.lower_hr_threshold); |
520 | 0 | H5RS_asprintf_cat(rs, "%f, ", cc.increment); |
521 | 0 | H5_trace_args_bool(rs, cc.apply_max_increment); |
522 | 0 | H5RS_asprintf_cat(rs, ", %zu, ", cc.max_increment); |
523 | 0 | switch (cc.flash_incr_mode) { |
524 | 0 | case H5C_flash_incr__off: |
525 | 0 | H5RS_acat(rs, "H5C_flash_incr__off"); |
526 | 0 | break; |
527 | | |
528 | 0 | case H5C_flash_incr__add_space: |
529 | 0 | H5RS_acat(rs, "H5C_flash_incr__add_space"); |
530 | 0 | break; |
531 | | |
532 | 0 | default: |
533 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)cc.flash_incr_mode); |
534 | 0 | break; |
535 | 0 | } /* end switch */ |
536 | 0 | H5RS_asprintf_cat(rs, ", %f, ", cc.flash_multiple); |
537 | 0 | H5RS_asprintf_cat(rs, "%f, ", cc.flash_threshold); |
538 | 0 | switch (cc.decr_mode) { |
539 | 0 | case H5C_decr__off: |
540 | 0 | H5RS_acat(rs, "H5C_decr__off"); |
541 | 0 | break; |
542 | | |
543 | 0 | case H5C_decr__threshold: |
544 | 0 | H5RS_acat(rs, "H5C_decr__threshold"); |
545 | 0 | break; |
546 | | |
547 | 0 | case H5C_decr__age_out: |
548 | 0 | H5RS_acat(rs, "H5C_decr__age_out"); |
549 | 0 | break; |
550 | | |
551 | 0 | case H5C_decr__age_out_with_threshold: |
552 | 0 | H5RS_acat(rs, "H5C_decr__age_out_with_threshold"); |
553 | 0 | break; |
554 | | |
555 | 0 | default: |
556 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)cc.decr_mode); |
557 | 0 | break; |
558 | 0 | } /* end switch */ |
559 | 0 | H5RS_asprintf_cat(rs, ", %f, ", cc.upper_hr_threshold); |
560 | 0 | H5RS_asprintf_cat(rs, "%f, ", cc.decrement); |
561 | 0 | H5_trace_args_bool(rs, cc.apply_max_decrement); |
562 | 0 | H5RS_asprintf_cat(rs, ", %zu, ", cc.max_decrement); |
563 | 0 | H5RS_asprintf_cat(rs, "%d, ", cc.epochs_before_eviction); |
564 | 0 | H5_trace_args_bool(rs, cc.apply_empty_reserve); |
565 | 0 | H5RS_asprintf_cat(rs, ", %f, ", cc.empty_reserve); |
566 | 0 | H5RS_asprintf_cat(rs, "%zu, ", cc.dirty_bytes_threshold); |
567 | 0 | H5RS_asprintf_cat(rs, "%d}", cc.metadata_write_strategy); |
568 | 0 | } /* end block */ |
569 | 0 | break; |
570 | | |
571 | 0 | case 'C': /* H5AC_cache_image_config_t */ |
572 | 0 | { |
573 | 0 | H5AC_cache_image_config_t cic = va_arg(ap, H5AC_cache_image_config_t); |
574 | |
|
575 | 0 | H5RS_asprintf_cat(rs, "{%d, ", cic.version); |
576 | 0 | H5_trace_args_bool(rs, cic.generate_image); |
577 | 0 | H5RS_acat(rs, ", "); |
578 | 0 | H5_trace_args_bool(rs, cic.save_resize_status); |
579 | 0 | H5RS_acat(rs, ", "); |
580 | 0 | H5RS_asprintf_cat(rs, "%d}", cic.entry_ageout); |
581 | 0 | } /* end block */ |
582 | 0 | break; |
583 | | |
584 | 0 | default: |
585 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(C%c)", type[1]); |
586 | 0 | goto error; |
587 | 0 | } /* end switch */ |
588 | 0 | break; |
589 | | |
590 | 0 | case 'd': /* double */ |
591 | 0 | { |
592 | 0 | double dbl = va_arg(ap, double); |
593 | |
|
594 | 0 | H5RS_asprintf_cat(rs, "%g", dbl); |
595 | 0 | } /* end block */ |
596 | 0 | break; |
597 | | |
598 | 0 | case 'D': |
599 | 0 | switch (type[1]) { |
600 | 0 | case 'a': /* H5D_alloc_time_t */ |
601 | 0 | { |
602 | 0 | H5D_alloc_time_t alloc_time = (H5D_alloc_time_t)va_arg(ap, int); |
603 | |
|
604 | 0 | switch (alloc_time) { |
605 | 0 | case H5D_ALLOC_TIME_ERROR: |
606 | 0 | H5RS_acat(rs, "H5D_ALLOC_TIME_ERROR"); |
607 | 0 | break; |
608 | | |
609 | 0 | case H5D_ALLOC_TIME_DEFAULT: |
610 | 0 | H5RS_acat(rs, "H5D_ALLOC_TIME_DEFAULT"); |
611 | 0 | break; |
612 | | |
613 | 0 | case H5D_ALLOC_TIME_EARLY: |
614 | 0 | H5RS_acat(rs, "H5D_ALLOC_TIME_EARLY"); |
615 | 0 | break; |
616 | | |
617 | 0 | case H5D_ALLOC_TIME_LATE: |
618 | 0 | H5RS_acat(rs, "H5D_ALLOC_TIME_LATE"); |
619 | 0 | break; |
620 | | |
621 | 0 | case H5D_ALLOC_TIME_INCR: |
622 | 0 | H5RS_acat(rs, "H5D_ALLOC_TIME_INCR"); |
623 | 0 | break; |
624 | | |
625 | 0 | default: |
626 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)alloc_time); |
627 | 0 | break; |
628 | 0 | } /* end switch */ |
629 | 0 | } /* end block */ |
630 | 0 | break; |
631 | | |
632 | 0 | case 'A': /* H5D_append_cb_t */ |
633 | 0 | { |
634 | 0 | H5D_append_cb_t dapp = (H5D_append_cb_t)va_arg(ap, H5D_append_cb_t); |
635 | |
|
636 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)dapp); |
637 | 0 | } /* end block */ |
638 | 0 | break; |
639 | | |
640 | 0 | case 'c': /* H5FD_mpio_collective_opt_t */ |
641 | 0 | { |
642 | 0 | H5FD_mpio_collective_opt_t opt = (H5FD_mpio_collective_opt_t)va_arg(ap, int); |
643 | |
|
644 | 0 | switch (opt) { |
645 | 0 | case H5FD_MPIO_COLLECTIVE_IO: |
646 | 0 | H5RS_acat(rs, "H5FD_MPIO_COLLECTIVE_IO"); |
647 | 0 | break; |
648 | | |
649 | 0 | case H5FD_MPIO_INDIVIDUAL_IO: |
650 | 0 | H5RS_acat(rs, "H5FD_MPIO_INDIVIDUAL_IO"); |
651 | 0 | break; |
652 | | |
653 | 0 | default: |
654 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)opt); |
655 | 0 | break; |
656 | 0 | } /* end switch */ |
657 | 0 | } /* end block */ |
658 | 0 | break; |
659 | | |
660 | 0 | case 'C': /* H5D_selection_io_mode_t */ |
661 | 0 | { |
662 | 0 | H5D_selection_io_mode_t selection_io_mode = |
663 | 0 | (H5D_selection_io_mode_t)va_arg(ap, int); |
664 | |
|
665 | 0 | switch (selection_io_mode) { |
666 | 0 | case H5D_SELECTION_IO_MODE_DEFAULT: |
667 | 0 | H5RS_acat(rs, "H5D_SELECTION_IO_MODE_DEFAULT"); |
668 | 0 | break; |
669 | | |
670 | 0 | case H5D_SELECTION_IO_MODE_OFF: |
671 | 0 | H5RS_acat(rs, "H5D_SELECTION_IO_MODE_OFF"); |
672 | 0 | break; |
673 | | |
674 | 0 | case H5D_SELECTION_IO_MODE_ON: |
675 | 0 | H5RS_acat(rs, "H5D_SELECTION_IO_MODE_ON"); |
676 | 0 | break; |
677 | | |
678 | 0 | default: |
679 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)selection_io_mode); |
680 | 0 | break; |
681 | 0 | } /* end switch */ |
682 | 0 | } /* end block */ |
683 | 0 | break; |
684 | | |
685 | 0 | case 'f': /* H5D_fill_time_t */ |
686 | 0 | { |
687 | 0 | H5D_fill_time_t fill_time = (H5D_fill_time_t)va_arg(ap, int); |
688 | |
|
689 | 0 | switch (fill_time) { |
690 | 0 | case H5D_FILL_TIME_ERROR: |
691 | 0 | H5RS_acat(rs, "H5D_FILL_TIME_ERROR"); |
692 | 0 | break; |
693 | | |
694 | 0 | case H5D_FILL_TIME_ALLOC: |
695 | 0 | H5RS_acat(rs, "H5D_FILL_TIME_ALLOC"); |
696 | 0 | break; |
697 | | |
698 | 0 | case H5D_FILL_TIME_NEVER: |
699 | 0 | H5RS_acat(rs, "H5D_FILL_TIME_NEVER"); |
700 | 0 | break; |
701 | | |
702 | 0 | case H5D_FILL_TIME_IFSET: |
703 | 0 | H5RS_acat(rs, "H5D_FILL_TIME_IFSET"); |
704 | 0 | break; |
705 | | |
706 | 0 | default: |
707 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)fill_time); |
708 | 0 | break; |
709 | 0 | } /* end switch */ |
710 | 0 | } /* end block */ |
711 | 0 | break; |
712 | | |
713 | 0 | case 'F': /* H5D_fill_value_t */ |
714 | 0 | { |
715 | 0 | H5D_fill_value_t fill_value = (H5D_fill_value_t)va_arg(ap, int); |
716 | |
|
717 | 0 | switch (fill_value) { |
718 | 0 | case H5D_FILL_VALUE_ERROR: |
719 | 0 | H5RS_acat(rs, "H5D_FILL_VALUE_ERROR"); |
720 | 0 | break; |
721 | | |
722 | 0 | case H5D_FILL_VALUE_UNDEFINED: |
723 | 0 | H5RS_acat(rs, "H5D_FILL_VALUE_UNDEFINED"); |
724 | 0 | break; |
725 | | |
726 | 0 | case H5D_FILL_VALUE_DEFAULT: |
727 | 0 | H5RS_acat(rs, "H5D_FILL_VALUE_DEFAULT"); |
728 | 0 | break; |
729 | | |
730 | 0 | case H5D_FILL_VALUE_USER_DEFINED: |
731 | 0 | H5RS_acat(rs, "H5D_FILL_VALUE_USER_DEFINED"); |
732 | 0 | break; |
733 | | |
734 | 0 | default: |
735 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)fill_value); |
736 | 0 | break; |
737 | 0 | } /* end switch */ |
738 | 0 | } /* end block */ |
739 | 0 | break; |
740 | | |
741 | 0 | case 'g': /* H5D_gather_func_t */ |
742 | 0 | { |
743 | 0 | H5D_gather_func_t gop = (H5D_gather_func_t)va_arg(ap, H5D_gather_func_t); |
744 | |
|
745 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)gop); |
746 | 0 | } /* end block */ |
747 | 0 | break; |
748 | | |
749 | 0 | case 'h': /* H5FD_mpio_chunk_opt_t */ |
750 | 0 | { |
751 | 0 | H5FD_mpio_chunk_opt_t opt = (H5FD_mpio_chunk_opt_t)va_arg(ap, int); |
752 | |
|
753 | 0 | switch (opt) { |
754 | 0 | case H5FD_MPIO_CHUNK_DEFAULT: |
755 | 0 | H5RS_acat(rs, "H5FD_MPIO_CHUNK_DEFAULT"); |
756 | 0 | break; |
757 | | |
758 | 0 | case H5FD_MPIO_CHUNK_ONE_IO: |
759 | 0 | H5RS_acat(rs, "H5FD_MPIO_CHUNK_ONE_IO"); |
760 | 0 | break; |
761 | | |
762 | 0 | case H5FD_MPIO_CHUNK_MULTI_IO: |
763 | 0 | H5RS_acat(rs, "H5FD_MPIO_CHUNK_MULTI_IO"); |
764 | 0 | break; |
765 | | |
766 | 0 | default: |
767 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)opt); |
768 | 0 | break; |
769 | 0 | } /* end switch */ |
770 | 0 | } /* end block */ |
771 | 0 | break; |
772 | | |
773 | 0 | case 'i': /* H5D_mpio_actual_io_mode_t */ |
774 | 0 | { |
775 | 0 | H5D_mpio_actual_io_mode_t actual_io_mode = |
776 | 0 | (H5D_mpio_actual_io_mode_t)va_arg(ap, int); |
777 | |
|
778 | 0 | switch (actual_io_mode) { |
779 | 0 | case H5D_MPIO_NO_COLLECTIVE: |
780 | 0 | H5RS_acat(rs, "H5D_MPIO_NO_COLLECTIVE"); |
781 | 0 | break; |
782 | | |
783 | 0 | case H5D_MPIO_CHUNK_INDEPENDENT: |
784 | 0 | H5RS_acat(rs, "H5D_MPIO_CHUNK_INDEPENDENT"); |
785 | 0 | break; |
786 | | |
787 | 0 | case H5D_MPIO_CHUNK_COLLECTIVE: |
788 | 0 | H5RS_acat(rs, "H5D_MPIO_CHUNK_COLLECTIVE"); |
789 | 0 | break; |
790 | | |
791 | 0 | case H5D_MPIO_CHUNK_MIXED: |
792 | 0 | H5RS_acat(rs, "H5D_MPIO_CHUNK_MIXED"); |
793 | 0 | break; |
794 | | |
795 | 0 | case H5D_MPIO_CONTIGUOUS_COLLECTIVE: |
796 | 0 | H5RS_acat(rs, "H5D_MPIO_CONTIGUOUS_COLLECTIVE"); |
797 | 0 | break; |
798 | | |
799 | 0 | default: |
800 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)actual_io_mode); |
801 | 0 | break; |
802 | 0 | } /* end switch */ |
803 | 0 | } /* end block */ |
804 | 0 | break; |
805 | | |
806 | 0 | case 'I': /* H5FD_file_image_callbacks_t */ |
807 | 0 | { |
808 | 0 | H5FD_file_image_callbacks_t ficb = va_arg(ap, H5FD_file_image_callbacks_t); |
809 | |
|
810 | 0 | H5RS_asprintf_cat(rs, "{%p, ", (void *)(uintptr_t)ficb.image_malloc); |
811 | 0 | H5RS_asprintf_cat(rs, "%p, ", (void *)(uintptr_t)ficb.image_memcpy); |
812 | 0 | H5RS_asprintf_cat(rs, "%p, ", (void *)(uintptr_t)ficb.image_realloc); |
813 | 0 | H5RS_asprintf_cat(rs, "%p, ", (void *)(uintptr_t)ficb.image_free); |
814 | 0 | H5RS_asprintf_cat(rs, "%p, ", (void *)(uintptr_t)ficb.udata_copy); |
815 | 0 | H5RS_asprintf_cat(rs, "%p, ", (void *)(uintptr_t)ficb.udata_free); |
816 | 0 | H5RS_asprintf_cat(rs, "%p}", ficb.udata); |
817 | 0 | } /* end block */ |
818 | 0 | break; |
819 | | |
820 | 0 | case 'k': /* H5D_chunk_index_t */ |
821 | 0 | { |
822 | 0 | H5D_chunk_index_t idx = (H5D_chunk_index_t)va_arg(ap, int); |
823 | |
|
824 | 0 | switch (idx) { |
825 | 0 | case H5D_CHUNK_IDX_BTREE: |
826 | 0 | H5RS_acat(rs, "H5D_CHUNK_IDX_BTREE"); |
827 | 0 | break; |
828 | | |
829 | 0 | case H5D_CHUNK_IDX_NONE: |
830 | 0 | H5RS_acat(rs, "H5D_CHUNK_IDX_NONE"); |
831 | 0 | break; |
832 | | |
833 | 0 | case H5D_CHUNK_IDX_FARRAY: |
834 | 0 | H5RS_acat(rs, "H5D_CHUNK_IDX_FARRAY"); |
835 | 0 | break; |
836 | | |
837 | 0 | case H5D_CHUNK_IDX_EARRAY: |
838 | 0 | H5RS_acat(rs, "H5D_CHUNK_IDX_EARRAY"); |
839 | 0 | break; |
840 | | |
841 | 0 | case H5D_CHUNK_IDX_BT2: |
842 | 0 | H5RS_acat(rs, "H5D_CHUNK_IDX_BT2"); |
843 | 0 | break; |
844 | | |
845 | 0 | case H5D_CHUNK_IDX_SINGLE: |
846 | 0 | H5RS_acat(rs, "H5D_CHUNK_IDX_SINGLE"); |
847 | 0 | break; |
848 | | |
849 | 0 | case H5D_CHUNK_IDX_NTYPES: |
850 | 0 | H5RS_acat(rs, "ERROR: H5D_CHUNK_IDX_NTYPES (invalid value)"); |
851 | 0 | break; |
852 | | |
853 | 0 | default: |
854 | 0 | H5RS_asprintf_cat(rs, "UNKNOWN VALUE: %ld", (long)idx); |
855 | 0 | break; |
856 | 0 | } /* end switch */ |
857 | 0 | } /* end block */ |
858 | 0 | break; |
859 | | |
860 | 0 | case 'l': /* H5D_layout_t */ |
861 | 0 | { |
862 | 0 | H5D_layout_t layout = (H5D_layout_t)va_arg(ap, int); |
863 | |
|
864 | 0 | switch (layout) { |
865 | 0 | case H5D_LAYOUT_ERROR: |
866 | 0 | H5RS_acat(rs, "H5D_LAYOUT_ERROR"); |
867 | 0 | break; |
868 | | |
869 | 0 | case H5D_COMPACT: |
870 | 0 | H5RS_acat(rs, "H5D_COMPACT"); |
871 | 0 | break; |
872 | | |
873 | 0 | case H5D_CONTIGUOUS: |
874 | 0 | H5RS_acat(rs, "H5D_CONTIGUOUS"); |
875 | 0 | break; |
876 | | |
877 | 0 | case H5D_CHUNKED: |
878 | 0 | H5RS_acat(rs, "H5D_CHUNKED"); |
879 | 0 | break; |
880 | | |
881 | 0 | case H5D_VIRTUAL: |
882 | 0 | H5RS_acat(rs, "H5D_VIRTUAL"); |
883 | 0 | break; |
884 | | |
885 | 0 | case H5D_NLAYOUTS: |
886 | 0 | H5RS_acat(rs, "H5D_NLAYOUTS"); |
887 | 0 | break; |
888 | | |
889 | 0 | default: |
890 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)layout); |
891 | 0 | break; |
892 | 0 | } /* end switch */ |
893 | 0 | } /* end block */ |
894 | 0 | break; |
895 | | |
896 | 0 | case 'n': /* H5D_mpio_no_collective_cause_t */ |
897 | 0 | { |
898 | 0 | H5D_mpio_no_collective_cause_t nocol_cause_mode = |
899 | 0 | (H5D_mpio_no_collective_cause_t)va_arg(ap, int); |
900 | 0 | bool flag_already_displayed = false; |
901 | | |
902 | | /* Check for all bit-flags which might be set */ |
903 | 0 | if (nocol_cause_mode & H5D_MPIO_COLLECTIVE) { |
904 | 0 | H5RS_acat(rs, "H5D_MPIO_COLLECTIVE"); |
905 | 0 | flag_already_displayed = true; |
906 | 0 | } /* end if */ |
907 | 0 | if (nocol_cause_mode & H5D_MPIO_SET_INDEPENDENT) { |
908 | 0 | H5RS_asprintf_cat(rs, "%sH5D_MPIO_SET_INDEPENDENT", |
909 | 0 | flag_already_displayed ? " | " : ""); |
910 | 0 | flag_already_displayed = true; |
911 | 0 | } /* end if */ |
912 | 0 | if (nocol_cause_mode & H5D_MPIO_DATATYPE_CONVERSION) { |
913 | 0 | H5RS_asprintf_cat(rs, "%sH5D_MPIO_DATATYPE_CONVERSION", |
914 | 0 | flag_already_displayed ? " | " : ""); |
915 | 0 | flag_already_displayed = true; |
916 | 0 | } /* end if */ |
917 | 0 | if (nocol_cause_mode & H5D_MPIO_DATA_TRANSFORMS) { |
918 | 0 | H5RS_asprintf_cat(rs, "%sH5D_MPIO_DATA_TRANSFORMS", |
919 | 0 | flag_already_displayed ? " | " : ""); |
920 | 0 | flag_already_displayed = true; |
921 | 0 | } /* end if */ |
922 | 0 | if (nocol_cause_mode & H5D_MPIO_MPI_OPT_TYPES_ENV_VAR_DISABLED) { |
923 | 0 | H5RS_asprintf_cat(rs, "%sH5D_MPIO_MPI_OPT_TYPES_ENV_VAR_DISABLED", |
924 | 0 | flag_already_displayed ? " | " : ""); |
925 | 0 | flag_already_displayed = true; |
926 | 0 | } /* end if */ |
927 | 0 | if (nocol_cause_mode & H5D_MPIO_NOT_SIMPLE_OR_SCALAR_DATASPACES) { |
928 | 0 | H5RS_asprintf_cat(rs, "%sH5D_MPIO_NOT_SIMPLE_OR_SCALAR_DATASPACES", |
929 | 0 | flag_already_displayed ? " | " : ""); |
930 | 0 | flag_already_displayed = true; |
931 | 0 | } /* end if */ |
932 | 0 | if (nocol_cause_mode & H5D_MPIO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET) { |
933 | 0 | H5RS_asprintf_cat(rs, "%sH5D_MPIO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET", |
934 | 0 | flag_already_displayed ? " | " : ""); |
935 | 0 | flag_already_displayed = true; |
936 | 0 | } /* end if */ |
937 | | |
938 | | /* Display '<none>' if there's no flags set */ |
939 | 0 | if (!flag_already_displayed) |
940 | 0 | H5RS_acat(rs, "<none>"); |
941 | 0 | } /* end block */ |
942 | 0 | break; |
943 | | |
944 | 0 | case 'o': /* H5D_mpio_actual_chunk_opt_mode_t */ |
945 | 0 | { |
946 | 0 | H5D_mpio_actual_chunk_opt_mode_t chunk_opt_mode = |
947 | 0 | (H5D_mpio_actual_chunk_opt_mode_t)va_arg(ap, int); |
948 | |
|
949 | 0 | switch (chunk_opt_mode) { |
950 | 0 | case H5D_MPIO_NO_CHUNK_OPTIMIZATION: |
951 | 0 | H5RS_acat(rs, "H5D_MPIO_NO_CHUNK_OPTIMIZATION"); |
952 | 0 | break; |
953 | | |
954 | 0 | case H5D_MPIO_LINK_CHUNK: |
955 | 0 | H5RS_acat(rs, "H5D_MPIO_LINK_CHUNK"); |
956 | 0 | break; |
957 | | |
958 | 0 | case H5D_MPIO_MULTI_CHUNK: |
959 | 0 | H5RS_acat(rs, "H5D_MPIO_MULTI_CHUNK"); |
960 | 0 | break; |
961 | | |
962 | 0 | default: |
963 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)chunk_opt_mode); |
964 | 0 | break; |
965 | 0 | } /* end switch */ |
966 | 0 | } /* end block */ |
967 | 0 | break; |
968 | | |
969 | 0 | case 'O': /* H5D_operator_t */ |
970 | 0 | { |
971 | 0 | H5D_operator_t dop = (H5D_operator_t)va_arg(ap, H5D_operator_t); |
972 | |
|
973 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)dop); |
974 | 0 | } /* end block */ |
975 | 0 | break; |
976 | | |
977 | 0 | case 's': /* H5D_space_status_t */ |
978 | 0 | { |
979 | 0 | H5D_space_status_t space_status = (H5D_space_status_t)va_arg(ap, int); |
980 | |
|
981 | 0 | switch (space_status) { |
982 | 0 | case H5D_SPACE_STATUS_NOT_ALLOCATED: |
983 | 0 | H5RS_acat(rs, "H5D_SPACE_STATUS_NOT_ALLOCATED"); |
984 | 0 | break; |
985 | | |
986 | 0 | case H5D_SPACE_STATUS_PART_ALLOCATED: |
987 | 0 | H5RS_acat(rs, "H5D_SPACE_STATUS_PART_ALLOCATED"); |
988 | 0 | break; |
989 | | |
990 | 0 | case H5D_SPACE_STATUS_ALLOCATED: |
991 | 0 | H5RS_acat(rs, "H5D_SPACE_STATUS_ALLOCATED"); |
992 | 0 | break; |
993 | | |
994 | 0 | case H5D_SPACE_STATUS_ERROR: |
995 | 0 | H5RS_acat(rs, "H5D_SPACE_STATUS_ERROR"); |
996 | 0 | break; |
997 | | |
998 | 0 | default: |
999 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)space_status); |
1000 | 0 | break; |
1001 | 0 | } /* end switch */ |
1002 | 0 | } /* end block */ |
1003 | 0 | break; |
1004 | | |
1005 | 0 | case 'S': /* H5D_scatter_func_t */ |
1006 | 0 | { |
1007 | 0 | H5D_scatter_func_t sop = (H5D_scatter_func_t)va_arg(ap, H5D_scatter_func_t); |
1008 | |
|
1009 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)sop); |
1010 | 0 | } /* end block */ |
1011 | 0 | break; |
1012 | | |
1013 | 0 | case 't': /* H5FD_mpio_xfer_t */ |
1014 | 0 | { |
1015 | 0 | H5FD_mpio_xfer_t transfer = (H5FD_mpio_xfer_t)va_arg(ap, int); |
1016 | |
|
1017 | 0 | switch (transfer) { |
1018 | 0 | case H5FD_MPIO_INDEPENDENT: |
1019 | 0 | H5RS_acat(rs, "H5FD_MPIO_INDEPENDENT"); |
1020 | 0 | break; |
1021 | | |
1022 | 0 | case H5FD_MPIO_COLLECTIVE: |
1023 | 0 | H5RS_acat(rs, "H5FD_MPIO_COLLECTIVE"); |
1024 | 0 | break; |
1025 | | |
1026 | 0 | default: |
1027 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)transfer); |
1028 | 0 | break; |
1029 | 0 | } /* end switch */ |
1030 | 0 | } /* end block */ |
1031 | 0 | break; |
1032 | | |
1033 | 0 | case 'v': /* H5D_vds_view_t */ |
1034 | 0 | { |
1035 | 0 | H5D_vds_view_t view = (H5D_vds_view_t)va_arg(ap, int); |
1036 | |
|
1037 | 0 | switch (view) { |
1038 | 0 | case H5D_VDS_ERROR: |
1039 | 0 | H5RS_acat(rs, "H5D_VDS_ERROR"); |
1040 | 0 | break; |
1041 | | |
1042 | 0 | case H5D_VDS_FIRST_MISSING: |
1043 | 0 | H5RS_acat(rs, "H5D_VDS_FIRST_MISSING"); |
1044 | 0 | break; |
1045 | | |
1046 | 0 | case H5D_VDS_LAST_AVAILABLE: |
1047 | 0 | H5RS_acat(rs, "H5D_VDS_LAST_AVAILABLE"); |
1048 | 0 | break; |
1049 | | |
1050 | 0 | default: |
1051 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)view); |
1052 | 0 | break; |
1053 | 0 | } /* end switch */ |
1054 | 0 | } /* end block */ |
1055 | 0 | break; |
1056 | | |
1057 | 0 | case 'V': /* H5FD_class_value_t */ |
1058 | 0 | { |
1059 | 0 | H5FD_class_value_t class_val = (H5FD_class_value_t)va_arg(ap, H5FD_class_value_t); |
1060 | |
|
1061 | 0 | switch (class_val) { |
1062 | 0 | case H5_VFD_INVALID: |
1063 | 0 | H5RS_acat(rs, "H5_VFD_INVALID"); |
1064 | 0 | break; |
1065 | 0 | case H5_VFD_SEC2: |
1066 | 0 | H5RS_acat(rs, "H5_VFD_SEC2"); |
1067 | 0 | break; |
1068 | 0 | case H5_VFD_CORE: |
1069 | 0 | H5RS_acat(rs, "H5_VFD_CORE"); |
1070 | 0 | break; |
1071 | 0 | case H5_VFD_LOG: |
1072 | 0 | H5RS_acat(rs, "H5_VFD_LOG"); |
1073 | 0 | break; |
1074 | 0 | case H5_VFD_FAMILY: |
1075 | 0 | H5RS_acat(rs, "H5_VFD_FAMILY"); |
1076 | 0 | break; |
1077 | 0 | case H5_VFD_MULTI: |
1078 | 0 | H5RS_acat(rs, "H5_VFD_MULTI"); |
1079 | 0 | break; |
1080 | 0 | case H5_VFD_STDIO: |
1081 | 0 | H5RS_acat(rs, "H5_VFD_STDIO"); |
1082 | 0 | break; |
1083 | | #ifdef H5_HAVE_PARALLEL |
1084 | | case H5_VFD_MPIO: |
1085 | | H5RS_acat(rs, "H5_VFD_MPIO"); |
1086 | | break; |
1087 | | #endif |
1088 | | #ifdef H5_HAVE_DIRECT |
1089 | | case H5_VFD_DIRECT: |
1090 | | H5RS_acat(rs, "H5_VFD_DIRECT"); |
1091 | | break; |
1092 | | #endif |
1093 | | #ifdef H5_HAVE_MIRROR_VFD |
1094 | | case H5_VFD_MIRROR: |
1095 | | H5RS_acat(rs, "H5_VFD_MIRROR"); |
1096 | | break; |
1097 | | #endif |
1098 | | #ifdef H5_HAVE_LIBHDFS |
1099 | | case H5_VFD_HDFS: |
1100 | | H5RS_acat(rs, "H5_VFD_HDFS"); |
1101 | | break; |
1102 | | #endif |
1103 | | #ifdef H5_HAVE_ROS3_VFD |
1104 | | case H5_VFD_ROS3: |
1105 | | H5RS_acat(rs, "H5_VFD_ROS3"); |
1106 | | break; |
1107 | | #endif |
1108 | | #ifdef H5_HAVE_SUBFILING_VFD |
1109 | | case H5_VFD_SUBFILING: |
1110 | | H5RS_acat(rs, "H5_VFD_SUBFILING"); |
1111 | | break; |
1112 | | #endif |
1113 | 0 | case H5_VFD_ONION: |
1114 | 0 | H5RS_acat(rs, "H5_VFD_ONION"); |
1115 | 0 | break; |
1116 | 0 | default: |
1117 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)class_val); |
1118 | 0 | break; |
1119 | 0 | } |
1120 | 0 | } /* end block */ |
1121 | 0 | break; |
1122 | | |
1123 | 0 | default: |
1124 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(D%c)", type[1]); |
1125 | 0 | goto error; |
1126 | 0 | } /* end switch */ |
1127 | 0 | break; |
1128 | | |
1129 | 0 | case 'e': /* herr_t */ |
1130 | 0 | { |
1131 | 0 | herr_t status = va_arg(ap, herr_t); |
1132 | |
|
1133 | 0 | if (status >= 0) |
1134 | 0 | H5RS_acat(rs, "SUCCEED"); |
1135 | 0 | else |
1136 | 0 | H5RS_acat(rs, "FAIL"); |
1137 | 0 | } /* end block */ |
1138 | 0 | break; |
1139 | | |
1140 | 0 | case 'E': |
1141 | 0 | switch (type[1]) { |
1142 | 0 | #ifndef H5_NO_DEPRECATED_SYMBOLS |
1143 | 0 | case 'a': /* H5E_auto1_t */ |
1144 | 0 | { |
1145 | 0 | H5E_auto1_t eauto1 = (H5E_auto1_t)va_arg(ap, H5E_auto1_t); |
1146 | |
|
1147 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)eauto1); |
1148 | 0 | } /* end block */ |
1149 | 0 | break; |
1150 | 0 | #endif /* H5_NO_DEPRECATED_SYMBOLS */ |
1151 | | |
1152 | 0 | case 'A': /* H5E_auto2_t */ |
1153 | 0 | { |
1154 | 0 | H5E_auto2_t eauto2 = (H5E_auto2_t)va_arg(ap, H5E_auto2_t); |
1155 | |
|
1156 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)eauto2); |
1157 | 0 | } /* end block */ |
1158 | 0 | break; |
1159 | | |
1160 | 0 | case 'C': /* H5ES_event_complete_func_t */ |
1161 | 0 | { |
1162 | 0 | H5ES_event_complete_func_t cfunc = |
1163 | 0 | (H5ES_event_complete_func_t)va_arg(ap, H5ES_event_complete_func_t); |
1164 | |
|
1165 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)cfunc); |
1166 | 0 | } /* end block */ |
1167 | 0 | break; |
1168 | | |
1169 | 0 | case 'd': /* H5E_direction_t */ |
1170 | 0 | { |
1171 | 0 | H5E_direction_t direction = (H5E_direction_t)va_arg(ap, int); |
1172 | |
|
1173 | 0 | switch (direction) { |
1174 | 0 | case H5E_WALK_UPWARD: |
1175 | 0 | H5RS_acat(rs, "H5E_WALK_UPWARD"); |
1176 | 0 | break; |
1177 | | |
1178 | 0 | case H5E_WALK_DOWNWARD: |
1179 | 0 | H5RS_acat(rs, "H5E_WALK_DOWNWARD"); |
1180 | 0 | break; |
1181 | | |
1182 | 0 | default: |
1183 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)direction); |
1184 | 0 | break; |
1185 | 0 | } /* end switch */ |
1186 | 0 | } /* end block */ |
1187 | 0 | break; |
1188 | | |
1189 | 0 | case 'e': /* H5E_error_t */ |
1190 | 0 | { |
1191 | 0 | H5E_error2_t *error = va_arg(ap, H5E_error2_t *); |
1192 | |
|
1193 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)error); |
1194 | 0 | } /* end block */ |
1195 | 0 | break; |
1196 | | |
1197 | 0 | case 'I': /* H5ES_event_insert_func_t */ |
1198 | 0 | { |
1199 | 0 | H5ES_event_insert_func_t ifunc = |
1200 | 0 | (H5ES_event_insert_func_t)va_arg(ap, H5ES_event_insert_func_t); |
1201 | |
|
1202 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)ifunc); |
1203 | 0 | } /* end block */ |
1204 | 0 | break; |
1205 | | |
1206 | 0 | case 's': /* H5ES_status_t */ |
1207 | 0 | { |
1208 | 0 | H5ES_status_t status = (H5ES_status_t)va_arg(ap, int); |
1209 | |
|
1210 | 0 | switch (status) { |
1211 | 0 | case H5ES_STATUS_IN_PROGRESS: |
1212 | 0 | H5RS_acat(rs, "H5ES_STATUS_IN_PROGRESS"); |
1213 | 0 | break; |
1214 | | |
1215 | 0 | case H5ES_STATUS_SUCCEED: |
1216 | 0 | H5RS_acat(rs, "H5ES_STATUS_SUCCEED"); |
1217 | 0 | break; |
1218 | | |
1219 | 0 | case H5ES_STATUS_CANCELED: |
1220 | 0 | H5RS_acat(rs, "H5ES_STATUS_CANCELED"); |
1221 | 0 | break; |
1222 | | |
1223 | 0 | case H5ES_STATUS_FAIL: |
1224 | 0 | H5RS_acat(rs, "H5ES_STATUS_FAIL"); |
1225 | 0 | break; |
1226 | | |
1227 | 0 | default: |
1228 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)status); |
1229 | 0 | break; |
1230 | 0 | } /* end switch */ |
1231 | 0 | } /* end block */ |
1232 | 0 | break; |
1233 | | |
1234 | 0 | case 't': /* H5E_type_t */ |
1235 | 0 | { |
1236 | 0 | H5E_type_t etype = (H5E_type_t)va_arg(ap, int); |
1237 | |
|
1238 | 0 | switch (etype) { |
1239 | 0 | case H5E_MAJOR: |
1240 | 0 | H5RS_acat(rs, "H5E_MAJOR"); |
1241 | 0 | break; |
1242 | | |
1243 | 0 | case H5E_MINOR: |
1244 | 0 | H5RS_acat(rs, "H5E_MINOR"); |
1245 | 0 | break; |
1246 | | |
1247 | 0 | default: |
1248 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)etype); |
1249 | 0 | break; |
1250 | 0 | } /* end switch */ |
1251 | 0 | } /* end block */ |
1252 | 0 | break; |
1253 | | |
1254 | 0 | default: |
1255 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(E%c)", type[1]); |
1256 | 0 | goto error; |
1257 | 0 | } /* end switch */ |
1258 | 0 | break; |
1259 | | |
1260 | 0 | case 'F': |
1261 | 0 | switch (type[1]) { |
1262 | 0 | case 'C': /* H5FD_class_t */ |
1263 | 0 | { |
1264 | 0 | H5FD_class_t cls = va_arg(ap, H5FD_class_t); |
1265 | |
|
1266 | 0 | H5RS_asprintf_cat(rs, "{'%s', %" PRIuHADDR ", ", cls.name, cls.maxaddr); |
1267 | 0 | H5_trace_args_close_degree(rs, cls.fc_degree); |
1268 | 0 | H5RS_acat(rs, ", ...}"); |
1269 | 0 | } /* end block */ |
1270 | 0 | break; |
1271 | | |
1272 | 0 | case 'd': /* H5F_close_degree_t */ |
1273 | 0 | { |
1274 | 0 | H5F_close_degree_t degree = (H5F_close_degree_t)va_arg(ap, int); |
1275 | |
|
1276 | 0 | H5_trace_args_close_degree(rs, degree); |
1277 | 0 | } /* end block */ |
1278 | 0 | break; |
1279 | | |
1280 | 0 | case 'f': /* H5F_fspace_strategy_t */ |
1281 | 0 | { |
1282 | 0 | H5F_fspace_strategy_t fs_strategy = (H5F_fspace_strategy_t)va_arg(ap, int); |
1283 | |
|
1284 | 0 | switch (fs_strategy) { |
1285 | 0 | case H5F_FSPACE_STRATEGY_FSM_AGGR: |
1286 | 0 | H5RS_acat(rs, "H5F_FSPACE_STRATEGY_FSM_AGGR"); |
1287 | 0 | break; |
1288 | | |
1289 | 0 | case H5F_FSPACE_STRATEGY_PAGE: |
1290 | 0 | H5RS_acat(rs, "H5F_FSPACE_STRATEGY_PAGE"); |
1291 | 0 | break; |
1292 | | |
1293 | 0 | case H5F_FSPACE_STRATEGY_AGGR: |
1294 | 0 | H5RS_acat(rs, "H5F_FSPACE_STRATEGY_AGGR"); |
1295 | 0 | break; |
1296 | | |
1297 | 0 | case H5F_FSPACE_STRATEGY_NONE: |
1298 | 0 | H5RS_acat(rs, "H5F_FSPACE_STRATEGY_NONE"); |
1299 | 0 | break; |
1300 | | |
1301 | 0 | case H5F_FSPACE_STRATEGY_NTYPES: |
1302 | 0 | default: |
1303 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)fs_strategy); |
1304 | 0 | break; |
1305 | 0 | } /* end switch */ |
1306 | 0 | } /* end block */ |
1307 | 0 | break; |
1308 | | |
1309 | 0 | case 'F': /* H5F_flush_cb_t */ |
1310 | 0 | { |
1311 | 0 | H5F_flush_cb_t fflsh = (H5F_flush_cb_t)va_arg(ap, H5F_flush_cb_t); |
1312 | |
|
1313 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)fflsh); |
1314 | 0 | } /* end block */ |
1315 | 0 | break; |
1316 | | |
1317 | 0 | case 'I': /* H5F_info2_t */ |
1318 | 0 | { |
1319 | 0 | H5F_info2_t fi2 = va_arg(ap, H5F_info2_t); |
1320 | |
|
1321 | 0 | H5RS_asprintf_cat(rs, "{{%u, %" PRIuHSIZE ", %" PRIuHSIZE "}, ", |
1322 | 0 | fi2.super.version, fi2.super.super_size, |
1323 | 0 | fi2.super.super_ext_size); |
1324 | 0 | H5RS_asprintf_cat(rs, "{%u, %" PRIuHSIZE ", %" PRIuHSIZE "}, ", fi2.free.version, |
1325 | 0 | fi2.free.meta_size, fi2.free.tot_space); |
1326 | 0 | H5RS_asprintf_cat(rs, "{%u, %" PRIuHSIZE ", {%" PRIuHSIZE ", %" PRIuHSIZE "}}}", |
1327 | 0 | fi2.sohm.version, fi2.sohm.hdr_size, |
1328 | 0 | fi2.sohm.msgs_info.index_size, fi2.sohm.msgs_info.heap_size); |
1329 | 0 | } /* end block */ |
1330 | 0 | break; |
1331 | | |
1332 | 0 | case 'm': /* H5F_mem_t */ |
1333 | 0 | { |
1334 | 0 | H5F_mem_t mem_type = (H5F_mem_t)va_arg(ap, int); |
1335 | |
|
1336 | 0 | switch (mem_type) { |
1337 | 0 | case H5FD_MEM_NOLIST: |
1338 | 0 | H5RS_acat(rs, "H5FD_MEM_NOLIST"); |
1339 | 0 | break; |
1340 | | |
1341 | 0 | case H5FD_MEM_DEFAULT: |
1342 | 0 | H5RS_acat(rs, "H5FD_MEM_DEFAULT"); |
1343 | 0 | break; |
1344 | | |
1345 | 0 | case H5FD_MEM_SUPER: |
1346 | 0 | H5RS_acat(rs, "H5FD_MEM_SUPER"); |
1347 | 0 | break; |
1348 | | |
1349 | 0 | case H5FD_MEM_BTREE: |
1350 | 0 | H5RS_acat(rs, "H5FD_MEM_BTREE"); |
1351 | 0 | break; |
1352 | | |
1353 | 0 | case H5FD_MEM_DRAW: |
1354 | 0 | H5RS_acat(rs, "H5FD_MEM_DRAW"); |
1355 | 0 | break; |
1356 | | |
1357 | 0 | case H5FD_MEM_GHEAP: |
1358 | 0 | H5RS_acat(rs, "H5FD_MEM_GHEAP"); |
1359 | 0 | break; |
1360 | | |
1361 | 0 | case H5FD_MEM_LHEAP: |
1362 | 0 | H5RS_acat(rs, "H5FD_MEM_LHEAP"); |
1363 | 0 | break; |
1364 | | |
1365 | 0 | case H5FD_MEM_OHDR: |
1366 | 0 | H5RS_acat(rs, "H5FD_MEM_OHDR"); |
1367 | 0 | break; |
1368 | | |
1369 | 0 | case H5FD_MEM_NTYPES: |
1370 | 0 | default: |
1371 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)mem_type); |
1372 | 0 | break; |
1373 | 0 | } /* end switch */ |
1374 | 0 | } /* end block */ |
1375 | 0 | break; |
1376 | | |
1377 | 0 | case 's': /* H5F_scope_t */ |
1378 | 0 | { |
1379 | 0 | H5F_scope_t scope = (H5F_scope_t)va_arg(ap, int); |
1380 | |
|
1381 | 0 | switch (scope) { |
1382 | 0 | case H5F_SCOPE_LOCAL: |
1383 | 0 | H5RS_acat(rs, "H5F_SCOPE_LOCAL"); |
1384 | 0 | break; |
1385 | | |
1386 | 0 | case H5F_SCOPE_GLOBAL: |
1387 | 0 | H5RS_acat(rs, "H5F_SCOPE_GLOBAL"); |
1388 | 0 | break; |
1389 | | |
1390 | 0 | default: |
1391 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)scope); |
1392 | 0 | break; |
1393 | 0 | } /* end switch */ |
1394 | 0 | } /* end block */ |
1395 | 0 | break; |
1396 | | |
1397 | 0 | case 't': /* H5F_file_space_type_t */ |
1398 | 0 | { |
1399 | 0 | H5F_file_space_type_t fspace_type = (H5F_file_space_type_t)va_arg(ap, int); |
1400 | |
|
1401 | 0 | switch (fspace_type) { |
1402 | 0 | case H5F_FILE_SPACE_DEFAULT: |
1403 | 0 | H5RS_acat(rs, "H5F_FILE_SPACE_DEFAULT"); |
1404 | 0 | break; |
1405 | | |
1406 | 0 | case H5F_FILE_SPACE_ALL_PERSIST: |
1407 | 0 | H5RS_acat(rs, "H5F_FILE_SPACE_ALL_PERSIST"); |
1408 | 0 | break; |
1409 | | |
1410 | 0 | case H5F_FILE_SPACE_ALL: |
1411 | 0 | H5RS_acat(rs, "H5F_FILE_SPACE_ALL"); |
1412 | 0 | break; |
1413 | | |
1414 | 0 | case H5F_FILE_SPACE_AGGR_VFD: |
1415 | 0 | H5RS_acat(rs, "H5F_FILE_SPACE_AGGR_VFD"); |
1416 | 0 | break; |
1417 | | |
1418 | 0 | case H5F_FILE_SPACE_VFD: |
1419 | 0 | H5RS_acat(rs, "H5F_FILE_SPACE_VFD"); |
1420 | 0 | break; |
1421 | | |
1422 | 0 | case H5F_FILE_SPACE_NTYPES: |
1423 | 0 | default: |
1424 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)fspace_type); |
1425 | 0 | break; |
1426 | 0 | } /* end switch */ |
1427 | 0 | } /* end block */ |
1428 | 0 | break; |
1429 | | |
1430 | 0 | case 'v': /* H5F_libver_t */ |
1431 | 0 | { |
1432 | 0 | H5F_libver_t libver_vers = (H5F_libver_t)va_arg(ap, int); |
1433 | |
|
1434 | 0 | switch (libver_vers) { |
1435 | 0 | case H5F_LIBVER_EARLIEST: |
1436 | 0 | H5RS_acat(rs, "H5F_LIBVER_EARLIEST"); |
1437 | 0 | break; |
1438 | | |
1439 | 0 | case H5F_LIBVER_V18: |
1440 | 0 | H5RS_acat(rs, "H5F_LIBVER_V18"); |
1441 | 0 | break; |
1442 | | |
1443 | 0 | case H5F_LIBVER_V110: |
1444 | 0 | H5RS_acat(rs, "H5F_LIBVER_V110"); |
1445 | 0 | break; |
1446 | | |
1447 | 0 | case H5F_LIBVER_V112: |
1448 | 0 | H5RS_acat(rs, "H5F_LIBVER_V112"); |
1449 | 0 | break; |
1450 | | |
1451 | 0 | case H5F_LIBVER_V114: |
1452 | 0 | H5RS_acat(rs, "H5F_LIBVER_V114"); |
1453 | 0 | break; |
1454 | | |
1455 | 0 | case H5F_LIBVER_V200: |
1456 | 0 | HDcompile_assert(H5F_LIBVER_LATEST == H5F_LIBVER_V200); |
1457 | 0 | H5RS_acat(rs, "H5F_LIBVER_LATEST"); |
1458 | 0 | break; |
1459 | | |
1460 | 0 | case H5F_LIBVER_ERROR: |
1461 | 0 | case H5F_LIBVER_NBOUNDS: |
1462 | 0 | default: |
1463 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)libver_vers); |
1464 | 0 | break; |
1465 | 0 | } /* end switch */ |
1466 | 0 | } /* end block */ |
1467 | 0 | break; |
1468 | | |
1469 | 0 | default: |
1470 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(F%c)", type[1]); |
1471 | 0 | goto error; |
1472 | 0 | } /* end switch */ |
1473 | 0 | break; |
1474 | | |
1475 | 0 | case 'G': |
1476 | 0 | switch (type[1]) { |
1477 | 0 | #ifndef H5_NO_DEPRECATED_SYMBOLS |
1478 | 0 | case 'i': /* H5G_iterate_t */ |
1479 | 0 | { |
1480 | 0 | H5G_iterate_t git = (H5G_iterate_t)va_arg(ap, H5G_iterate_t); |
1481 | |
|
1482 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)git); |
1483 | 0 | } break; |
1484 | | |
1485 | 0 | case 'I': /* H5G_info_t */ |
1486 | 0 | { |
1487 | 0 | H5G_info_t ginfo = va_arg(ap, H5G_info_t); |
1488 | |
|
1489 | 0 | H5RS_acat(rs, "{"); |
1490 | 0 | switch (ginfo.storage_type) { |
1491 | 0 | case H5G_STORAGE_TYPE_UNKNOWN: |
1492 | 0 | H5RS_asprintf_cat(rs, "H5G_STORAGE_TYPE_UNKNOWN"); |
1493 | 0 | break; |
1494 | | |
1495 | 0 | case H5G_STORAGE_TYPE_SYMBOL_TABLE: |
1496 | 0 | H5RS_asprintf_cat(rs, "H5G_STORAGE_TYPE_SYMBOL_TABLE"); |
1497 | 0 | break; |
1498 | | |
1499 | 0 | case H5G_STORAGE_TYPE_COMPACT: |
1500 | 0 | H5RS_asprintf_cat(rs, "H5G_STORAGE_TYPE_COMPACT"); |
1501 | 0 | break; |
1502 | | |
1503 | 0 | case H5G_STORAGE_TYPE_DENSE: |
1504 | 0 | H5RS_asprintf_cat(rs, "H5G_STORAGE_TYPE_DENSE"); |
1505 | 0 | break; |
1506 | | |
1507 | 0 | default: |
1508 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)ginfo.storage_type); |
1509 | 0 | break; |
1510 | 0 | } |
1511 | 0 | H5RS_asprintf_cat(rs, ", "); |
1512 | 0 | H5RS_asprintf_cat(rs, "%" PRIuHSIZE ", ", ginfo.nlinks); |
1513 | 0 | H5RS_asprintf_cat(rs, "%" PRId64 ", ", ginfo.max_corder); |
1514 | 0 | H5_trace_args_bool(rs, ginfo.mounted); |
1515 | 0 | H5RS_asprintf_cat(rs, "}"); |
1516 | 0 | } break; |
1517 | | |
1518 | 0 | case 'o': /* H5G_obj_t */ |
1519 | 0 | { |
1520 | 0 | H5G_obj_t obj_type = (H5G_obj_t)va_arg(ap, int); |
1521 | |
|
1522 | 0 | switch (obj_type) { |
1523 | 0 | case H5G_UNKNOWN: |
1524 | 0 | H5RS_acat(rs, "H5G_UNKNOWN"); |
1525 | 0 | break; |
1526 | | |
1527 | 0 | case H5G_GROUP: |
1528 | 0 | H5RS_acat(rs, "H5G_GROUP"); |
1529 | 0 | break; |
1530 | | |
1531 | 0 | case H5G_DATASET: |
1532 | 0 | H5RS_acat(rs, "H5G_DATASET"); |
1533 | 0 | break; |
1534 | | |
1535 | 0 | case H5G_TYPE: |
1536 | 0 | H5RS_acat(rs, "H5G_TYPE"); |
1537 | 0 | break; |
1538 | | |
1539 | 0 | case H5G_LINK: |
1540 | 0 | H5RS_acat(rs, "H5G_LINK"); |
1541 | 0 | break; |
1542 | | |
1543 | 0 | case H5G_UDLINK: |
1544 | 0 | H5RS_acat(rs, "H5G_UDLINK"); |
1545 | 0 | break; |
1546 | | |
1547 | 0 | case H5G_RESERVED_5: |
1548 | 0 | case H5G_RESERVED_6: |
1549 | 0 | case H5G_RESERVED_7: |
1550 | 0 | H5RS_asprintf_cat(rs, "H5G_RESERVED(%ld)", (long)obj_type); |
1551 | 0 | break; |
1552 | | |
1553 | 0 | default: |
1554 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)obj_type); |
1555 | 0 | break; |
1556 | 0 | } /* end switch */ |
1557 | 0 | } /* end block */ |
1558 | 0 | break; |
1559 | | |
1560 | 0 | case 's': /* H5G_stat_t */ |
1561 | 0 | { |
1562 | 0 | H5G_stat_t *statbuf = va_arg(ap, H5G_stat_t *); |
1563 | |
|
1564 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)statbuf); |
1565 | 0 | } /* end block */ |
1566 | 0 | break; |
1567 | 0 | #endif /* H5_NO_DEPRECATED_SYMBOLS */ |
1568 | | |
1569 | 0 | default: |
1570 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(G%c)", type[1]); |
1571 | 0 | goto error; |
1572 | 0 | } /* end switch */ |
1573 | 0 | break; |
1574 | | |
1575 | 0 | case 'h': /* hsize_t */ |
1576 | 0 | { |
1577 | 0 | hsize_t hsize = va_arg(ap, hsize_t); |
1578 | |
|
1579 | 0 | if (H5S_UNLIMITED == hsize) |
1580 | 0 | H5RS_acat(rs, "H5S_UNLIMITED"); |
1581 | 0 | else { |
1582 | 0 | H5RS_asprintf_cat(rs, "%" PRIuHSIZE, hsize); |
1583 | 0 | asize[argno] = (hssize_t)hsize; |
1584 | 0 | } /* end else */ |
1585 | 0 | } /* end block */ |
1586 | 0 | break; |
1587 | | |
1588 | 0 | case 'H': |
1589 | 0 | switch (type[1]) { |
1590 | 0 | case 'c': /* H5_atclose_func_t */ |
1591 | 0 | { |
1592 | 0 | H5_atclose_func_t cfunc = (H5_atclose_func_t)va_arg(ap, H5_atclose_func_t); |
1593 | |
|
1594 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)cfunc); |
1595 | 0 | } /* end block */ |
1596 | 0 | break; |
1597 | | |
1598 | 0 | case 's': /* hssize_t */ |
1599 | 0 | { |
1600 | 0 | hssize_t hssize = va_arg(ap, hssize_t); |
1601 | |
|
1602 | 0 | H5RS_asprintf_cat(rs, "%" PRIdHSIZE, hssize); |
1603 | 0 | asize[argno] = (hssize_t)hssize; |
1604 | 0 | } /* end block */ |
1605 | 0 | break; |
1606 | | |
1607 | 0 | default: |
1608 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(H%c)", type[1]); |
1609 | 0 | goto error; |
1610 | 0 | } /* end switch */ |
1611 | 0 | break; |
1612 | | |
1613 | 0 | case 'i': /* hid_t (and H5E_major_t / H5E_minor_t) */ |
1614 | 0 | { |
1615 | 0 | hid_t obj = va_arg(ap, hid_t); |
1616 | |
|
1617 | 0 | if (H5P_DEFAULT == obj) |
1618 | 0 | H5RS_acat(rs, "H5P_DEFAULT"); |
1619 | 0 | else if (obj < 0) |
1620 | 0 | H5RS_acat(rs, "FAIL"); |
1621 | 0 | else { |
1622 | 0 | switch (H5I_TYPE(obj)) { /* Use internal H5I macro instead of function call */ |
1623 | 0 | case H5I_UNINIT: |
1624 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (uninit - error)", (unsigned long long)obj); |
1625 | 0 | break; |
1626 | | |
1627 | 0 | case H5I_BADID: |
1628 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (badid - error)", (unsigned long long)obj); |
1629 | 0 | break; |
1630 | | |
1631 | 0 | case H5I_FILE: |
1632 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (file)", (unsigned long long)obj); |
1633 | 0 | break; |
1634 | | |
1635 | 0 | case H5I_GROUP: |
1636 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (group)", (unsigned long long)obj); |
1637 | 0 | break; |
1638 | | |
1639 | 0 | case H5I_DATATYPE: |
1640 | 0 | if (obj == H5T_NATIVE_SCHAR_g) |
1641 | 0 | H5RS_acat(rs, "H5T_NATIVE_SCHAR"); |
1642 | 0 | else if (obj == H5T_NATIVE_UCHAR_g) |
1643 | 0 | H5RS_acat(rs, "H5T_NATIVE_UCHAR"); |
1644 | 0 | else if (obj == H5T_NATIVE_SHORT_g) |
1645 | 0 | H5RS_acat(rs, "H5T_NATIVE_SHORT"); |
1646 | 0 | else if (obj == H5T_NATIVE_USHORT_g) |
1647 | 0 | H5RS_acat(rs, "H5T_NATIVE_USHORT"); |
1648 | 0 | else if (obj == H5T_NATIVE_INT_g) |
1649 | 0 | H5RS_acat(rs, "H5T_NATIVE_INT"); |
1650 | 0 | else if (obj == H5T_NATIVE_UINT_g) |
1651 | 0 | H5RS_acat(rs, "H5T_NATIVE_UINT"); |
1652 | 0 | else if (obj == H5T_NATIVE_LONG_g) |
1653 | 0 | H5RS_acat(rs, "H5T_NATIVE_LONG"); |
1654 | 0 | else if (obj == H5T_NATIVE_ULONG_g) |
1655 | 0 | H5RS_acat(rs, "H5T_NATIVE_ULONG"); |
1656 | 0 | else if (obj == H5T_NATIVE_LLONG_g) |
1657 | 0 | H5RS_acat(rs, "H5T_NATIVE_LLONG"); |
1658 | 0 | else if (obj == H5T_NATIVE_ULLONG_g) |
1659 | 0 | H5RS_acat(rs, "H5T_NATIVE_ULLONG"); |
1660 | | #ifdef H5_HAVE__FLOAT16 |
1661 | | else if (obj == H5T_NATIVE_FLOAT16_g) |
1662 | | H5RS_acat(rs, "H5T_NATIVE_FLOAT16"); |
1663 | | #endif |
1664 | 0 | else if (obj == H5T_NATIVE_FLOAT_g) |
1665 | 0 | H5RS_acat(rs, "H5T_NATIVE_FLOAT"); |
1666 | 0 | else if (obj == H5T_NATIVE_DOUBLE_g) |
1667 | 0 | H5RS_acat(rs, "H5T_NATIVE_DOUBLE"); |
1668 | 0 | else if (obj == H5T_NATIVE_LDOUBLE_g) |
1669 | 0 | H5RS_acat(rs, "H5T_NATIVE_LDOUBLE"); |
1670 | 0 | #ifdef H5_HAVE_COMPLEX_NUMBERS |
1671 | 0 | else if (obj == H5T_NATIVE_FLOAT_COMPLEX_g) |
1672 | 0 | H5RS_acat(rs, "H5T_NATIVE_FLOAT_COMPLEX"); |
1673 | 0 | else if (obj == H5T_NATIVE_DOUBLE_COMPLEX_g) |
1674 | 0 | H5RS_acat(rs, "H5T_NATIVE_DOUBLE_COMPLEX"); |
1675 | 0 | else if (obj == H5T_NATIVE_LDOUBLE_COMPLEX_g) |
1676 | 0 | H5RS_acat(rs, "H5T_NATIVE_LDOUBLE_COMPLEX"); |
1677 | 0 | #endif |
1678 | 0 | else if (obj == H5T_IEEE_F16BE_g) |
1679 | 0 | H5RS_acat(rs, "H5T_IEEE_F16BE"); |
1680 | 0 | else if (obj == H5T_IEEE_F16LE_g) |
1681 | 0 | H5RS_acat(rs, "H5T_IEEE_F16LE"); |
1682 | 0 | else if (obj == H5T_IEEE_F32BE_g) |
1683 | 0 | H5RS_acat(rs, "H5T_IEEE_F32BE"); |
1684 | 0 | else if (obj == H5T_IEEE_F32LE_g) |
1685 | 0 | H5RS_acat(rs, "H5T_IEEE_F32LE"); |
1686 | 0 | else if (obj == H5T_IEEE_F64BE_g) |
1687 | 0 | H5RS_acat(rs, "H5T_IEEE_F64BE"); |
1688 | 0 | else if (obj == H5T_IEEE_F64LE_g) |
1689 | 0 | H5RS_acat(rs, "H5T_IEEE_F64LE"); |
1690 | 0 | else if (obj == H5T_FLOAT_BFLOAT16BE_g) |
1691 | 0 | H5RS_acat(rs, "H5T_FLOAT_BFLOAT16BE"); |
1692 | 0 | else if (obj == H5T_FLOAT_BFLOAT16LE_g) |
1693 | 0 | H5RS_acat(rs, "H5T_FLOAT_BFLOAT16LE"); |
1694 | 0 | else if (obj == H5T_FLOAT_F8E4M3_g) |
1695 | 0 | H5RS_acat(rs, "H5T_FLOAT_F8E4M3"); |
1696 | 0 | else if (obj == H5T_FLOAT_F8E5M2_g) |
1697 | 0 | H5RS_acat(rs, "H5T_FLOAT_F8E5M2"); |
1698 | 0 | else if (obj == H5T_FLOAT_F6E2M3_g) |
1699 | 0 | H5RS_acat(rs, "H5T_FLOAT_F6E2M3"); |
1700 | 0 | else if (obj == H5T_FLOAT_F6E3M2_g) |
1701 | 0 | H5RS_acat(rs, "H5T_FLOAT_F6E3M2"); |
1702 | 0 | else if (obj == H5T_FLOAT_F4E2M1_g) |
1703 | 0 | H5RS_acat(rs, "H5T_FLOAT_F4E2M1"); |
1704 | 0 | else if (obj == H5T_COMPLEX_IEEE_F16BE_g) |
1705 | 0 | H5RS_acat(rs, "H5T_COMPLEX_IEEE_F16BE"); |
1706 | 0 | else if (obj == H5T_COMPLEX_IEEE_F16LE_g) |
1707 | 0 | H5RS_acat(rs, "H5T_COMPLEX_IEEE_F16LE"); |
1708 | 0 | else if (obj == H5T_COMPLEX_IEEE_F32BE_g) |
1709 | 0 | H5RS_acat(rs, "H5T_COMPLEX_IEEE_F32BE"); |
1710 | 0 | else if (obj == H5T_COMPLEX_IEEE_F32LE_g) |
1711 | 0 | H5RS_acat(rs, "H5T_COMPLEX_IEEE_F32LE"); |
1712 | 0 | else if (obj == H5T_COMPLEX_IEEE_F64BE_g) |
1713 | 0 | H5RS_acat(rs, "H5T_COMPLEX_IEEE_F64BE"); |
1714 | 0 | else if (obj == H5T_COMPLEX_IEEE_F64LE_g) |
1715 | 0 | H5RS_acat(rs, "H5T_COMPLEX_IEEE_F64LE"); |
1716 | 0 | else if (obj == H5T_STD_I8BE_g) |
1717 | 0 | H5RS_acat(rs, "H5T_STD_I8BE"); |
1718 | 0 | else if (obj == H5T_STD_I8LE_g) |
1719 | 0 | H5RS_acat(rs, "H5T_STD_I8LE"); |
1720 | 0 | else if (obj == H5T_STD_I16BE_g) |
1721 | 0 | H5RS_acat(rs, "H5T_STD_I16BE"); |
1722 | 0 | else if (obj == H5T_STD_I16LE_g) |
1723 | 0 | H5RS_acat(rs, "H5T_STD_I16LE"); |
1724 | 0 | else if (obj == H5T_STD_I32BE_g) |
1725 | 0 | H5RS_acat(rs, "H5T_STD_I32BE"); |
1726 | 0 | else if (obj == H5T_STD_I32LE_g) |
1727 | 0 | H5RS_acat(rs, "H5T_STD_I32LE"); |
1728 | 0 | else if (obj == H5T_STD_I64BE_g) |
1729 | 0 | H5RS_acat(rs, "H5T_STD_I64BE"); |
1730 | 0 | else if (obj == H5T_STD_I64LE_g) |
1731 | 0 | H5RS_acat(rs, "H5T_STD_I64LE"); |
1732 | 0 | else if (obj == H5T_STD_U8BE_g) |
1733 | 0 | H5RS_acat(rs, "H5T_STD_U8BE"); |
1734 | 0 | else if (obj == H5T_STD_U8LE_g) |
1735 | 0 | H5RS_acat(rs, "H5T_STD_U8LE"); |
1736 | 0 | else if (obj == H5T_STD_U16BE_g) |
1737 | 0 | H5RS_acat(rs, "H5T_STD_U16BE"); |
1738 | 0 | else if (obj == H5T_STD_U16LE_g) |
1739 | 0 | H5RS_acat(rs, "H5T_STD_U16LE"); |
1740 | 0 | else if (obj == H5T_STD_U32BE_g) |
1741 | 0 | H5RS_acat(rs, "H5T_STD_U32BE"); |
1742 | 0 | else if (obj == H5T_STD_U32LE_g) |
1743 | 0 | H5RS_acat(rs, "H5T_STD_U32LE"); |
1744 | 0 | else if (obj == H5T_STD_U64BE_g) |
1745 | 0 | H5RS_acat(rs, "H5T_STD_U64BE"); |
1746 | 0 | else if (obj == H5T_STD_U64LE_g) |
1747 | 0 | H5RS_acat(rs, "H5T_STD_U64LE"); |
1748 | 0 | else if (obj == H5T_STD_B8BE_g) |
1749 | 0 | H5RS_acat(rs, "H5T_STD_B8BE"); |
1750 | 0 | else if (obj == H5T_STD_B8LE_g) |
1751 | 0 | H5RS_acat(rs, "H5T_STD_B8LE"); |
1752 | 0 | else if (obj == H5T_STD_B16BE_g) |
1753 | 0 | H5RS_acat(rs, "H5T_STD_B16BE"); |
1754 | 0 | else if (obj == H5T_STD_B16LE_g) |
1755 | 0 | H5RS_acat(rs, "H5T_STD_B16LE"); |
1756 | 0 | else if (obj == H5T_STD_B32BE_g) |
1757 | 0 | H5RS_acat(rs, "H5T_STD_B32BE"); |
1758 | 0 | else if (obj == H5T_STD_B32LE_g) |
1759 | 0 | H5RS_acat(rs, "H5T_STD_B32LE"); |
1760 | 0 | else if (obj == H5T_STD_B64BE_g) |
1761 | 0 | H5RS_acat(rs, "H5T_STD_B64BE"); |
1762 | 0 | else if (obj == H5T_STD_B64LE_g) |
1763 | 0 | H5RS_acat(rs, "H5T_STD_B64LE"); |
1764 | 0 | else if (obj == H5T_C_S1_g) |
1765 | 0 | H5RS_acat(rs, "H5T_C_S1"); |
1766 | 0 | else if (obj == H5T_FORTRAN_S1_g) |
1767 | 0 | H5RS_acat(rs, "H5T_FORTRAN_S1"); |
1768 | 0 | else |
1769 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (dtype)", (unsigned long long)obj); |
1770 | 0 | break; |
1771 | | |
1772 | 0 | case H5I_DATASPACE: |
1773 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (dspace)", (unsigned long long)obj); |
1774 | | /* Save the rank of simple dataspaces for arrays */ |
1775 | | /* This may generate recursive call to the library... -QAK */ |
1776 | 0 | { |
1777 | 0 | H5S_t *space; |
1778 | |
|
1779 | 0 | if (NULL != (space = (H5S_t *)H5I_object(obj))) |
1780 | 0 | if (H5S_SIMPLE == H5S_GET_EXTENT_TYPE(space)) |
1781 | 0 | asize[argno] = H5S_GET_EXTENT_NDIMS(space); |
1782 | 0 | } |
1783 | 0 | break; |
1784 | | |
1785 | 0 | case H5I_DATASET: |
1786 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (dset)", (unsigned long long)obj); |
1787 | 0 | break; |
1788 | | |
1789 | 0 | case H5I_ATTR: |
1790 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (attr)", (unsigned long long)obj); |
1791 | 0 | break; |
1792 | | |
1793 | 0 | case H5I_MAP: |
1794 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (map)", (unsigned long long)obj); |
1795 | 0 | break; |
1796 | | |
1797 | 0 | case H5I_VFL: |
1798 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (file driver)", (unsigned long long)obj); |
1799 | 0 | break; |
1800 | | |
1801 | 0 | case H5I_VOL: |
1802 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (VOL plugin)", (unsigned long long)obj); |
1803 | 0 | break; |
1804 | | |
1805 | 0 | case H5I_GENPROP_CLS: |
1806 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (genprop class)", (unsigned long long)obj); |
1807 | 0 | break; |
1808 | | |
1809 | 0 | case H5I_GENPROP_LST: |
1810 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (genprop list)", (unsigned long long)obj); |
1811 | 0 | break; |
1812 | | |
1813 | 0 | case H5I_ERROR_CLASS: |
1814 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (err class)", (unsigned long long)obj); |
1815 | 0 | break; |
1816 | | |
1817 | 0 | case H5I_ERROR_MSG: |
1818 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (err msg)", (unsigned long long)obj); |
1819 | 0 | break; |
1820 | | |
1821 | 0 | case H5I_ERROR_STACK: |
1822 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (err stack)", (unsigned long long)obj); |
1823 | 0 | break; |
1824 | | |
1825 | 0 | case H5I_SPACE_SEL_ITER: |
1826 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (dataspace selection iterator)", |
1827 | 0 | (unsigned long long)obj); |
1828 | 0 | break; |
1829 | | |
1830 | 0 | case H5I_EVENTSET: |
1831 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (event set)", (unsigned long long)obj); |
1832 | 0 | break; |
1833 | | |
1834 | 0 | case H5I_NTYPES: |
1835 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (ntypes - error)", (unsigned long long)obj); |
1836 | 0 | break; |
1837 | | |
1838 | 0 | default: |
1839 | 0 | H5RS_asprintf_cat(rs, "0x%0llx (unknown class)", (unsigned long long)obj); |
1840 | 0 | break; |
1841 | 0 | } /* end switch */ |
1842 | 0 | } /* end else */ |
1843 | 0 | } /* end block */ |
1844 | 0 | break; |
1845 | | |
1846 | 0 | case 'I': |
1847 | 0 | switch (type[1]) { |
1848 | 0 | case 'D': /* H5I_future_discard_func_t */ |
1849 | 0 | { |
1850 | 0 | H5I_future_discard_func_t ifdisc = |
1851 | 0 | (H5I_future_discard_func_t)va_arg(ap, H5I_future_discard_func_t); |
1852 | |
|
1853 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)ifdisc); |
1854 | 0 | } /* end block */ |
1855 | 0 | break; |
1856 | | |
1857 | 0 | case 'f': /* H5I_free_t */ |
1858 | 0 | { |
1859 | 0 | H5I_free_t ifree = (H5I_free_t)va_arg(ap, H5I_free_t); |
1860 | |
|
1861 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)ifree); |
1862 | 0 | } /* end block */ |
1863 | 0 | break; |
1864 | | |
1865 | 0 | case 'i': /* H5_index_t */ |
1866 | 0 | { |
1867 | 0 | H5_index_t idx_type = (H5_index_t)va_arg(ap, int); |
1868 | |
|
1869 | 0 | switch (idx_type) { |
1870 | 0 | case H5_INDEX_UNKNOWN: |
1871 | 0 | H5RS_acat(rs, "H5_INDEX_UNKNOWN"); |
1872 | 0 | break; |
1873 | | |
1874 | 0 | case H5_INDEX_NAME: |
1875 | 0 | H5RS_acat(rs, "H5_INDEX_NAME"); |
1876 | 0 | break; |
1877 | | |
1878 | 0 | case H5_INDEX_CRT_ORDER: |
1879 | 0 | H5RS_acat(rs, "H5_INDEX_CRT_ORDER"); |
1880 | 0 | break; |
1881 | | |
1882 | 0 | case H5_INDEX_N: |
1883 | 0 | H5RS_acat(rs, "H5_INDEX_N"); |
1884 | 0 | break; |
1885 | | |
1886 | 0 | default: |
1887 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)idx_type); |
1888 | 0 | break; |
1889 | 0 | } /* end switch */ |
1890 | 0 | } /* end block */ |
1891 | 0 | break; |
1892 | | |
1893 | 0 | case 'I': /* H5I_iterate_func_t */ |
1894 | 0 | { |
1895 | 0 | H5I_iterate_func_t iiter = (H5I_iterate_func_t)va_arg(ap, H5I_iterate_func_t); |
1896 | |
|
1897 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)iiter); |
1898 | 0 | } /* end block */ |
1899 | 0 | break; |
1900 | | |
1901 | 0 | case 'o': /* H5_iter_order_t */ |
1902 | 0 | { |
1903 | 0 | H5_iter_order_t order = (H5_iter_order_t)va_arg(ap, int); |
1904 | |
|
1905 | 0 | switch (order) { |
1906 | 0 | case H5_ITER_UNKNOWN: |
1907 | 0 | H5RS_acat(rs, "H5_ITER_UNKNOWN"); |
1908 | 0 | break; |
1909 | | |
1910 | 0 | case H5_ITER_INC: |
1911 | 0 | H5RS_acat(rs, "H5_ITER_INC"); |
1912 | 0 | break; |
1913 | | |
1914 | 0 | case H5_ITER_DEC: |
1915 | 0 | H5RS_acat(rs, "H5_ITER_DEC"); |
1916 | 0 | break; |
1917 | | |
1918 | 0 | case H5_ITER_NATIVE: |
1919 | 0 | H5RS_acat(rs, "H5_ITER_NATIVE"); |
1920 | 0 | break; |
1921 | | |
1922 | 0 | case H5_ITER_N: |
1923 | 0 | H5RS_acat(rs, "H5_ITER_N"); |
1924 | 0 | break; |
1925 | | |
1926 | 0 | default: |
1927 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)order); |
1928 | 0 | break; |
1929 | 0 | } /* end switch */ |
1930 | 0 | } /* end block */ |
1931 | 0 | break; |
1932 | | |
1933 | 0 | case 'R': /* H5I_future_realize_func_t */ |
1934 | 0 | { |
1935 | 0 | H5I_future_realize_func_t ifreal = |
1936 | 0 | (H5I_future_realize_func_t)va_arg(ap, H5I_future_realize_func_t); |
1937 | |
|
1938 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)ifreal); |
1939 | 0 | } /* end block */ |
1940 | 0 | break; |
1941 | | |
1942 | 0 | case 's': /* int / int32_t */ |
1943 | 0 | { |
1944 | 0 | int is = va_arg(ap, int); |
1945 | |
|
1946 | 0 | H5RS_asprintf_cat(rs, "%d", is); |
1947 | 0 | asize[argno] = is; |
1948 | 0 | } /* end block */ |
1949 | 0 | break; |
1950 | | |
1951 | 0 | case 'S': /* H5I_search_func_t */ |
1952 | 0 | { |
1953 | 0 | H5I_search_func_t isearch = (H5I_search_func_t)va_arg(ap, H5I_search_func_t); |
1954 | |
|
1955 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)isearch); |
1956 | 0 | } /* end block */ |
1957 | 0 | break; |
1958 | | |
1959 | 0 | case 't': /* H5I_type_t */ |
1960 | 0 | { |
1961 | 0 | H5I_type_t id_type = (H5I_type_t)va_arg(ap, int); |
1962 | |
|
1963 | 0 | switch (id_type) { |
1964 | 0 | case H5I_UNINIT: |
1965 | 0 | H5RS_acat(rs, "H5I_UNINIT"); |
1966 | 0 | break; |
1967 | | |
1968 | 0 | case H5I_BADID: |
1969 | 0 | H5RS_acat(rs, "H5I_BADID"); |
1970 | 0 | break; |
1971 | | |
1972 | 0 | case H5I_FILE: |
1973 | 0 | H5RS_acat(rs, "H5I_FILE"); |
1974 | 0 | break; |
1975 | | |
1976 | 0 | case H5I_GROUP: |
1977 | 0 | H5RS_acat(rs, "H5I_GROUP"); |
1978 | 0 | break; |
1979 | | |
1980 | 0 | case H5I_DATATYPE: |
1981 | 0 | H5RS_acat(rs, "H5I_DATATYPE"); |
1982 | 0 | break; |
1983 | | |
1984 | 0 | case H5I_DATASPACE: |
1985 | 0 | H5RS_acat(rs, "H5I_DATASPACE"); |
1986 | 0 | break; |
1987 | | |
1988 | 0 | case H5I_DATASET: |
1989 | 0 | H5RS_acat(rs, "H5I_DATASET"); |
1990 | 0 | break; |
1991 | | |
1992 | 0 | case H5I_ATTR: |
1993 | 0 | H5RS_acat(rs, "H5I_ATTR"); |
1994 | 0 | break; |
1995 | | |
1996 | 0 | case H5I_MAP: |
1997 | 0 | H5RS_acat(rs, "H5I_MAP"); |
1998 | 0 | break; |
1999 | | |
2000 | 0 | case H5I_VFL: |
2001 | 0 | H5RS_acat(rs, "H5I_VFL"); |
2002 | 0 | break; |
2003 | | |
2004 | 0 | case H5I_VOL: |
2005 | 0 | H5RS_acat(rs, "H5I_VOL"); |
2006 | 0 | break; |
2007 | | |
2008 | 0 | case H5I_GENPROP_CLS: |
2009 | 0 | H5RS_acat(rs, "H5I_GENPROP_CLS"); |
2010 | 0 | break; |
2011 | | |
2012 | 0 | case H5I_GENPROP_LST: |
2013 | 0 | H5RS_acat(rs, "H5I_GENPROP_LST"); |
2014 | 0 | break; |
2015 | | |
2016 | 0 | case H5I_ERROR_CLASS: |
2017 | 0 | H5RS_acat(rs, "H5I_ERROR_CLASS"); |
2018 | 0 | break; |
2019 | | |
2020 | 0 | case H5I_ERROR_MSG: |
2021 | 0 | H5RS_acat(rs, "H5I_ERROR_MSG"); |
2022 | 0 | break; |
2023 | | |
2024 | 0 | case H5I_ERROR_STACK: |
2025 | 0 | H5RS_acat(rs, "H5I_ERROR_STACK"); |
2026 | 0 | break; |
2027 | | |
2028 | 0 | case H5I_SPACE_SEL_ITER: |
2029 | 0 | H5RS_acat(rs, "H5I_SPACE_SEL_ITER"); |
2030 | 0 | break; |
2031 | | |
2032 | 0 | case H5I_EVENTSET: |
2033 | 0 | H5RS_acat(rs, "H5I_EVENTSET"); |
2034 | 0 | break; |
2035 | | |
2036 | 0 | case H5I_NTYPES: |
2037 | 0 | H5RS_acat(rs, "H5I_NTYPES"); |
2038 | 0 | break; |
2039 | | |
2040 | 0 | default: |
2041 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)id_type); |
2042 | 0 | break; |
2043 | 0 | } /* end switch */ |
2044 | 0 | } /* end block */ |
2045 | 0 | break; |
2046 | | |
2047 | 0 | case 'u': /* unsigned / uint32_t */ |
2048 | 0 | { |
2049 | 0 | unsigned iu = va_arg(ap, unsigned); |
2050 | |
|
2051 | 0 | H5RS_asprintf_cat(rs, "%u", iu); |
2052 | 0 | asize[argno] = iu; |
2053 | 0 | } /* end block */ |
2054 | 0 | break; |
2055 | | |
2056 | 0 | default: |
2057 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(I%c)", type[1]); |
2058 | 0 | goto error; |
2059 | 0 | } /* end switch */ |
2060 | 0 | break; |
2061 | | |
2062 | 0 | case 'k': /* H5O_token_t */ |
2063 | 0 | { |
2064 | 0 | H5O_token_t token = va_arg(ap, H5O_token_t); |
2065 | 0 | int j; |
2066 | |
|
2067 | 0 | for (j = 0; j < H5O_MAX_TOKEN_SIZE; j++) |
2068 | 0 | H5RS_asprintf_cat(rs, "%02x", token.__data[j]); |
2069 | 0 | } /* end block */ |
2070 | 0 | break; |
2071 | | |
2072 | 0 | case 'L': |
2073 | 0 | switch (type[1]) { |
2074 | 0 | #ifndef H5_NO_DEPRECATED_SYMBOLS |
2075 | 0 | case 'i': /* H5L_iterate1_t */ |
2076 | 0 | { |
2077 | 0 | H5L_iterate1_t liter = (H5L_iterate1_t)va_arg(ap, H5L_iterate1_t); |
2078 | |
|
2079 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)liter); |
2080 | 0 | } /* end block */ |
2081 | 0 | break; |
2082 | 0 | #endif /* H5_NO_DEPRECATED_SYMBOLS */ |
2083 | | |
2084 | 0 | case 'I': /* H5L_iterate2_t */ |
2085 | 0 | { |
2086 | 0 | H5L_iterate2_t liter = (H5L_iterate2_t)va_arg(ap, H5L_iterate2_t); |
2087 | |
|
2088 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)liter); |
2089 | 0 | } /* end block */ |
2090 | 0 | break; |
2091 | | |
2092 | 0 | case 'l': /* H5L_type_t (or H5G_link_t) */ |
2093 | 0 | { |
2094 | 0 | H5L_type_t link_type = (H5L_type_t)va_arg(ap, int); |
2095 | |
|
2096 | 0 | switch (link_type) { |
2097 | 0 | case H5L_TYPE_ERROR: |
2098 | 0 | H5RS_acat(rs, "H5L_TYPE_ERROR"); |
2099 | 0 | break; |
2100 | | |
2101 | 0 | case H5L_TYPE_HARD: |
2102 | 0 | H5RS_acat(rs, "H5L_TYPE_HARD"); |
2103 | 0 | break; |
2104 | | |
2105 | 0 | case H5L_TYPE_SOFT: |
2106 | 0 | H5RS_acat(rs, "H5L_TYPE_SOFT"); |
2107 | 0 | break; |
2108 | | |
2109 | 0 | case H5L_TYPE_EXTERNAL: |
2110 | 0 | H5RS_acat(rs, "H5L_TYPE_EXTERNAL"); |
2111 | 0 | break; |
2112 | | |
2113 | 0 | case H5L_TYPE_MAX: |
2114 | 0 | H5RS_acat(rs, "H5L_TYPE_MAX"); |
2115 | 0 | break; |
2116 | | |
2117 | 0 | default: |
2118 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)link_type); |
2119 | 0 | break; |
2120 | 0 | } /* end switch */ |
2121 | 0 | } /* end block */ |
2122 | 0 | break; |
2123 | | |
2124 | 0 | case 't': /* H5L_elink_traverse_t */ |
2125 | 0 | { |
2126 | 0 | H5L_elink_traverse_t elt = (H5L_elink_traverse_t)va_arg(ap, H5L_elink_traverse_t); |
2127 | |
|
2128 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)elt); |
2129 | 0 | } /* end block */ |
2130 | 0 | break; |
2131 | | |
2132 | 0 | default: |
2133 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(G%c)", type[1]); |
2134 | 0 | goto error; |
2135 | 0 | } /* end switch */ |
2136 | 0 | break; |
2137 | | |
2138 | 0 | case 'M': |
2139 | 0 | switch (type[1]) { |
2140 | 0 | case 'a': /* H5MM_allocate_t */ |
2141 | 0 | { |
2142 | 0 | H5MM_allocate_t afunc = (H5MM_allocate_t)va_arg(ap, H5MM_allocate_t); |
2143 | |
|
2144 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)afunc); |
2145 | 0 | } /* end block */ |
2146 | 0 | break; |
2147 | | |
2148 | | #ifdef H5_HAVE_PARALLEL |
2149 | | case 'c': /* MPI_Comm */ |
2150 | | { |
2151 | | MPI_Comm comm = va_arg(ap, MPI_Comm); |
2152 | | |
2153 | | H5RS_asprintf_cat(rs, "%ld", (long)comm); |
2154 | | } /* end block */ |
2155 | | break; |
2156 | | #endif /* H5_HAVE_PARALLEL */ |
2157 | | |
2158 | 0 | case 'f': /* H5MM_free_t */ |
2159 | 0 | { |
2160 | 0 | H5MM_free_t ffunc = (H5MM_free_t)va_arg(ap, H5MM_free_t); |
2161 | |
|
2162 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)ffunc); |
2163 | 0 | } /* end block */ |
2164 | 0 | break; |
2165 | | |
2166 | | #ifdef H5_HAVE_PARALLEL |
2167 | | case 'i': /* MPI_Info */ |
2168 | | { |
2169 | | MPI_Info info = va_arg(ap, MPI_Info); |
2170 | | |
2171 | | H5RS_asprintf_cat(rs, "%ld", (long)info); |
2172 | | } /* end block */ |
2173 | | break; |
2174 | | #endif /* H5_HAVE_PARALLEL */ |
2175 | | |
2176 | | #ifdef H5_HAVE_MAP_API |
2177 | | case 'I': /* H5M_iterate_t */ |
2178 | | { |
2179 | | H5M_iterate_t miter = (H5M_iterate_t)va_arg(ap, H5M_iterate_t); |
2180 | | |
2181 | | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)miter); |
2182 | | } /* end block */ |
2183 | | break; |
2184 | | #endif /* H5_HAVE_MAP_API */ |
2185 | | |
2186 | 0 | case 't': /* H5FD_mem_t */ |
2187 | 0 | { |
2188 | 0 | H5FD_mem_t mt = (H5FD_mem_t)va_arg(ap, int); |
2189 | |
|
2190 | 0 | switch (mt) { |
2191 | 0 | case H5FD_MEM_NOLIST: |
2192 | 0 | H5RS_acat(rs, "H5FD_MEM_NOLIST"); |
2193 | 0 | break; |
2194 | | |
2195 | 0 | case H5FD_MEM_DEFAULT: |
2196 | 0 | H5RS_acat(rs, "H5FD_MEM_DEFAULT"); |
2197 | 0 | break; |
2198 | | |
2199 | 0 | case H5FD_MEM_SUPER: |
2200 | 0 | H5RS_acat(rs, "H5FD_MEM_SUPER"); |
2201 | 0 | break; |
2202 | | |
2203 | 0 | case H5FD_MEM_BTREE: |
2204 | 0 | H5RS_acat(rs, "H5FD_MEM_BTREE"); |
2205 | 0 | break; |
2206 | | |
2207 | 0 | case H5FD_MEM_DRAW: |
2208 | 0 | H5RS_acat(rs, "H5FD_MEM_DRAW"); |
2209 | 0 | break; |
2210 | | |
2211 | 0 | case H5FD_MEM_GHEAP: |
2212 | 0 | H5RS_acat(rs, "H5FD_MEM_GHEAP"); |
2213 | 0 | break; |
2214 | | |
2215 | 0 | case H5FD_MEM_LHEAP: |
2216 | 0 | H5RS_acat(rs, "H5FD_MEM_LHEAP"); |
2217 | 0 | break; |
2218 | | |
2219 | 0 | case H5FD_MEM_OHDR: |
2220 | 0 | H5RS_acat(rs, "H5FD_MEM_OHDR"); |
2221 | 0 | break; |
2222 | | |
2223 | 0 | case H5FD_MEM_NTYPES: |
2224 | 0 | H5RS_acat(rs, "H5FD_MEM_NTYPES"); |
2225 | 0 | break; |
2226 | | |
2227 | 0 | default: |
2228 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)mt); |
2229 | 0 | break; |
2230 | 0 | } /* end switch */ |
2231 | 0 | } /* end block */ |
2232 | 0 | break; |
2233 | | |
2234 | 0 | default: |
2235 | 0 | goto error; |
2236 | 0 | } /* end switch */ |
2237 | 0 | break; |
2238 | | |
2239 | 0 | case 'o': /* off_t */ |
2240 | 0 | { |
2241 | 0 | off_t offset = va_arg(ap, off_t); |
2242 | |
|
2243 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)offset); |
2244 | 0 | } /* end block */ |
2245 | 0 | break; |
2246 | | |
2247 | 0 | case 'O': |
2248 | 0 | switch (type[1]) { |
2249 | 0 | #ifndef H5_NO_DEPRECATED_SYMBOLS |
2250 | 0 | case 'i': /* H5O_iterate1_t */ |
2251 | 0 | { |
2252 | 0 | H5O_iterate1_t oiter = (H5O_iterate1_t)va_arg(ap, H5O_iterate1_t); |
2253 | |
|
2254 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)oiter); |
2255 | 0 | } /* end block */ |
2256 | 0 | break; |
2257 | 0 | #endif /* H5_NO_DEPRECATED_SYMBOLS */ |
2258 | | |
2259 | 0 | case 'I': /* H5O_iterate2_t */ |
2260 | 0 | { |
2261 | 0 | H5O_iterate2_t oiter2 = (H5O_iterate2_t)va_arg(ap, H5O_iterate2_t); |
2262 | |
|
2263 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)oiter2); |
2264 | 0 | } /* end block */ |
2265 | 0 | break; |
2266 | | |
2267 | 0 | case 's': /* H5O_mcdt_search_cb_t */ |
2268 | 0 | { |
2269 | 0 | H5O_mcdt_search_cb_t osrch = |
2270 | 0 | (H5O_mcdt_search_cb_t)va_arg(ap, H5O_mcdt_search_cb_t); |
2271 | |
|
2272 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)osrch); |
2273 | 0 | } /* end block */ |
2274 | 0 | break; |
2275 | | |
2276 | 0 | case 't': /* H5O_type_t */ |
2277 | 0 | { |
2278 | 0 | H5O_type_t objtype = (H5O_type_t)va_arg(ap, int); |
2279 | |
|
2280 | 0 | switch (objtype) { |
2281 | 0 | case H5O_TYPE_UNKNOWN: |
2282 | 0 | H5RS_acat(rs, "H5O_TYPE_UNKNOWN"); |
2283 | 0 | break; |
2284 | | |
2285 | 0 | case H5O_TYPE_GROUP: |
2286 | 0 | H5RS_acat(rs, "H5O_TYPE_GROUP"); |
2287 | 0 | break; |
2288 | | |
2289 | 0 | case H5O_TYPE_DATASET: |
2290 | 0 | H5RS_acat(rs, "H5O_TYPE_DATASET"); |
2291 | 0 | break; |
2292 | | |
2293 | 0 | case H5O_TYPE_NAMED_DATATYPE: |
2294 | 0 | H5RS_acat(rs, "H5O_TYPE_NAMED_DATATYPE"); |
2295 | 0 | break; |
2296 | | |
2297 | 0 | case H5O_TYPE_MAP: |
2298 | 0 | H5RS_acat(rs, "H5O_TYPE_MAP"); |
2299 | 0 | break; |
2300 | | |
2301 | 0 | case H5O_TYPE_NTYPES: |
2302 | 0 | H5RS_acat(rs, "H5O_TYPE_NTYPES"); |
2303 | 0 | break; |
2304 | | |
2305 | 0 | default: |
2306 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(%ld)", (long)objtype); |
2307 | 0 | break; |
2308 | 0 | } /* end switch */ |
2309 | 0 | } /* end block */ |
2310 | 0 | break; |
2311 | | |
2312 | 0 | default: |
2313 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(S%c)", type[1]); |
2314 | 0 | goto error; |
2315 | 0 | } /* end switch */ |
2316 | 0 | break; |
2317 | | |
2318 | 0 | case 'p': /* H5P_class_t */ |
2319 | 0 | { |
2320 | 0 | hid_t pclass_id = va_arg(ap, hid_t); |
2321 | 0 | char *class_name = NULL; |
2322 | 0 | H5P_genclass_t *pclass; |
2323 | | |
2324 | | /* Get the class name and print it */ |
2325 | | /* (This may generate recursive call to the library... -QAK) */ |
2326 | 0 | if (NULL != (pclass = (H5P_genclass_t *)H5I_object(pclass_id)) && |
2327 | 0 | NULL != (class_name = H5P_get_class_name(pclass))) { |
2328 | 0 | H5RS_asprintf_cat(rs, "%s", class_name); |
2329 | 0 | H5MM_xfree(class_name); |
2330 | 0 | } /* end if */ |
2331 | 0 | else |
2332 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)pclass_id); |
2333 | 0 | } /* end block */ |
2334 | 0 | break; |
2335 | | |
2336 | 0 | case 'P': |
2337 | 0 | switch (type[1]) { |
2338 | 0 | case 'c': /* H5P_cls_create_func_t */ |
2339 | 0 | { |
2340 | 0 | H5P_cls_create_func_t pcls_crt = |
2341 | 0 | (H5P_cls_create_func_t)va_arg(ap, H5P_cls_create_func_t); |
2342 | |
|
2343 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)pcls_crt); |
2344 | 0 | } /* end block */ |
2345 | 0 | break; |
2346 | | |
2347 | 0 | case 'C': /* H5P_prp_create_func_t */ |
2348 | 0 | { |
2349 | 0 | H5P_prp_create_func_t prp_crt = |
2350 | 0 | (H5P_prp_create_func_t)va_arg(ap, H5P_prp_create_func_t); |
2351 | |
|
2352 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)prp_crt); |
2353 | 0 | } /* end block */ |
2354 | 0 | break; |
2355 | | |
2356 | 0 | case 'D': /* H5P_prp_delete_func_t */ |
2357 | 0 | { |
2358 | 0 | H5P_prp_delete_func_t prp_del = |
2359 | 0 | (H5P_prp_delete_func_t)va_arg(ap, H5P_prp_delete_func_t); |
2360 | |
|
2361 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)prp_del); |
2362 | 0 | } /* end block */ |
2363 | 0 | break; |
2364 | | |
2365 | 0 | case 'G': /* H5P_prp_get_func_t */ |
2366 | 0 | { |
2367 | 0 | H5P_prp_get_func_t prp_get = (H5P_prp_get_func_t)va_arg(ap, H5P_prp_get_func_t); |
2368 | |
|
2369 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)prp_get); |
2370 | 0 | } /* end block */ |
2371 | 0 | break; |
2372 | | |
2373 | 0 | case 'i': /* H5P_iterate_t */ |
2374 | 0 | { |
2375 | 0 | H5P_iterate_t piter = (H5P_iterate_t)va_arg(ap, H5P_iterate_t); |
2376 | |
|
2377 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)piter); |
2378 | 0 | } /* end block */ |
2379 | 0 | break; |
2380 | | |
2381 | 0 | case 'l': /* H5P_cls_close_func_t */ |
2382 | 0 | { |
2383 | 0 | H5P_cls_close_func_t pcls_cls = |
2384 | 0 | (H5P_cls_close_func_t)va_arg(ap, H5P_cls_close_func_t); |
2385 | |
|
2386 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)pcls_cls); |
2387 | 0 | } /* end block */ |
2388 | 0 | break; |
2389 | | |
2390 | 0 | case 'L': /* H5P_prp_close_func_t */ |
2391 | 0 | { |
2392 | 0 | H5P_prp_close_func_t prp_cls = |
2393 | 0 | (H5P_prp_close_func_t)va_arg(ap, H5P_prp_close_func_t); |
2394 | |
|
2395 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)prp_cls); |
2396 | 0 | } /* end block */ |
2397 | 0 | break; |
2398 | | |
2399 | 0 | case 'M': /* H5P_prp_compare_func_t */ |
2400 | 0 | { |
2401 | 0 | H5P_prp_compare_func_t prp_cmp = |
2402 | 0 | (H5P_prp_compare_func_t)va_arg(ap, H5P_prp_compare_func_t); |
2403 | |
|
2404 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)prp_cmp); |
2405 | 0 | } /* end block */ |
2406 | 0 | break; |
2407 | | |
2408 | 0 | case 'o': /* H5P_cls_copy_func_t */ |
2409 | 0 | { |
2410 | 0 | H5P_cls_copy_func_t pcls_cpy = |
2411 | 0 | (H5P_cls_copy_func_t)va_arg(ap, H5P_cls_copy_func_t); |
2412 | |
|
2413 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)pcls_cpy); |
2414 | 0 | } /* end block */ |
2415 | 0 | break; |
2416 | | |
2417 | 0 | case 'O': /* H5P_prp_copy_func_t */ |
2418 | 0 | { |
2419 | 0 | H5P_prp_copy_func_t prp_cpy = |
2420 | 0 | (H5P_prp_copy_func_t)va_arg(ap, H5P_prp_copy_func_t); |
2421 | |
|
2422 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)prp_cpy); |
2423 | 0 | } /* end block */ |
2424 | 0 | break; |
2425 | | |
2426 | 0 | case 'S': /* H5P_prp_set_func_t */ |
2427 | 0 | { |
2428 | 0 | H5P_prp_set_func_t prp_set = (H5P_prp_set_func_t)va_arg(ap, H5P_prp_set_func_t); |
2429 | |
|
2430 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)prp_set); |
2431 | 0 | } /* end block */ |
2432 | 0 | break; |
2433 | | |
2434 | 0 | default: |
2435 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(P%c)", type[1]); |
2436 | 0 | goto error; |
2437 | 0 | } /* end switch */ |
2438 | 0 | break; |
2439 | | |
2440 | 0 | case 'R': |
2441 | 0 | switch (type[1]) { |
2442 | 0 | case 'd': /* hdset_reg_ref_t */ |
2443 | 0 | { |
2444 | | /* Note! region references are array types */ |
2445 | 0 | H5RS_acat(rs, "Reference Region"); |
2446 | 0 | goto error; |
2447 | 0 | } /* end block */ |
2448 | 0 | break; |
2449 | | |
2450 | 0 | case 'o': /* hobj_ref_t */ |
2451 | 0 | { |
2452 | 0 | hobj_ref_t ref = va_arg(ap, hobj_ref_t); |
2453 | |
|
2454 | 0 | H5RS_asprintf_cat(rs, "Reference Object=%" PRIuHADDR, ref); |
2455 | 0 | } /* end block */ |
2456 | 0 | break; |
2457 | | |
2458 | 0 | case 'r': /* H5R_ref_t */ |
2459 | 0 | { |
2460 | | /* Note! reference types are opaque types */ |
2461 | 0 | H5RS_acat(rs, "Reference Opaque"); |
2462 | 0 | goto error; |
2463 | 0 | } /* end block */ |
2464 | 0 | break; |
2465 | | |
2466 | 0 | case 't': /* H5R_type_t */ |
2467 | 0 | { |
2468 | 0 | H5R_type_t reftype = (H5R_type_t)va_arg(ap, int); |
2469 | |
|
2470 | 0 | switch (reftype) { |
2471 | 0 | case H5R_BADTYPE: |
2472 | 0 | H5RS_acat(rs, "H5R_BADTYPE"); |
2473 | 0 | break; |
2474 | | |
2475 | 0 | case H5R_OBJECT1: |
2476 | 0 | H5RS_acat(rs, "H5R_OBJECT1"); |
2477 | 0 | break; |
2478 | | |
2479 | 0 | case H5R_DATASET_REGION1: |
2480 | 0 | H5RS_acat(rs, "H5R_DATASET_REGION1"); |
2481 | 0 | break; |
2482 | | |
2483 | 0 | case H5R_OBJECT2: |
2484 | 0 | H5RS_acat(rs, "H5R_OBJECT2"); |
2485 | 0 | break; |
2486 | | |
2487 | 0 | case H5R_DATASET_REGION2: |
2488 | 0 | H5RS_acat(rs, "H5R_DATASET_REGION2"); |
2489 | 0 | break; |
2490 | | |
2491 | 0 | case H5R_ATTR: |
2492 | 0 | H5RS_acat(rs, "H5R_ATTR"); |
2493 | 0 | break; |
2494 | | |
2495 | 0 | case H5R_MAXTYPE: |
2496 | 0 | H5RS_acat(rs, "H5R_MAXTYPE"); |
2497 | 0 | break; |
2498 | | |
2499 | 0 | default: |
2500 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(%ld)", (long)reftype); |
2501 | 0 | break; |
2502 | 0 | } /* end switch */ |
2503 | 0 | } /* end block */ |
2504 | 0 | break; |
2505 | | |
2506 | 0 | default: |
2507 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(S%c)", type[1]); |
2508 | 0 | goto error; |
2509 | 0 | } /* end switch */ |
2510 | 0 | break; |
2511 | | |
2512 | 0 | case 'S': |
2513 | 0 | switch (type[1]) { |
2514 | 0 | case 'c': /* H5S_class_t */ |
2515 | 0 | { |
2516 | 0 | H5S_class_t cls = (H5S_class_t)va_arg(ap, int); |
2517 | |
|
2518 | 0 | switch (cls) { |
2519 | 0 | case H5S_NO_CLASS: |
2520 | 0 | H5RS_acat(rs, "H5S_NO_CLASS"); |
2521 | 0 | break; |
2522 | | |
2523 | 0 | case H5S_SCALAR: |
2524 | 0 | H5RS_acat(rs, "H5S_SCALAR"); |
2525 | 0 | break; |
2526 | | |
2527 | 0 | case H5S_SIMPLE: |
2528 | 0 | H5RS_acat(rs, "H5S_SIMPLE"); |
2529 | 0 | break; |
2530 | | |
2531 | 0 | case H5S_NULL: |
2532 | 0 | H5RS_acat(rs, "H5S_NULL"); |
2533 | 0 | break; |
2534 | | |
2535 | 0 | default: |
2536 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)cls); |
2537 | 0 | break; |
2538 | 0 | } /* end switch */ |
2539 | 0 | } /* end block */ |
2540 | 0 | break; |
2541 | | |
2542 | 0 | case 's': /* H5S_seloper_t */ |
2543 | 0 | { |
2544 | 0 | H5S_seloper_t so = (H5S_seloper_t)va_arg(ap, int); |
2545 | |
|
2546 | 0 | switch (so) { |
2547 | 0 | case H5S_SELECT_NOOP: |
2548 | 0 | H5RS_acat(rs, "H5S_NOOP"); |
2549 | 0 | break; |
2550 | | |
2551 | 0 | case H5S_SELECT_SET: |
2552 | 0 | H5RS_acat(rs, "H5S_SELECT_SET"); |
2553 | 0 | break; |
2554 | | |
2555 | 0 | case H5S_SELECT_OR: |
2556 | 0 | H5RS_acat(rs, "H5S_SELECT_OR"); |
2557 | 0 | break; |
2558 | | |
2559 | 0 | case H5S_SELECT_AND: |
2560 | 0 | H5RS_acat(rs, "H5S_SELECT_AND"); |
2561 | 0 | break; |
2562 | | |
2563 | 0 | case H5S_SELECT_XOR: |
2564 | 0 | H5RS_acat(rs, "H5S_SELECT_XOR"); |
2565 | 0 | break; |
2566 | | |
2567 | 0 | case H5S_SELECT_NOTB: |
2568 | 0 | H5RS_acat(rs, "H5S_SELECT_NOTB"); |
2569 | 0 | break; |
2570 | | |
2571 | 0 | case H5S_SELECT_NOTA: |
2572 | 0 | H5RS_acat(rs, "H5S_SELECT_NOTA"); |
2573 | 0 | break; |
2574 | | |
2575 | 0 | case H5S_SELECT_APPEND: |
2576 | 0 | H5RS_acat(rs, "H5S_SELECT_APPEND"); |
2577 | 0 | break; |
2578 | | |
2579 | 0 | case H5S_SELECT_PREPEND: |
2580 | 0 | H5RS_acat(rs, "H5S_SELECT_PREPEND"); |
2581 | 0 | break; |
2582 | | |
2583 | 0 | case H5S_SELECT_INVALID: |
2584 | 0 | H5RS_acat(rs, "H5S_SELECT_INVALID"); |
2585 | 0 | break; |
2586 | | |
2587 | 0 | default: |
2588 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)so); |
2589 | 0 | break; |
2590 | 0 | } /* end switch */ |
2591 | 0 | } /* end block */ |
2592 | 0 | break; |
2593 | | |
2594 | 0 | case 't': /* H5S_sel_type */ |
2595 | 0 | { |
2596 | 0 | H5S_sel_type st = (H5S_sel_type)va_arg(ap, int); |
2597 | |
|
2598 | 0 | switch (st) { |
2599 | 0 | case H5S_SEL_ERROR: |
2600 | 0 | H5RS_acat(rs, "H5S_SEL_ERROR"); |
2601 | 0 | break; |
2602 | | |
2603 | 0 | case H5S_SEL_NONE: |
2604 | 0 | H5RS_acat(rs, "H5S_SEL_NONE"); |
2605 | 0 | break; |
2606 | | |
2607 | 0 | case H5S_SEL_POINTS: |
2608 | 0 | H5RS_acat(rs, "H5S_SEL_POINTS"); |
2609 | 0 | break; |
2610 | | |
2611 | 0 | case H5S_SEL_HYPERSLABS: |
2612 | 0 | H5RS_acat(rs, "H5S_SEL_HYPERSLABS"); |
2613 | 0 | break; |
2614 | | |
2615 | 0 | case H5S_SEL_ALL: |
2616 | 0 | H5RS_acat(rs, "H5S_SEL_ALL"); |
2617 | 0 | break; |
2618 | | |
2619 | 0 | case H5S_SEL_N: |
2620 | 0 | H5RS_acat(rs, "H5S_SEL_N"); |
2621 | 0 | break; |
2622 | | |
2623 | 0 | default: |
2624 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)st); |
2625 | 0 | break; |
2626 | 0 | } /* end switch */ |
2627 | 0 | } /* end block */ |
2628 | 0 | break; |
2629 | | |
2630 | 0 | default: |
2631 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(S%c)", type[1]); |
2632 | 0 | goto error; |
2633 | 0 | } /* end switch */ |
2634 | 0 | break; |
2635 | | |
2636 | 0 | case 't': /* htri_t */ |
2637 | 0 | { |
2638 | 0 | htri_t tri_var = va_arg(ap, htri_t); |
2639 | |
|
2640 | 0 | if (tri_var > 0) |
2641 | 0 | H5RS_acat(rs, "TRUE"); |
2642 | 0 | else if (!tri_var) |
2643 | 0 | H5RS_acat(rs, "FALSE"); |
2644 | 0 | else |
2645 | 0 | H5RS_asprintf_cat(rs, "FAIL(%d)", (int)tri_var); |
2646 | 0 | } /* end block */ |
2647 | 0 | break; |
2648 | | |
2649 | 0 | case 'T': |
2650 | 0 | switch (type[1]) { |
2651 | 0 | case 'c': /* H5T_cset_t */ |
2652 | 0 | { |
2653 | 0 | H5T_cset_t cset = (H5T_cset_t)va_arg(ap, int); |
2654 | |
|
2655 | 0 | H5_trace_args_cset(rs, cset); |
2656 | 0 | } /* end block */ |
2657 | 0 | break; |
2658 | | |
2659 | 0 | case 'C': /* H5T_conv_t */ |
2660 | 0 | { |
2661 | 0 | H5T_conv_t tconv = (H5T_conv_t)va_arg(ap, H5T_conv_t); |
2662 | |
|
2663 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)tconv); |
2664 | 0 | } /* end block */ |
2665 | 0 | break; |
2666 | | |
2667 | 0 | case 'd': /* H5T_direction_t */ |
2668 | 0 | { |
2669 | 0 | H5T_direction_t direct = (H5T_direction_t)va_arg(ap, int); |
2670 | |
|
2671 | 0 | switch (direct) { |
2672 | 0 | case H5T_DIR_DEFAULT: |
2673 | 0 | H5RS_acat(rs, "H5T_DIR_DEFAULT"); |
2674 | 0 | break; |
2675 | | |
2676 | 0 | case H5T_DIR_ASCEND: |
2677 | 0 | H5RS_acat(rs, "H5T_DIR_ASCEND"); |
2678 | 0 | break; |
2679 | | |
2680 | 0 | case H5T_DIR_DESCEND: |
2681 | 0 | H5RS_acat(rs, "H5T_DIR_DESCEND"); |
2682 | 0 | break; |
2683 | | |
2684 | 0 | default: |
2685 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)direct); |
2686 | 0 | break; |
2687 | 0 | } /* end switch */ |
2688 | 0 | } /* end block */ |
2689 | 0 | break; |
2690 | | |
2691 | 0 | case 'e': /* H5T_pers_t */ |
2692 | 0 | { |
2693 | 0 | H5T_pers_t pers = (H5T_pers_t)va_arg(ap, int); |
2694 | |
|
2695 | 0 | switch (pers) { |
2696 | 0 | case H5T_PERS_DONTCARE: |
2697 | 0 | H5RS_acat(rs, "H5T_PERS_DONTCARE"); |
2698 | 0 | break; |
2699 | | |
2700 | 0 | case H5T_PERS_SOFT: |
2701 | 0 | H5RS_acat(rs, "H5T_PERS_SOFT"); |
2702 | 0 | break; |
2703 | | |
2704 | 0 | case H5T_PERS_HARD: |
2705 | 0 | H5RS_acat(rs, "H5T_PERS_HARD"); |
2706 | 0 | break; |
2707 | | |
2708 | 0 | default: |
2709 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)pers); |
2710 | 0 | break; |
2711 | 0 | } /* end switch */ |
2712 | 0 | } /* end block */ |
2713 | 0 | break; |
2714 | | |
2715 | 0 | case 'E': /* H5T_conv_except_func_t */ |
2716 | 0 | { |
2717 | 0 | H5T_conv_except_func_t conv_ex = |
2718 | 0 | (H5T_conv_except_func_t)va_arg(ap, H5T_conv_except_func_t); |
2719 | |
|
2720 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)conv_ex); |
2721 | 0 | } /* end block */ |
2722 | 0 | break; |
2723 | | |
2724 | 0 | case 'n': /* H5T_norm_t */ |
2725 | 0 | { |
2726 | 0 | H5T_norm_t norm = (H5T_norm_t)va_arg(ap, int); |
2727 | |
|
2728 | 0 | switch (norm) { |
2729 | 0 | case H5T_NORM_ERROR: |
2730 | 0 | H5RS_acat(rs, "H5T_NORM_ERROR"); |
2731 | 0 | break; |
2732 | | |
2733 | 0 | case H5T_NORM_IMPLIED: |
2734 | 0 | H5RS_acat(rs, "H5T_NORM_IMPLIED"); |
2735 | 0 | break; |
2736 | | |
2737 | 0 | case H5T_NORM_MSBSET: |
2738 | 0 | H5RS_acat(rs, "H5T_NORM_MSBSET"); |
2739 | 0 | break; |
2740 | | |
2741 | 0 | case H5T_NORM_NONE: |
2742 | 0 | H5RS_acat(rs, "H5T_NORM_NONE"); |
2743 | 0 | break; |
2744 | | |
2745 | 0 | default: |
2746 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)norm); |
2747 | 0 | break; |
2748 | 0 | } /* end switch */ |
2749 | 0 | } /* end block */ |
2750 | 0 | break; |
2751 | | |
2752 | 0 | case 'o': /* H5T_order_t */ |
2753 | 0 | { |
2754 | 0 | H5T_order_t order = (H5T_order_t)va_arg(ap, int); |
2755 | |
|
2756 | 0 | switch (order) { |
2757 | 0 | case H5T_ORDER_ERROR: |
2758 | 0 | H5RS_acat(rs, "H5T_ORDER_ERROR"); |
2759 | 0 | break; |
2760 | | |
2761 | 0 | case H5T_ORDER_LE: |
2762 | 0 | H5RS_acat(rs, "H5T_ORDER_LE"); |
2763 | 0 | break; |
2764 | | |
2765 | 0 | case H5T_ORDER_BE: |
2766 | 0 | H5RS_acat(rs, "H5T_ORDER_BE"); |
2767 | 0 | break; |
2768 | | |
2769 | 0 | case H5T_ORDER_VAX: |
2770 | 0 | H5RS_acat(rs, "H5T_ORDER_VAX"); |
2771 | 0 | break; |
2772 | | |
2773 | 0 | case H5T_ORDER_MIXED: |
2774 | 0 | H5RS_acat(rs, "H5T_ORDER_MIXED"); |
2775 | 0 | break; |
2776 | | |
2777 | 0 | case H5T_ORDER_NONE: |
2778 | 0 | H5RS_acat(rs, "H5T_ORDER_NONE"); |
2779 | 0 | break; |
2780 | | |
2781 | 0 | default: |
2782 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)order); |
2783 | 0 | break; |
2784 | 0 | } /* end switch */ |
2785 | 0 | } /* end block */ |
2786 | 0 | break; |
2787 | | |
2788 | 0 | case 'p': /* H5T_pad_t */ |
2789 | 0 | { |
2790 | 0 | H5T_pad_t pad = (H5T_pad_t)va_arg(ap, int); |
2791 | |
|
2792 | 0 | switch (pad) { |
2793 | 0 | case H5T_PAD_ERROR: |
2794 | 0 | H5RS_acat(rs, "H5T_PAD_ERROR"); |
2795 | 0 | break; |
2796 | | |
2797 | 0 | case H5T_PAD_ZERO: |
2798 | 0 | H5RS_acat(rs, "H5T_PAD_ZERO"); |
2799 | 0 | break; |
2800 | | |
2801 | 0 | case H5T_PAD_ONE: |
2802 | 0 | H5RS_acat(rs, "H5T_PAD_ONE"); |
2803 | 0 | break; |
2804 | | |
2805 | 0 | case H5T_PAD_BACKGROUND: |
2806 | 0 | H5RS_acat(rs, "H5T_PAD_BACKGROUND"); |
2807 | 0 | break; |
2808 | | |
2809 | 0 | case H5T_NPAD: |
2810 | 0 | H5RS_acat(rs, "H5T_NPAD"); |
2811 | 0 | break; |
2812 | | |
2813 | 0 | default: |
2814 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)pad); |
2815 | 0 | break; |
2816 | 0 | } /* end switch */ |
2817 | 0 | } /* end block */ |
2818 | 0 | break; |
2819 | | |
2820 | 0 | case 's': /* H5T_sign_t */ |
2821 | 0 | { |
2822 | 0 | H5T_sign_t sign = (H5T_sign_t)va_arg(ap, int); |
2823 | |
|
2824 | 0 | switch (sign) { |
2825 | 0 | case H5T_SGN_ERROR: |
2826 | 0 | H5RS_acat(rs, "H5T_SGN_ERROR"); |
2827 | 0 | break; |
2828 | | |
2829 | 0 | case H5T_SGN_NONE: |
2830 | 0 | H5RS_acat(rs, "H5T_SGN_NONE"); |
2831 | 0 | break; |
2832 | | |
2833 | 0 | case H5T_SGN_2: |
2834 | 0 | H5RS_acat(rs, "H5T_SGN_2"); |
2835 | 0 | break; |
2836 | | |
2837 | 0 | case H5T_NSGN: |
2838 | 0 | H5RS_acat(rs, "H5T_NSGN"); |
2839 | 0 | break; |
2840 | | |
2841 | 0 | default: |
2842 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)sign); |
2843 | 0 | break; |
2844 | 0 | } /* end switch */ |
2845 | 0 | } /* end block */ |
2846 | 0 | break; |
2847 | | |
2848 | 0 | case 't': /* H5T_class_t */ |
2849 | 0 | { |
2850 | 0 | H5T_class_t type_class = (H5T_class_t)va_arg(ap, int); |
2851 | |
|
2852 | 0 | switch (type_class) { |
2853 | 0 | case H5T_NO_CLASS: |
2854 | 0 | H5RS_acat(rs, "H5T_NO_CLASS"); |
2855 | 0 | break; |
2856 | | |
2857 | 0 | case H5T_INTEGER: |
2858 | 0 | H5RS_acat(rs, "H5T_INTEGER"); |
2859 | 0 | break; |
2860 | | |
2861 | 0 | case H5T_FLOAT: |
2862 | 0 | H5RS_acat(rs, "H5T_FLOAT"); |
2863 | 0 | break; |
2864 | | |
2865 | 0 | case H5T_TIME: |
2866 | 0 | H5RS_acat(rs, "H5T_TIME"); |
2867 | 0 | break; |
2868 | | |
2869 | 0 | case H5T_STRING: |
2870 | 0 | H5RS_acat(rs, "H5T_STRING"); |
2871 | 0 | break; |
2872 | | |
2873 | 0 | case H5T_BITFIELD: |
2874 | 0 | H5RS_acat(rs, "H5T_BITFIELD"); |
2875 | 0 | break; |
2876 | | |
2877 | 0 | case H5T_OPAQUE: |
2878 | 0 | H5RS_acat(rs, "H5T_OPAQUE"); |
2879 | 0 | break; |
2880 | | |
2881 | 0 | case H5T_COMPOUND: |
2882 | 0 | H5RS_acat(rs, "H5T_COMPOUND"); |
2883 | 0 | break; |
2884 | | |
2885 | 0 | case H5T_REFERENCE: |
2886 | 0 | H5RS_acat(rs, "H5T_REFERENCE"); |
2887 | 0 | break; |
2888 | | |
2889 | 0 | case H5T_ENUM: |
2890 | 0 | H5RS_acat(rs, "H5T_ENUM"); |
2891 | 0 | break; |
2892 | | |
2893 | 0 | case H5T_VLEN: |
2894 | 0 | H5RS_acat(rs, "H5T_VLEN"); |
2895 | 0 | break; |
2896 | | |
2897 | 0 | case H5T_ARRAY: |
2898 | 0 | H5RS_acat(rs, "H5T_ARRAY"); |
2899 | 0 | break; |
2900 | | |
2901 | 0 | case H5T_COMPLEX: |
2902 | 0 | H5RS_acat(rs, "H5T_COMPLEX"); |
2903 | 0 | break; |
2904 | | |
2905 | 0 | case H5T_NCLASSES: |
2906 | 0 | H5RS_acat(rs, "H5T_NCLASSES"); |
2907 | 0 | break; |
2908 | | |
2909 | 0 | default: |
2910 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)type_class); |
2911 | 0 | break; |
2912 | 0 | } /* end switch */ |
2913 | 0 | } /* end block */ |
2914 | 0 | break; |
2915 | | |
2916 | 0 | case 'z': /* H5T_str_t */ |
2917 | 0 | { |
2918 | 0 | H5T_str_t str = (H5T_str_t)va_arg(ap, int); |
2919 | |
|
2920 | 0 | switch (str) { |
2921 | 0 | case H5T_STR_ERROR: |
2922 | 0 | H5RS_acat(rs, "H5T_STR_ERROR"); |
2923 | 0 | break; |
2924 | | |
2925 | 0 | case H5T_STR_NULLTERM: |
2926 | 0 | H5RS_acat(rs, "H5T_STR_NULLTERM"); |
2927 | 0 | break; |
2928 | | |
2929 | 0 | case H5T_STR_NULLPAD: |
2930 | 0 | H5RS_acat(rs, "H5T_STR_NULLPAD"); |
2931 | 0 | break; |
2932 | | |
2933 | 0 | case H5T_STR_SPACEPAD: |
2934 | 0 | H5RS_acat(rs, "H5T_STR_SPACEPAD"); |
2935 | 0 | break; |
2936 | | |
2937 | 0 | case H5T_STR_RESERVED_3: |
2938 | 0 | case H5T_STR_RESERVED_4: |
2939 | 0 | case H5T_STR_RESERVED_5: |
2940 | 0 | case H5T_STR_RESERVED_6: |
2941 | 0 | case H5T_STR_RESERVED_7: |
2942 | 0 | case H5T_STR_RESERVED_8: |
2943 | 0 | case H5T_STR_RESERVED_9: |
2944 | 0 | case H5T_STR_RESERVED_10: |
2945 | 0 | case H5T_STR_RESERVED_11: |
2946 | 0 | case H5T_STR_RESERVED_12: |
2947 | 0 | case H5T_STR_RESERVED_13: |
2948 | 0 | case H5T_STR_RESERVED_14: |
2949 | 0 | case H5T_STR_RESERVED_15: |
2950 | 0 | H5RS_asprintf_cat(rs, "H5T_STR_RESERVED(%ld)", (long)str); |
2951 | 0 | break; |
2952 | | |
2953 | 0 | default: |
2954 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)str); |
2955 | 0 | break; |
2956 | 0 | } /* end switch */ |
2957 | 0 | } /* end block */ |
2958 | 0 | break; |
2959 | | |
2960 | 0 | default: |
2961 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(T%c)", type[1]); |
2962 | 0 | goto error; |
2963 | 0 | } /* end switch */ |
2964 | 0 | break; |
2965 | | |
2966 | 0 | case 'U': |
2967 | 0 | switch (type[1]) { |
2968 | 0 | case 'l': /* unsigned long */ |
2969 | 0 | { |
2970 | 0 | unsigned long iul = va_arg(ap, unsigned long); |
2971 | |
|
2972 | 0 | H5RS_asprintf_cat(rs, "%lu", iul); |
2973 | 0 | asize[argno] = (hssize_t)iul; |
2974 | 0 | } /* end block */ |
2975 | 0 | break; |
2976 | | |
2977 | 0 | case 'L': /* unsigned long long / uint64_t */ |
2978 | 0 | { |
2979 | 0 | unsigned long long iull = va_arg(ap, unsigned long long); |
2980 | |
|
2981 | 0 | H5RS_asprintf_cat(rs, "%llu", iull); |
2982 | 0 | asize[argno] = (hssize_t)iull; |
2983 | 0 | } /* end block */ |
2984 | 0 | break; |
2985 | | |
2986 | 0 | default: |
2987 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(U%c)", type[1]); |
2988 | 0 | goto error; |
2989 | 0 | } /* end switch */ |
2990 | 0 | break; |
2991 | | |
2992 | 0 | case 'V': |
2993 | 0 | switch (type[1]) { |
2994 | 0 | case 'a': /* H5VL_attr_get_t */ |
2995 | 0 | { |
2996 | 0 | H5VL_attr_get_t get = (H5VL_attr_get_t)va_arg(ap, int); |
2997 | |
|
2998 | 0 | switch (get) { |
2999 | 0 | case H5VL_ATTR_GET_SPACE: |
3000 | 0 | H5RS_acat(rs, "H5VL_ATTR_GET_SPACE"); |
3001 | 0 | break; |
3002 | | |
3003 | 0 | case H5VL_ATTR_GET_TYPE: |
3004 | 0 | H5RS_acat(rs, "H5VL_ATTR_GET_TYPE"); |
3005 | 0 | break; |
3006 | | |
3007 | 0 | case H5VL_ATTR_GET_ACPL: |
3008 | 0 | H5RS_acat(rs, "H5VL_ATTR_GET_ACPL"); |
3009 | 0 | break; |
3010 | | |
3011 | 0 | case H5VL_ATTR_GET_NAME: |
3012 | 0 | H5RS_acat(rs, "H5VL_ATTR_GET_NAME"); |
3013 | 0 | break; |
3014 | | |
3015 | 0 | case H5VL_ATTR_GET_STORAGE_SIZE: |
3016 | 0 | H5RS_acat(rs, "H5VL_ATTR_GET_STORAGE_SIZE"); |
3017 | 0 | break; |
3018 | | |
3019 | 0 | case H5VL_ATTR_GET_INFO: |
3020 | 0 | H5RS_acat(rs, "H5VL_ATTR_GET_INFO"); |
3021 | 0 | break; |
3022 | | |
3023 | 0 | default: |
3024 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3025 | 0 | break; |
3026 | 0 | } /* end switch */ |
3027 | 0 | } /* end block */ |
3028 | 0 | break; |
3029 | | |
3030 | 0 | case 'A': /* H5VL_blob_optional_t */ |
3031 | 0 | { |
3032 | 0 | H5VL_blob_optional_t optional = (H5VL_blob_optional_t)va_arg(ap, int); |
3033 | |
|
3034 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3035 | 0 | } /* end block */ |
3036 | 0 | break; |
3037 | | |
3038 | 0 | case 'b': /* H5VL_attr_specific_t */ |
3039 | 0 | { |
3040 | 0 | H5VL_attr_specific_t specific = (H5VL_attr_specific_t)va_arg(ap, int); |
3041 | |
|
3042 | 0 | switch (specific) { |
3043 | 0 | case H5VL_ATTR_DELETE: |
3044 | 0 | H5RS_acat(rs, "H5VL_ATTR_DELETE"); |
3045 | 0 | break; |
3046 | | |
3047 | 0 | case H5VL_ATTR_DELETE_BY_IDX: |
3048 | 0 | H5RS_acat(rs, "H5VL_ATTR_DELETE_BY_IDX"); |
3049 | 0 | break; |
3050 | | |
3051 | 0 | case H5VL_ATTR_EXISTS: |
3052 | 0 | H5RS_acat(rs, "H5VL_ATTR_EXISTS"); |
3053 | 0 | break; |
3054 | | |
3055 | 0 | case H5VL_ATTR_ITER: |
3056 | 0 | H5RS_acat(rs, "H5VL_ATTR_ITER"); |
3057 | 0 | break; |
3058 | | |
3059 | 0 | case H5VL_ATTR_RENAME: |
3060 | 0 | H5RS_acat(rs, "H5VL_ATTR_RENAME"); |
3061 | 0 | break; |
3062 | | |
3063 | 0 | default: |
3064 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3065 | 0 | break; |
3066 | 0 | } /* end switch */ |
3067 | 0 | } /* end block */ |
3068 | 0 | break; |
3069 | | |
3070 | 0 | case 'B': /* H5VL_blob_specific_t */ |
3071 | 0 | { |
3072 | 0 | H5VL_blob_specific_t specific = (H5VL_blob_specific_t)va_arg(ap, int); |
3073 | |
|
3074 | 0 | switch (specific) { |
3075 | 0 | case H5VL_BLOB_DELETE: |
3076 | 0 | H5RS_acat(rs, "H5VL_BLOB_DELETE"); |
3077 | 0 | break; |
3078 | | |
3079 | 0 | case H5VL_BLOB_ISNULL: |
3080 | 0 | H5RS_acat(rs, "H5VL_BLOB_ISNULL"); |
3081 | 0 | break; |
3082 | | |
3083 | 0 | case H5VL_BLOB_SETNULL: |
3084 | 0 | H5RS_acat(rs, "H5VL_BLOB_SETNULL"); |
3085 | 0 | break; |
3086 | | |
3087 | 0 | default: |
3088 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3089 | 0 | break; |
3090 | 0 | } /* end switch */ |
3091 | 0 | } /* end block */ |
3092 | 0 | break; |
3093 | | |
3094 | 0 | case 'c': /* H5VL_dataset_get_t */ |
3095 | 0 | { |
3096 | 0 | H5VL_dataset_get_t get = (H5VL_dataset_get_t)va_arg(ap, int); |
3097 | |
|
3098 | 0 | switch (get) { |
3099 | 0 | case H5VL_DATASET_GET_SPACE: |
3100 | 0 | H5RS_acat(rs, "H5VL_DATASET_GET_SPACE"); |
3101 | 0 | break; |
3102 | | |
3103 | 0 | case H5VL_DATASET_GET_SPACE_STATUS: |
3104 | 0 | H5RS_acat(rs, "H5VL_DATASET_GET_SPACE_STATUS"); |
3105 | 0 | break; |
3106 | | |
3107 | 0 | case H5VL_DATASET_GET_TYPE: |
3108 | 0 | H5RS_acat(rs, "H5VL_DATASET_GET_TYPE"); |
3109 | 0 | break; |
3110 | | |
3111 | 0 | case H5VL_DATASET_GET_DCPL: |
3112 | 0 | H5RS_acat(rs, "H5VL_DATASET_GET_DCPL"); |
3113 | 0 | break; |
3114 | | |
3115 | 0 | case H5VL_DATASET_GET_DAPL: |
3116 | 0 | H5RS_acat(rs, "H5VL_DATASET_GET_DAPL"); |
3117 | 0 | break; |
3118 | | |
3119 | 0 | case H5VL_DATASET_GET_STORAGE_SIZE: |
3120 | 0 | H5RS_acat(rs, "H5VL_DATASET_GET_STORAGE_SIZE"); |
3121 | 0 | break; |
3122 | | |
3123 | 0 | default: |
3124 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3125 | 0 | break; |
3126 | 0 | } /* end switch */ |
3127 | 0 | } /* end block */ |
3128 | 0 | break; |
3129 | | |
3130 | 0 | case 'C': /* H5VL_class_value_t */ |
3131 | 0 | { |
3132 | 0 | H5VL_class_value_t class_val = (H5VL_class_value_t)va_arg(ap, H5VL_class_value_t); |
3133 | |
|
3134 | 0 | if (H5_VOL_NATIVE == class_val) |
3135 | 0 | H5RS_acat(rs, "H5_VOL_NATIVE"); |
3136 | 0 | else |
3137 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)class_val); |
3138 | 0 | } /* end block */ |
3139 | 0 | break; |
3140 | | |
3141 | 0 | case 'd': /* H5VL_dataset_specific_t */ |
3142 | 0 | { |
3143 | 0 | H5VL_dataset_specific_t specific = (H5VL_dataset_specific_t)va_arg(ap, int); |
3144 | |
|
3145 | 0 | switch (specific) { |
3146 | 0 | case H5VL_DATASET_SET_EXTENT: |
3147 | 0 | H5RS_acat(rs, "H5VL_DATASET_SET_EXTENT"); |
3148 | 0 | break; |
3149 | | |
3150 | 0 | case H5VL_DATASET_FLUSH: |
3151 | 0 | H5RS_acat(rs, "H5VL_DATASET_FLUSH"); |
3152 | 0 | break; |
3153 | | |
3154 | 0 | case H5VL_DATASET_REFRESH: |
3155 | 0 | H5RS_acat(rs, "H5VL_DATASET_REFRESH"); |
3156 | 0 | break; |
3157 | | |
3158 | 0 | default: |
3159 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3160 | 0 | break; |
3161 | 0 | } /* end switch */ |
3162 | 0 | } /* end block */ |
3163 | 0 | break; |
3164 | | |
3165 | 0 | case 'e': /* H5VL_datatype_get_t */ |
3166 | 0 | { |
3167 | 0 | H5VL_datatype_get_t get = (H5VL_datatype_get_t)va_arg(ap, int); |
3168 | |
|
3169 | 0 | switch (get) { |
3170 | 0 | case H5VL_DATATYPE_GET_BINARY_SIZE: |
3171 | 0 | H5RS_acat(rs, "H5VL_DATATYPE_GET_BINARY_SIZE"); |
3172 | 0 | break; |
3173 | | |
3174 | 0 | case H5VL_DATATYPE_GET_BINARY: |
3175 | 0 | H5RS_acat(rs, "H5VL_DATATYPE_GET_BINARY"); |
3176 | 0 | break; |
3177 | | |
3178 | 0 | case H5VL_DATATYPE_GET_TCPL: |
3179 | 0 | H5RS_acat(rs, "H5VL_DATATYPE_GET_TCPL"); |
3180 | 0 | break; |
3181 | | |
3182 | 0 | default: |
3183 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3184 | 0 | break; |
3185 | 0 | } /* end switch */ |
3186 | 0 | } /* end block */ |
3187 | 0 | break; |
3188 | | |
3189 | 0 | case 'f': /* H5VL_datatype_specific_t */ |
3190 | 0 | { |
3191 | 0 | H5VL_datatype_specific_t specific = (H5VL_datatype_specific_t)va_arg(ap, int); |
3192 | |
|
3193 | 0 | switch (specific) { |
3194 | 0 | case H5VL_DATATYPE_FLUSH: |
3195 | 0 | H5RS_acat(rs, "H5VL_DATATYPE_FLUSH"); |
3196 | 0 | break; |
3197 | | |
3198 | 0 | case H5VL_DATATYPE_REFRESH: |
3199 | 0 | H5RS_acat(rs, "H5VL_DATATYPE_REFRESH"); |
3200 | 0 | break; |
3201 | | |
3202 | 0 | default: |
3203 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3204 | 0 | break; |
3205 | 0 | } /* end switch */ |
3206 | 0 | } /* end block */ |
3207 | 0 | break; |
3208 | | |
3209 | 0 | case 'g': /* H5VL_file_get_t */ |
3210 | 0 | { |
3211 | 0 | H5VL_file_get_t get = (H5VL_file_get_t)va_arg(ap, int); |
3212 | |
|
3213 | 0 | switch (get) { |
3214 | 0 | case H5VL_FILE_GET_CONT_INFO: |
3215 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_CONT_INFO"); |
3216 | 0 | break; |
3217 | | |
3218 | 0 | case H5VL_FILE_GET_FAPL: |
3219 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_FAPL"); |
3220 | 0 | break; |
3221 | | |
3222 | 0 | case H5VL_FILE_GET_FCPL: |
3223 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_FCPL"); |
3224 | 0 | break; |
3225 | | |
3226 | 0 | case H5VL_FILE_GET_FILENO: |
3227 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_FILENO"); |
3228 | 0 | break; |
3229 | | |
3230 | 0 | case H5VL_FILE_GET_INTENT: |
3231 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_INTENT"); |
3232 | 0 | break; |
3233 | | |
3234 | 0 | case H5VL_FILE_GET_NAME: |
3235 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_NAME"); |
3236 | 0 | break; |
3237 | | |
3238 | 0 | case H5VL_FILE_GET_OBJ_COUNT: |
3239 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_OBJ_COUNT"); |
3240 | 0 | break; |
3241 | | |
3242 | 0 | case H5VL_FILE_GET_OBJ_IDS: |
3243 | 0 | H5RS_acat(rs, "H5VL_FILE_GET_OBJ_IDS"); |
3244 | 0 | break; |
3245 | | |
3246 | 0 | default: |
3247 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3248 | 0 | break; |
3249 | 0 | } /* end switch */ |
3250 | 0 | } /* end block */ |
3251 | 0 | break; |
3252 | | |
3253 | 0 | case 'h': /* H5VL_file_specific_t */ |
3254 | 0 | { |
3255 | 0 | H5VL_file_specific_t specific = (H5VL_file_specific_t)va_arg(ap, int); |
3256 | |
|
3257 | 0 | switch (specific) { |
3258 | 0 | case H5VL_FILE_FLUSH: |
3259 | 0 | H5RS_acat(rs, "H5VL_FILE_FLUSH"); |
3260 | 0 | break; |
3261 | | |
3262 | 0 | case H5VL_FILE_REOPEN: |
3263 | 0 | H5RS_acat(rs, "H5VL_FILE_REOPEN"); |
3264 | 0 | break; |
3265 | | |
3266 | 0 | case H5VL_FILE_IS_ACCESSIBLE: |
3267 | 0 | H5RS_acat(rs, "H5VL_FILE_IS_ACCESSIBLE"); |
3268 | 0 | break; |
3269 | | |
3270 | 0 | case H5VL_FILE_DELETE: |
3271 | 0 | H5RS_acat(rs, "H5VL_FILE_DELETE"); |
3272 | 0 | break; |
3273 | | |
3274 | 0 | case H5VL_FILE_IS_EQUAL: |
3275 | 0 | H5RS_acat(rs, "H5VL_FILE_IS_EQUAL"); |
3276 | 0 | break; |
3277 | | |
3278 | 0 | default: |
3279 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3280 | 0 | break; |
3281 | 0 | } /* end switch */ |
3282 | 0 | } /* end block */ |
3283 | 0 | break; |
3284 | | |
3285 | 0 | case 'i': /* H5VL_group_get_t */ |
3286 | 0 | { |
3287 | 0 | H5VL_group_get_t get = (H5VL_group_get_t)va_arg(ap, int); |
3288 | |
|
3289 | 0 | switch (get) { |
3290 | 0 | case H5VL_GROUP_GET_GCPL: |
3291 | 0 | H5RS_acat(rs, "H5VL_GROUP_GET_GCPL"); |
3292 | 0 | break; |
3293 | | |
3294 | 0 | case H5VL_GROUP_GET_INFO: |
3295 | 0 | H5RS_acat(rs, "H5VL_GROUP_GET_INFO"); |
3296 | 0 | break; |
3297 | | |
3298 | 0 | default: |
3299 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3300 | 0 | break; |
3301 | 0 | } /* end switch */ |
3302 | 0 | } /* end block */ |
3303 | 0 | break; |
3304 | | |
3305 | 0 | case 'j': /* H5VL_group_specific_t */ |
3306 | 0 | { |
3307 | 0 | H5VL_group_specific_t specific = (H5VL_group_specific_t)va_arg(ap, int); |
3308 | |
|
3309 | 0 | switch (specific) { |
3310 | 0 | case H5VL_GROUP_MOUNT: |
3311 | 0 | H5RS_acat(rs, "H5VL_GROUP_MOUNT"); |
3312 | 0 | break; |
3313 | | |
3314 | 0 | case H5VL_GROUP_UNMOUNT: |
3315 | 0 | H5RS_acat(rs, "H5VL_GROUP_UNMOUNT"); |
3316 | 0 | break; |
3317 | | |
3318 | 0 | case H5VL_GROUP_FLUSH: |
3319 | 0 | H5RS_acat(rs, "H5VL_GROUP_FLUSH"); |
3320 | 0 | break; |
3321 | | |
3322 | 0 | case H5VL_GROUP_REFRESH: |
3323 | 0 | H5RS_acat(rs, "H5VL_GROUP_REFRESH"); |
3324 | 0 | break; |
3325 | | |
3326 | 0 | default: |
3327 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3328 | 0 | break; |
3329 | 0 | } /* end switch */ |
3330 | 0 | } /* end block */ |
3331 | 0 | break; |
3332 | | |
3333 | 0 | case 'k': /* H5VL_link_create_t */ |
3334 | 0 | { |
3335 | 0 | H5VL_link_create_t create = (H5VL_link_create_t)va_arg(ap, int); |
3336 | |
|
3337 | 0 | switch (create) { |
3338 | 0 | case H5VL_LINK_CREATE_HARD: |
3339 | 0 | H5RS_acat(rs, "H5VL_LINK_CREATE_HARD"); |
3340 | 0 | break; |
3341 | | |
3342 | 0 | case H5VL_LINK_CREATE_SOFT: |
3343 | 0 | H5RS_acat(rs, "H5VL_LINK_CREATE_SOFT"); |
3344 | 0 | break; |
3345 | | |
3346 | 0 | case H5VL_LINK_CREATE_UD: |
3347 | 0 | H5RS_acat(rs, "H5VL_LINK_CREATE_UD"); |
3348 | 0 | break; |
3349 | | |
3350 | 0 | default: |
3351 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)create); |
3352 | 0 | break; |
3353 | 0 | } /* end switch */ |
3354 | 0 | } /* end block */ |
3355 | 0 | break; |
3356 | | |
3357 | 0 | case 'l': /* H5VL_link_get_t */ |
3358 | 0 | { |
3359 | 0 | H5VL_link_get_t get = (H5VL_link_get_t)va_arg(ap, int); |
3360 | |
|
3361 | 0 | switch (get) { |
3362 | 0 | case H5VL_LINK_GET_INFO: |
3363 | 0 | H5RS_acat(rs, "H5VL_LINK_GET_INFO"); |
3364 | 0 | break; |
3365 | | |
3366 | 0 | case H5VL_LINK_GET_NAME: |
3367 | 0 | H5RS_acat(rs, "H5VL_LINK_GET_NAME"); |
3368 | 0 | break; |
3369 | | |
3370 | 0 | case H5VL_LINK_GET_VAL: |
3371 | 0 | H5RS_acat(rs, "H5VL_LINK_GET_VAL"); |
3372 | 0 | break; |
3373 | | |
3374 | 0 | default: |
3375 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3376 | 0 | break; |
3377 | 0 | } /* end switch */ |
3378 | 0 | } /* end block */ |
3379 | 0 | break; |
3380 | | |
3381 | 0 | case 'L': /* H5VL_get_conn_lvl_t */ |
3382 | 0 | { |
3383 | 0 | H5VL_get_conn_lvl_t get = (H5VL_get_conn_lvl_t)va_arg(ap, int); |
3384 | |
|
3385 | 0 | switch (get) { |
3386 | 0 | case H5VL_GET_CONN_LVL_CURR: |
3387 | 0 | H5RS_acat(rs, "H5VL_GET_CONN_LVL_CURR"); |
3388 | 0 | break; |
3389 | | |
3390 | 0 | case H5VL_GET_CONN_LVL_TERM: |
3391 | 0 | H5RS_acat(rs, "H5VL_GET_CONN_LVL_TERM"); |
3392 | 0 | break; |
3393 | | |
3394 | 0 | default: |
3395 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3396 | 0 | break; |
3397 | 0 | } /* end switch */ |
3398 | 0 | } /* end block */ |
3399 | 0 | break; |
3400 | | |
3401 | 0 | case 'm': /* H5VL_link_specific_t */ |
3402 | 0 | { |
3403 | 0 | H5VL_link_specific_t specific = (H5VL_link_specific_t)va_arg(ap, int); |
3404 | |
|
3405 | 0 | switch (specific) { |
3406 | 0 | case H5VL_LINK_DELETE: |
3407 | 0 | H5RS_acat(rs, "H5VL_LINK_DELETE"); |
3408 | 0 | break; |
3409 | | |
3410 | 0 | case H5VL_LINK_EXISTS: |
3411 | 0 | H5RS_acat(rs, "H5VL_LINK_EXISTS"); |
3412 | 0 | break; |
3413 | | |
3414 | 0 | case H5VL_LINK_ITER: |
3415 | 0 | H5RS_acat(rs, "H5VL_LINK_ITER"); |
3416 | 0 | break; |
3417 | | |
3418 | 0 | default: |
3419 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3420 | 0 | break; |
3421 | 0 | } /* end switch */ |
3422 | 0 | } /* end block */ |
3423 | 0 | break; |
3424 | | |
3425 | 0 | case 'n': /* H5VL_object_get_t */ |
3426 | 0 | { |
3427 | 0 | H5VL_object_get_t get = (H5VL_object_get_t)va_arg(ap, int); |
3428 | |
|
3429 | 0 | switch (get) { |
3430 | 0 | case H5VL_OBJECT_GET_FILE: |
3431 | 0 | H5RS_acat(rs, "H5VL_OBJECT_GET_FILE"); |
3432 | 0 | break; |
3433 | | |
3434 | 0 | case H5VL_OBJECT_GET_NAME: |
3435 | 0 | H5RS_acat(rs, "H5VL_OBJECT_GET_NAME"); |
3436 | 0 | break; |
3437 | | |
3438 | 0 | case H5VL_OBJECT_GET_TYPE: |
3439 | 0 | H5RS_acat(rs, "H5VL_OBJECT_GET_TYPE"); |
3440 | 0 | break; |
3441 | | |
3442 | 0 | case H5VL_OBJECT_GET_INFO: |
3443 | 0 | H5RS_acat(rs, "H5VL_OBJECT_GET_INFO"); |
3444 | 0 | break; |
3445 | | |
3446 | 0 | default: |
3447 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)get); |
3448 | 0 | break; |
3449 | 0 | } /* end switch */ |
3450 | 0 | } /* end block */ |
3451 | 0 | break; |
3452 | | |
3453 | 0 | case 'N': /* H5VL_request_notify_t */ |
3454 | 0 | { |
3455 | 0 | H5VL_request_notify_t vlrnot = |
3456 | 0 | (H5VL_request_notify_t)va_arg(ap, H5VL_request_notify_t); |
3457 | |
|
3458 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)vlrnot); |
3459 | 0 | } /* end block */ |
3460 | 0 | break; |
3461 | | |
3462 | 0 | case 'o': /* H5VL_object_specific_t */ |
3463 | 0 | { |
3464 | 0 | H5VL_object_specific_t specific = (H5VL_object_specific_t)va_arg(ap, int); |
3465 | |
|
3466 | 0 | switch (specific) { |
3467 | 0 | case H5VL_OBJECT_CHANGE_REF_COUNT: |
3468 | 0 | H5RS_acat(rs, "H5VL_OBJECT_CHANGE_REF_COUNT"); |
3469 | 0 | break; |
3470 | | |
3471 | 0 | case H5VL_OBJECT_EXISTS: |
3472 | 0 | H5RS_acat(rs, "H5VL_OBJECT_EXISTS"); |
3473 | 0 | break; |
3474 | | |
3475 | 0 | case H5VL_OBJECT_LOOKUP: |
3476 | 0 | H5RS_acat(rs, "H5VL_OBJECT_LOOKUP"); |
3477 | 0 | break; |
3478 | | |
3479 | 0 | case H5VL_OBJECT_VISIT: |
3480 | 0 | H5RS_acat(rs, "H5VL_OBJECT_VISIT"); |
3481 | 0 | break; |
3482 | | |
3483 | 0 | case H5VL_OBJECT_FLUSH: |
3484 | 0 | H5RS_acat(rs, "H5VL_OBJECT_FLUSH"); |
3485 | 0 | break; |
3486 | | |
3487 | 0 | case H5VL_OBJECT_REFRESH: |
3488 | 0 | H5RS_acat(rs, "H5VL_OBJECT_REFRESH"); |
3489 | 0 | break; |
3490 | | |
3491 | 0 | default: |
3492 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3493 | 0 | break; |
3494 | 0 | } /* end switch */ |
3495 | 0 | } /* end block */ |
3496 | 0 | break; |
3497 | | |
3498 | 0 | case 'r': /* H5VL_request_specific_t */ |
3499 | 0 | { |
3500 | 0 | H5VL_request_specific_t specific = (H5VL_request_specific_t)va_arg(ap, int); |
3501 | |
|
3502 | 0 | switch (specific) { |
3503 | 0 | case H5VL_REQUEST_GET_ERR_STACK: |
3504 | 0 | H5RS_acat(rs, "H5VL_REQUEST_GET_ERR_STACK"); |
3505 | 0 | break; |
3506 | | |
3507 | 0 | case H5VL_REQUEST_GET_EXEC_TIME: |
3508 | 0 | H5RS_acat(rs, "H5VL_REQUEST_GET_EXEC_TIME"); |
3509 | 0 | break; |
3510 | | |
3511 | 0 | default: |
3512 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)specific); |
3513 | 0 | break; |
3514 | 0 | } /* end switch */ |
3515 | 0 | } /* end block */ |
3516 | 0 | break; |
3517 | | |
3518 | 0 | case 's': /* H5VL_attr_optional_t */ |
3519 | 0 | { |
3520 | 0 | H5VL_attr_optional_t optional = (H5VL_attr_optional_t)va_arg(ap, int); |
3521 | |
|
3522 | 0 | switch (optional) { |
3523 | 0 | #ifndef H5_NO_DEPRECATED_SYMBOLS |
3524 | 0 | case H5VL_NATIVE_ATTR_ITERATE_OLD: |
3525 | 0 | H5RS_acat(rs, "H5VL_NATIVE_ATTR_ITERATE_OLD"); |
3526 | 0 | break; |
3527 | 0 | #endif /* H5_NO_DEPRECATED_SYMBOLS */ |
3528 | | |
3529 | 0 | default: |
3530 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3531 | 0 | break; |
3532 | 0 | } /* end switch */ |
3533 | 0 | } /* end block */ |
3534 | 0 | break; |
3535 | | |
3536 | 0 | case 'S': /* H5VL_subclass_t */ |
3537 | 0 | { |
3538 | 0 | H5VL_subclass_t subclass = (H5VL_subclass_t)va_arg(ap, int); |
3539 | |
|
3540 | 0 | switch (subclass) { |
3541 | 0 | case H5VL_SUBCLS_NONE: |
3542 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_NONE"); |
3543 | 0 | break; |
3544 | | |
3545 | 0 | case H5VL_SUBCLS_INFO: |
3546 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_INFO"); |
3547 | 0 | break; |
3548 | | |
3549 | 0 | case H5VL_SUBCLS_WRAP: |
3550 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_WRAP"); |
3551 | 0 | break; |
3552 | | |
3553 | 0 | case H5VL_SUBCLS_ATTR: |
3554 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_ATTR"); |
3555 | 0 | break; |
3556 | | |
3557 | 0 | case H5VL_SUBCLS_DATASET: |
3558 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_DATASET"); |
3559 | 0 | break; |
3560 | | |
3561 | 0 | case H5VL_SUBCLS_DATATYPE: |
3562 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_DATATYPE"); |
3563 | 0 | break; |
3564 | | |
3565 | 0 | case H5VL_SUBCLS_FILE: |
3566 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_FILE"); |
3567 | 0 | break; |
3568 | | |
3569 | 0 | case H5VL_SUBCLS_GROUP: |
3570 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_GROUP"); |
3571 | 0 | break; |
3572 | | |
3573 | 0 | case H5VL_SUBCLS_LINK: |
3574 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_LINK"); |
3575 | 0 | break; |
3576 | | |
3577 | 0 | case H5VL_SUBCLS_OBJECT: |
3578 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_OBJECT"); |
3579 | 0 | break; |
3580 | | |
3581 | 0 | case H5VL_SUBCLS_REQUEST: |
3582 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_REQUEST"); |
3583 | 0 | break; |
3584 | | |
3585 | 0 | case H5VL_SUBCLS_BLOB: |
3586 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_BLOB"); |
3587 | 0 | break; |
3588 | | |
3589 | 0 | case H5VL_SUBCLS_TOKEN: |
3590 | 0 | H5RS_acat(rs, "H5VL_SUBCLS_TOKEN"); |
3591 | 0 | break; |
3592 | | |
3593 | 0 | default: |
3594 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)subclass); |
3595 | 0 | break; |
3596 | 0 | } /* end switch */ |
3597 | 0 | } /* end block */ |
3598 | 0 | break; |
3599 | | |
3600 | 0 | case 't': /* H5VL_dataset_optional_t */ |
3601 | 0 | { |
3602 | 0 | H5VL_dataset_optional_t optional = (H5VL_dataset_optional_t)va_arg(ap, int); |
3603 | |
|
3604 | 0 | switch (optional) { |
3605 | 0 | case H5VL_NATIVE_DATASET_FORMAT_CONVERT: |
3606 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_FORMAT_CONVERT"); |
3607 | 0 | break; |
3608 | | |
3609 | 0 | case H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE: |
3610 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE"); |
3611 | 0 | break; |
3612 | | |
3613 | 0 | case H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE: |
3614 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE"); |
3615 | 0 | break; |
3616 | | |
3617 | 0 | case H5VL_NATIVE_DATASET_GET_NUM_CHUNKS: |
3618 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_GET_NUM_CHUNKS"); |
3619 | 0 | break; |
3620 | | |
3621 | 0 | case H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_IDX: |
3622 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_IDX"); |
3623 | 0 | break; |
3624 | | |
3625 | 0 | case H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_COORD: |
3626 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_COORD"); |
3627 | 0 | break; |
3628 | | |
3629 | 0 | case H5VL_NATIVE_DATASET_CHUNK_READ: |
3630 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_CHUNK_READ"); |
3631 | 0 | break; |
3632 | | |
3633 | 0 | case H5VL_NATIVE_DATASET_CHUNK_WRITE: |
3634 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_CHUNK_WRITE"); |
3635 | 0 | break; |
3636 | | |
3637 | 0 | case H5VL_NATIVE_DATASET_GET_VLEN_BUF_SIZE: |
3638 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_GET_VLEN_BUF_SIZE"); |
3639 | 0 | break; |
3640 | | |
3641 | 0 | case H5VL_NATIVE_DATASET_GET_OFFSET: |
3642 | 0 | H5RS_acat(rs, "H5VL_NATIVE_DATASET_GET_OFFSET"); |
3643 | 0 | break; |
3644 | | |
3645 | 0 | default: |
3646 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3647 | 0 | break; |
3648 | 0 | } /* end switch */ |
3649 | 0 | } /* end block */ |
3650 | 0 | break; |
3651 | | |
3652 | 0 | case 'u': /* H5VL_datatype_optional_t */ |
3653 | 0 | { |
3654 | 0 | H5VL_datatype_optional_t optional = (H5VL_datatype_optional_t)va_arg(ap, int); |
3655 | |
|
3656 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3657 | 0 | } /* end block */ |
3658 | 0 | break; |
3659 | | |
3660 | 0 | case 'v': /* H5VL_file_optional_t */ |
3661 | 0 | { |
3662 | 0 | H5VL_file_optional_t optional = (H5VL_file_optional_t)va_arg(ap, int); |
3663 | |
|
3664 | 0 | switch (optional) { |
3665 | 0 | case H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE: |
3666 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE"); |
3667 | 0 | break; |
3668 | | |
3669 | 0 | case H5VL_NATIVE_FILE_GET_FILE_IMAGE: |
3670 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_FILE_IMAGE"); |
3671 | 0 | break; |
3672 | | |
3673 | 0 | case H5VL_NATIVE_FILE_GET_FREE_SECTIONS: |
3674 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_FREE_SECTIONS"); |
3675 | 0 | break; |
3676 | | |
3677 | 0 | case H5VL_NATIVE_FILE_GET_FREE_SPACE: |
3678 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_FREE_SPACE"); |
3679 | 0 | break; |
3680 | | |
3681 | 0 | case H5VL_NATIVE_FILE_GET_INFO: |
3682 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_INFO"); |
3683 | 0 | break; |
3684 | | |
3685 | 0 | case H5VL_NATIVE_FILE_GET_MDC_CONF: |
3686 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_MDC_CONF"); |
3687 | 0 | break; |
3688 | | |
3689 | 0 | case H5VL_NATIVE_FILE_GET_MDC_HR: |
3690 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_MDC_HR"); |
3691 | 0 | break; |
3692 | | |
3693 | 0 | case H5VL_NATIVE_FILE_GET_MDC_SIZE: |
3694 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_MDC_SIZE"); |
3695 | 0 | break; |
3696 | | |
3697 | 0 | case H5VL_NATIVE_FILE_GET_SIZE: |
3698 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_SIZE"); |
3699 | 0 | break; |
3700 | | |
3701 | 0 | case H5VL_NATIVE_FILE_GET_VFD_HANDLE: |
3702 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_VFD_HANDLE"); |
3703 | 0 | break; |
3704 | | |
3705 | 0 | case H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE: |
3706 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE"); |
3707 | 0 | break; |
3708 | | |
3709 | 0 | case H5VL_NATIVE_FILE_SET_MDC_CONFIG: |
3710 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_SET_MDC_CONFIG"); |
3711 | 0 | break; |
3712 | | |
3713 | 0 | case H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO: |
3714 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO"); |
3715 | 0 | break; |
3716 | | |
3717 | 0 | case H5VL_NATIVE_FILE_START_SWMR_WRITE: |
3718 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_START_SWMR_WRITE"); |
3719 | 0 | break; |
3720 | | |
3721 | 0 | case H5VL_NATIVE_FILE_START_MDC_LOGGING: |
3722 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_START_MDC_LOGGING"); |
3723 | 0 | break; |
3724 | | |
3725 | 0 | case H5VL_NATIVE_FILE_STOP_MDC_LOGGING: |
3726 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_STOP_MDC_LOGGING"); |
3727 | 0 | break; |
3728 | | |
3729 | 0 | case H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS: |
3730 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS"); |
3731 | 0 | break; |
3732 | | |
3733 | 0 | case H5VL_NATIVE_FILE_FORMAT_CONVERT: |
3734 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_FORMAT_CONVERT"); |
3735 | 0 | break; |
3736 | | |
3737 | 0 | case H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS: |
3738 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS"); |
3739 | 0 | break; |
3740 | | |
3741 | 0 | case H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS: |
3742 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS"); |
3743 | 0 | break; |
3744 | | |
3745 | 0 | case H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO: |
3746 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO"); |
3747 | 0 | break; |
3748 | | |
3749 | 0 | case H5VL_NATIVE_FILE_GET_EOA: |
3750 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_EOA"); |
3751 | 0 | break; |
3752 | | |
3753 | 0 | case H5VL_NATIVE_FILE_INCR_FILESIZE: |
3754 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_INCR_FILESIZE"); |
3755 | 0 | break; |
3756 | | |
3757 | 0 | case H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS: |
3758 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS"); |
3759 | 0 | break; |
3760 | | |
3761 | 0 | case H5VL_NATIVE_FILE_GET_MIN_DSET_OHDR_FLAG: |
3762 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_MIN_DSET_OHDR_FLAG"); |
3763 | 0 | break; |
3764 | | |
3765 | 0 | case H5VL_NATIVE_FILE_SET_MIN_DSET_OHDR_FLAG: |
3766 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_SET_MIN_DSET_OHDR_FLAG"); |
3767 | 0 | break; |
3768 | | |
3769 | | #ifdef H5_HAVE_PARALLEL |
3770 | | case H5VL_NATIVE_FILE_GET_MPI_ATOMICITY: |
3771 | | H5RS_acat(rs, "H5VL_NATIVE_FILE_GET_MPI_ATOMICITY"); |
3772 | | break; |
3773 | | |
3774 | | case H5VL_NATIVE_FILE_SET_MPI_ATOMICITY: |
3775 | | H5RS_acat(rs, "H5VL_NATIVE_FILE_SET_MPI_ATOMICITY"); |
3776 | | break; |
3777 | | #endif /* H5_HAVE_PARALLEL */ |
3778 | | |
3779 | 0 | case H5VL_NATIVE_FILE_POST_OPEN: |
3780 | 0 | H5RS_acat(rs, "H5VL_NATIVE_FILE_POST_OPEN"); |
3781 | 0 | break; |
3782 | | |
3783 | 0 | default: |
3784 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3785 | 0 | break; |
3786 | 0 | } /* end switch */ |
3787 | 0 | } /* end block */ |
3788 | 0 | break; |
3789 | | |
3790 | 0 | case 'w': /* H5VL_group_optional_t */ |
3791 | 0 | { |
3792 | 0 | H5VL_group_optional_t optional = (H5VL_group_optional_t)va_arg(ap, int); |
3793 | |
|
3794 | 0 | switch (optional) { |
3795 | 0 | #ifndef H5_NO_DEPRECATED_SYMBOLS |
3796 | 0 | case H5VL_NATIVE_GROUP_ITERATE_OLD: |
3797 | 0 | H5RS_acat(rs, "H5VL_NATIVE_GROUP_ITERATE_OLD"); |
3798 | 0 | break; |
3799 | | |
3800 | 0 | case H5VL_NATIVE_GROUP_GET_OBJINFO: |
3801 | 0 | H5RS_acat(rs, "H5VL_NATIVE_GROUP_GET_OBJINFO"); |
3802 | 0 | break; |
3803 | 0 | #endif /* H5_NO_DEPRECATED_SYMBOLS */ |
3804 | | |
3805 | 0 | default: |
3806 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3807 | 0 | break; |
3808 | 0 | } /* end switch */ |
3809 | 0 | } /* end block */ |
3810 | 0 | break; |
3811 | | |
3812 | 0 | case 'x': /* H5VL_link_optional_t */ |
3813 | 0 | { |
3814 | 0 | H5VL_link_optional_t optional = (H5VL_link_optional_t)va_arg(ap, int); |
3815 | |
|
3816 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3817 | 0 | } /* end block */ |
3818 | 0 | break; |
3819 | | |
3820 | 0 | case 'y': /* H5VL_object_optional_t */ |
3821 | 0 | { |
3822 | 0 | H5VL_object_optional_t optional = (H5VL_object_optional_t)va_arg(ap, int); |
3823 | |
|
3824 | 0 | switch (optional) { |
3825 | 0 | case H5VL_NATIVE_OBJECT_GET_COMMENT: |
3826 | 0 | H5RS_acat(rs, "H5VL_NATIVE_OBJECT_GET_COMMENT"); |
3827 | 0 | break; |
3828 | | |
3829 | 0 | case H5VL_NATIVE_OBJECT_SET_COMMENT: |
3830 | 0 | H5RS_acat(rs, "H5VL_NATIVE_OBJECT_SET_COMMENT"); |
3831 | 0 | break; |
3832 | | |
3833 | 0 | case H5VL_NATIVE_OBJECT_DISABLE_MDC_FLUSHES: |
3834 | 0 | H5RS_acat(rs, "H5VL_NATIVE_OBJECT_DISABLE_MDC_FLUSHES"); |
3835 | 0 | break; |
3836 | | |
3837 | 0 | case H5VL_NATIVE_OBJECT_ENABLE_MDC_FLUSHES: |
3838 | 0 | H5RS_acat(rs, "H5VL_NATIVE_OBJECT_ENABLE_MDC_FLUSHES"); |
3839 | 0 | break; |
3840 | | |
3841 | 0 | case H5VL_NATIVE_OBJECT_ARE_MDC_FLUSHES_DISABLED: |
3842 | 0 | H5RS_acat(rs, "H5VL_NATIVE_OBJECT_ARE_MDC_FLUSHES_DISABLED"); |
3843 | 0 | break; |
3844 | | |
3845 | 0 | case H5VL_NATIVE_OBJECT_GET_NATIVE_INFO: |
3846 | 0 | H5RS_acat(rs, "H5VL_NATIVE_OBJECT_GET_NATIVE_INFO"); |
3847 | 0 | break; |
3848 | | |
3849 | 0 | default: |
3850 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3851 | 0 | break; |
3852 | 0 | } /* end switch */ |
3853 | 0 | } /* end block */ |
3854 | 0 | break; |
3855 | | |
3856 | 0 | case 'z': /* H5VL_request_optional_t */ |
3857 | 0 | { |
3858 | 0 | H5VL_request_optional_t optional = (H5VL_request_optional_t)va_arg(ap, int); |
3859 | |
|
3860 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)optional); |
3861 | 0 | } /* end block */ |
3862 | 0 | break; |
3863 | | |
3864 | 0 | default: |
3865 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(Z%c)", type[1]); |
3866 | 0 | goto error; |
3867 | 0 | } /* end switch */ |
3868 | 0 | break; |
3869 | | |
3870 | 0 | case 'x': { /* void / va_list */ |
3871 | 0 | vp = va_arg(ap, void *); |
3872 | |
|
3873 | 0 | if (vp) |
3874 | 0 | H5RS_asprintf_cat(rs, "%p", vp); |
3875 | 0 | else |
3876 | 0 | H5RS_acat(rs, "NULL"); |
3877 | 0 | } /* end block */ |
3878 | 0 | break; |
3879 | | |
3880 | 0 | case 'z': { |
3881 | 0 | size_t size = va_arg(ap, size_t); |
3882 | |
|
3883 | 0 | H5RS_asprintf_cat(rs, "%zu", size); |
3884 | 0 | asize[argno] = (hssize_t)size; |
3885 | 0 | } /* end block */ |
3886 | 0 | break; |
3887 | | |
3888 | 0 | case 'Z': |
3889 | 0 | switch (type[1]) { |
3890 | 0 | case 'a': /* H5Z_SO_scale_type_t */ |
3891 | 0 | { |
3892 | 0 | H5Z_SO_scale_type_t scale_type = (H5Z_SO_scale_type_t)va_arg(ap, int); |
3893 | |
|
3894 | 0 | switch (scale_type) { |
3895 | 0 | case H5Z_SO_FLOAT_DSCALE: |
3896 | 0 | H5RS_acat(rs, "H5Z_SO_FLOAT_DSCALE"); |
3897 | 0 | break; |
3898 | | |
3899 | 0 | case H5Z_SO_FLOAT_ESCALE: |
3900 | 0 | H5RS_acat(rs, "H5Z_SO_FLOAT_ESCALE"); |
3901 | 0 | break; |
3902 | | |
3903 | 0 | case H5Z_SO_INT: |
3904 | 0 | H5RS_acat(rs, "H5Z_SO_INT"); |
3905 | 0 | break; |
3906 | | |
3907 | 0 | default: |
3908 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)scale_type); |
3909 | 0 | break; |
3910 | 0 | } /* end switch */ |
3911 | 0 | } /* end block */ |
3912 | 0 | break; |
3913 | | |
3914 | 0 | case 'c': /* H5Z_class2_t */ |
3915 | 0 | { |
3916 | 0 | H5Z_class2_t *filter = va_arg(ap, H5Z_class2_t *); |
3917 | |
|
3918 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)filter); |
3919 | 0 | } /* end block */ |
3920 | 0 | break; |
3921 | | |
3922 | 0 | case 'e': /* H5Z_EDC_t */ |
3923 | 0 | { |
3924 | 0 | H5Z_EDC_t edc = (H5Z_EDC_t)va_arg(ap, int); |
3925 | |
|
3926 | 0 | if (H5Z_DISABLE_EDC == edc) |
3927 | 0 | H5RS_acat(rs, "H5Z_DISABLE_EDC"); |
3928 | 0 | else if (H5Z_ENABLE_EDC == edc) |
3929 | 0 | H5RS_acat(rs, "H5Z_ENABLE_EDC"); |
3930 | 0 | else |
3931 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)edc); |
3932 | 0 | } /* end block */ |
3933 | 0 | break; |
3934 | | |
3935 | 0 | case 'f': /* H5Z_filter_t */ |
3936 | 0 | { |
3937 | 0 | H5Z_filter_t id = va_arg(ap, H5Z_filter_t); |
3938 | |
|
3939 | 0 | if (H5Z_FILTER_NONE == id) |
3940 | 0 | H5RS_acat(rs, "H5Z_FILTER_NONE"); |
3941 | 0 | else if (H5Z_FILTER_DEFLATE == id) |
3942 | 0 | H5RS_acat(rs, "H5Z_FILTER_DEFLATE"); |
3943 | 0 | else if (H5Z_FILTER_SHUFFLE == id) |
3944 | 0 | H5RS_acat(rs, "H5Z_FILTER_SHUFFLE"); |
3945 | 0 | else if (H5Z_FILTER_FLETCHER32 == id) |
3946 | 0 | H5RS_acat(rs, "H5Z_FILTER_FLETCHER32"); |
3947 | 0 | else if (H5Z_FILTER_SZIP == id) |
3948 | 0 | H5RS_acat(rs, "H5Z_FILTER_SZIP"); |
3949 | 0 | else if (H5Z_FILTER_NBIT == id) |
3950 | 0 | H5RS_acat(rs, "H5Z_FILTER_NBIT"); |
3951 | 0 | else if (H5Z_FILTER_SCALEOFFSET == id) |
3952 | 0 | H5RS_acat(rs, "H5Z_FILTER_SCALEOFFSET"); |
3953 | 0 | else |
3954 | 0 | H5RS_asprintf_cat(rs, "%ld", (long)id); |
3955 | 0 | } /* end block */ |
3956 | 0 | break; |
3957 | | |
3958 | 0 | case 'F': /* H5Z_filter_func_t */ |
3959 | 0 | { |
3960 | 0 | H5Z_filter_func_t ffunc = (H5Z_filter_func_t)va_arg(ap, H5Z_filter_func_t); |
3961 | |
|
3962 | 0 | H5RS_asprintf_cat(rs, "%p", (void *)(uintptr_t)ffunc); |
3963 | 0 | } /* end block */ |
3964 | 0 | break; |
3965 | | |
3966 | 0 | case 's': { |
3967 | 0 | ssize_t ssize = va_arg(ap, ssize_t); |
3968 | |
|
3969 | 0 | H5RS_asprintf_cat(rs, "%zd", ssize); |
3970 | 0 | asize[argno] = (hssize_t)ssize; |
3971 | 0 | } /* end block */ |
3972 | 0 | break; |
3973 | | |
3974 | 0 | default: |
3975 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(Z%c)", type[1]); |
3976 | 0 | goto error; |
3977 | 0 | } /* end switch */ |
3978 | 0 | break; |
3979 | | |
3980 | 0 | case '#': |
3981 | 0 | H5RS_acat(rs, "Unsupported type slipped through!"); |
3982 | 0 | break; |
3983 | | |
3984 | 0 | case '!': |
3985 | 0 | H5RS_acat(rs, "Unknown type slipped through!"); |
3986 | 0 | break; |
3987 | | |
3988 | 0 | default: |
3989 | 0 | if (isupper(type[0])) |
3990 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(%c%c)", type[0], type[1]); |
3991 | 0 | else |
3992 | 0 | H5RS_asprintf_cat(rs, "BADTYPE(%c)", type[0]); |
3993 | 0 | goto error; |
3994 | 0 | } /* end switch */ |
3995 | 0 | } /* end else */ |
3996 | 0 | } /* end for */ |
3997 | | |
3998 | 0 | return SUCCEED; |
3999 | 0 | error: |
4000 | 0 | return FAIL; |
4001 | 0 | } /* end H5_trace_args() */ |
4002 | | |
4003 | | /*------------------------------------------------------------------------- |
4004 | | * Function: H5_trace |
4005 | | * |
4006 | | * Purpose: This function is called whenever an API function is called |
4007 | | * and tracing is turned on. If RETURNING is non-zero then |
4008 | | * the caller is about to return and RETURNING points to the |
4009 | | * time for the corresponding function call event. Otherwise |
4010 | | * we print the function name and the arguments. |
4011 | | * |
4012 | | * The TYPE argument is a string which gives the type of each of |
4013 | | * the following argument pairs. Each type is zero or more |
4014 | | * asterisks (one for each level of indirection, although some |
4015 | | * types have one level of indirection already implied) followed |
4016 | | * by either one letter (lower case) or two letters (first one |
4017 | | * uppercase). |
4018 | | * |
4019 | | * The variable argument list consists of pairs of values. Each |
4020 | | * pair is a string which is the formal argument name in the |
4021 | | * calling function, followed by the argument value. The type |
4022 | | * of the argument value is given by the TYPE string. |
4023 | | * |
4024 | | * Note: The TYPE string is meant to be terse and is generated by a |
4025 | | * separate perl script. |
4026 | | * |
4027 | | * WARNING: DO NOT CALL ANY HDF5 FUNCTION THAT CALLS FUNC_ENTER(). DOING |
4028 | | * SO MAY CAUSE H5_trace() TO BE INVOKED RECURSIVELY OR MAY |
4029 | | * CAUSE LIBRARY INITIALIZATIONS THAT ARE NOT DESIRED. |
4030 | | * |
4031 | | * Return: Execution time for an API call |
4032 | | * |
4033 | | *------------------------------------------------------------------------- |
4034 | | */ |
4035 | | double |
4036 | | H5_trace(const double *returning, const char *func, const char *type, ...) |
4037 | 0 | { |
4038 | 0 | va_list ap; |
4039 | 0 | H5RS_str_t *rs = NULL; |
4040 | 0 | hssize_t i; |
4041 | 0 | FILE *out = H5_debug_g.trace; |
4042 | 0 | static bool is_first_invocation = true; |
4043 | 0 | H5_timer_t function_timer = {{0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, false}; |
4044 | 0 | H5_timevals_t function_times = {0.0, 0.0, 0.0}; |
4045 | 0 | static H5_timer_t running_timer; |
4046 | 0 | H5_timevals_t running_times; |
4047 | 0 | static int current_depth = 0; |
4048 | 0 | static int last_call_depth = 0; |
4049 | | |
4050 | | /* FUNC_ENTER() should not be called */ |
4051 | |
|
4052 | 0 | if (!out) |
4053 | 0 | return 0.0; /* Tracing is off */ |
4054 | | |
4055 | | /* Initialize the timer for this function */ |
4056 | 0 | if (H5_debug_g.ttimes) |
4057 | 0 | H5_timer_init(&function_timer); |
4058 | |
|
4059 | 0 | if (H5_debug_g.ttop) { |
4060 | 0 | if (returning) { |
4061 | 0 | if (current_depth > 1) { |
4062 | 0 | --current_depth; |
4063 | 0 | return 0.0; |
4064 | 0 | } |
4065 | 0 | } |
4066 | 0 | else { |
4067 | 0 | if (current_depth > 0) { |
4068 | | /* Do not update last_call_depth */ |
4069 | 0 | current_depth++; |
4070 | 0 | return 0.0; |
4071 | 0 | } |
4072 | 0 | } |
4073 | 0 | } |
4074 | | |
4075 | | /* Get time for event if the trace times flag is set */ |
4076 | 0 | if (is_first_invocation && H5_debug_g.ttimes) { |
4077 | | /* Start the library-wide timer */ |
4078 | 0 | is_first_invocation = false; |
4079 | 0 | H5_timer_init(&running_timer); |
4080 | 0 | H5_timer_start(&running_timer); |
4081 | 0 | } |
4082 | | |
4083 | | /* Start the timer for this function */ |
4084 | 0 | if (H5_debug_g.ttimes) |
4085 | 0 | H5_timer_start(&function_timer); |
4086 | | |
4087 | | /* Create the ref-counted string */ |
4088 | 0 | rs = H5RS_create(NULL); |
4089 | | |
4090 | | /* Print the first part of the line. This is the indication of the |
4091 | | * nesting depth followed by the function name and either start of |
4092 | | * argument list or start of return value. If this call is for a |
4093 | | * function return and no other calls have been made to H5_trace() |
4094 | | * since the one for the function call, then we're continuing |
4095 | | * the same line. */ |
4096 | 0 | if (returning) { |
4097 | 0 | assert(current_depth > 0); |
4098 | 0 | --current_depth; |
4099 | 0 | if (current_depth < last_call_depth) { |
4100 | | /* We are at the beginning of a line */ |
4101 | 0 | if (H5_debug_g.ttimes) { |
4102 | 0 | char tmp[320]; |
4103 | |
|
4104 | 0 | H5_timer_get_times(function_timer, &function_times); |
4105 | 0 | H5_timer_get_times(running_timer, &running_times); |
4106 | 0 | snprintf(tmp, sizeof(tmp), "%.6f", (function_times.elapsed - running_times.elapsed)); |
4107 | 0 | H5RS_asprintf_cat(rs, " %*s ", (int)strlen(tmp), ""); |
4108 | 0 | } |
4109 | 0 | for (i = 0; i < current_depth; i++) |
4110 | 0 | H5RS_aputc(rs, '+'); |
4111 | 0 | H5RS_asprintf_cat(rs, "%*s%s = ", 2 * current_depth, "", func); |
4112 | 0 | } |
4113 | 0 | else |
4114 | | /* Continue current line with return value */ |
4115 | 0 | H5RS_acat(rs, " = "); |
4116 | 0 | } |
4117 | 0 | else { |
4118 | 0 | if (current_depth > last_call_depth) |
4119 | 0 | H5RS_acat(rs, " = <delayed>\n"); |
4120 | 0 | if (H5_debug_g.ttimes) { |
4121 | 0 | H5_timer_get_times(function_timer, &function_times); |
4122 | 0 | H5_timer_get_times(running_timer, &running_times); |
4123 | 0 | H5RS_asprintf_cat(rs, "@%.6f ", (function_times.elapsed - running_times.elapsed)); |
4124 | 0 | } |
4125 | 0 | for (i = 0; i < current_depth; i++) |
4126 | 0 | H5RS_aputc(rs, '+'); |
4127 | 0 | H5RS_asprintf_cat(rs, "%*s%s(", 2 * current_depth, "", func); |
4128 | 0 | } |
4129 | | |
4130 | | /* Format arguments into the refcounted string */ |
4131 | 0 | va_start(ap, type); |
4132 | 0 | H5_trace_args(rs, type, ap); |
4133 | 0 | va_end(ap); |
4134 | | |
4135 | | /* Display event time for return */ |
4136 | 0 | if (returning && H5_debug_g.ttimes) { |
4137 | 0 | H5_timer_get_times(function_timer, &function_times); |
4138 | 0 | H5_timer_get_times(running_timer, &running_times); |
4139 | 0 | H5RS_asprintf_cat(rs, " @%.6f [dt=%.6f]", (function_times.elapsed - running_times.elapsed), |
4140 | 0 | (function_times.elapsed - *returning)); |
4141 | 0 | } |
4142 | | |
4143 | | /* Display generated string */ |
4144 | 0 | if (returning) |
4145 | 0 | H5RS_acat(rs, ";\n"); |
4146 | 0 | else { |
4147 | 0 | last_call_depth = current_depth++; |
4148 | 0 | H5RS_acat(rs, ")"); |
4149 | 0 | } |
4150 | 0 | fputs(H5RS_get_str(rs), out); |
4151 | 0 | fflush(out); |
4152 | 0 | H5RS_decr(rs); |
4153 | |
|
4154 | 0 | if (H5_debug_g.ttimes) |
4155 | 0 | return function_times.elapsed; |
4156 | 0 | else |
4157 | 0 | return 0.0; |
4158 | 0 | } /* end H5_trace() */ |