Coverage Report

Created: 2026-04-12 06:58

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/hdf5/src/H5trace.c
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() */