Commit 4daf9b78 authored by Gsell Achim's avatar Gsell Achim

* C-API

- H5PartSetNumPoints() renamed to H5PartSetNumItems()
- H5PartGetNumPoints() renamed to H5PartGetNumItems()
- Dataset names longer then 64 bytes are handled as error.
- Same for step/iteration names.
* core API
- we use the term 'iteration' instead of 'step'
- we use the term 'item' instead of 'point'
- re-factor function and variable names
- in printing messages/debug output fixed
- do not flush (sync to disk) after writing a dataset by default,
  can be controlled by a property
parent 072a2781
2018-09-14 Gsell Achim <achi.gsell@psi.ch>
* C-API
- H5PartSetNumPoints() renamed to H5PartSetNumItems()
- H5PartGetNumPoints() renamed to H5PartGetNumItems()
- Dataset names longer then 64 bytes are handled as error.
- Same for step/iteration names.
* core API
- we use the term 'iteration' instead of 'step'
- we use the term 'item' instead of 'point'
- re-factor function and variable names
- in printing messages/debug output fixed
- do not flush (sync to disk) after writing a dataset by default,
can be controlled by a property
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
License: see file COPYING in top level of source distribution. License: see file COPYING in top level of source distribution.
*/ */
#include <stdlib.h>
#include <mpi.h>
#include "H5hut.h" #include "H5hut.h"
#include "examples.h" #include "examples.h"
...@@ -15,16 +18,51 @@ const char* fname = "example_setview.h5"; ...@@ -15,16 +18,51 @@ const char* fname = "example_setview.h5";
// H5hut verbosity level // H5hut verbosity level
const h5_int64_t h5_verbosity = H5_VERBOSE_DEFAULT; const h5_int64_t h5_verbosity = H5_VERBOSE_DEFAULT;
const h5_int64_t h5_debug_mask = 0;
// we are going to write multiple consecutive blocks // we are going to write multiple consecutive blocks
const h5_int64_t num_blocks = 4; //const h5_int64_t num_blocks = 32;
const h5_int64_t num_particles_per_block = 32; //const h5_int64_t num_particles_per_block = 1048576*8;
int int
main ( main (
int argc, int argc,
char* argv[] char* argv[]
){ ){
if (argc < 3) {
fprintf (stderr, "Usage: %s <number_of_blocks> <sizeof_block>\n", argv[0]);
exit (1);
}
char* endptr = NULL;
long long n = strtoll (argv[1], &endptr, 10);
if (*endptr != 0) {
fprintf (stderr, "first argument (number of blocks) is not a unsigned integer!\n");
exit (1);
}
if (n < 1) {
fprintf (stderr, "first argument (number of block) must be >= 1!\n");
exit (1);
}
if (n == LLONG_MAX) {
fprintf (stderr, "first argument (number of block) to large!\n");
exit (1);
}
h5_int64_t num_blocks = (h5_int64_t)n;
n = strtoll (argv[2], &endptr, 10);
if (*endptr != 0) {
fprintf (stderr, "second argument (sizeof blocks) is not a unsigned integer!\n");
exit (1);
}
if (n < 1024) {
fprintf (stderr, "second argument (sizeof block) must be >= 1024!\n");
exit (1);
}
if (n == LLONG_MAX) {
fprintf (stderr, "second argument (sizeof block) to large!\n");
exit (1);
}
h5_int64_t num_particles_per_block = (h5_int64_t)n;
// initialize MPI & H5hut // initialize MPI & H5hut
MPI_Init (&argc, &argv); MPI_Init (&argc, &argv);
...@@ -33,9 +71,16 @@ main ( ...@@ -33,9 +71,16 @@ main (
MPI_Comm_rank (comm, &comm_rank); MPI_Comm_rank (comm, &comm_rank);
H5AbortOnError (); H5AbortOnError ();
H5SetVerbosityLevel (h5_verbosity); H5SetVerbosityLevel (h5_verbosity);
H5SetDebugMask (h5_debug_mask);
h5_prop_t prop = H5CreateFileProp ();
H5SetPropFileAlign (prop, 1048576*8);
H5SetPropFileMPIOIndependent (prop, &comm);
//H5SetPropFileMPIOCollective (prop, &comm);
// open file and create first step // open file and create first step
h5_file_t file = H5OpenFile (fname, H5_O_WRONLY, H5_PROP_DEFAULT); h5_file_t file = H5OpenFile (fname, H5_O_WRONLY, prop);
//H5PartSetChunkSize (file, 1048576*1);
H5SetStep (file, 0); H5SetStep (file, 0);
/* /*
...@@ -52,7 +97,9 @@ main ( ...@@ -52,7 +97,9 @@ main (
// write multiple consecutive blocks // write multiple consecutive blocks
for (int i = 0; i < num_blocks; i++) { for (int i = 0; i < num_blocks; i++) {
// create fake data // create fake data
h5_int32_t data[num_particles_per_block]; //h5_int32_t data[num_particles_per_block];
h5_int64_t *data;
data = calloc (num_particles_per_block, sizeof(*data));
for (int j = 0; j < num_particles_per_block; j++) { for (int j = 0; j < num_particles_per_block; j++) {
data[j] = j + i*num_particles_per_block + offset; data[j] = j + i*num_particles_per_block + offset;
} }
...@@ -63,7 +110,7 @@ main ( ...@@ -63,7 +110,7 @@ main (
offset + i*num_particles_per_block, offset + i*num_particles_per_block,
offset + (i+1)*num_particles_per_block - 1); offset + (i+1)*num_particles_per_block - 1);
// write data // write data
H5PartWriteDataInt32 (file, "data", data); H5PartWriteDataInt64 (file, "data", data);
} }
// done // done
......
/*
Copyright (c) 2006-2015, The Regents of the University of California,
through Lawrence Berkeley National Laboratory (subject to receipt of any
required approvals from the U.S. Dept. of Energy) and the Paul Scherrer
Institut (Switzerland). All rights reserved.
License: see file COPYING in top level of source distribution.
*/
#include <stdlib.h>
#include <mpi.h>
#include "H5hut.h"
#include "examples.h"
// name of output file
const char* fname = "example_setview.h5";
// H5hut verbosity level
const h5_int64_t h5_verbosity = H5_VERBOSE_DEFAULT;
const h5_int64_t h5_debug_mask = 0;
// we are going to write multiple consecutive blocks
//const h5_int64_t num_blocks = 32;
//const h5_int64_t num_particles_per_block = 1048576*8;
int
main (
int argc,
char* argv[]
){
if (argc < 3) {
fprintf (stderr, "Usage: %s <number_of_blocks> <sizeof_block>\n", argv[0]);
exit (1);
}
char* endptr = NULL;
long long n = strtoll (argv[1], &endptr, 10);
if (*endptr != 0) {
fprintf (stderr, "first argument (number of blocks) is not a unsigned integer!\n");
exit (1);
}
if (n < 1) {
fprintf (stderr, "first argument (number of block) must be >= 1!\n");
exit (1);
}
if (n == LLONG_MAX) {
fprintf (stderr, "first argument (number of block) to large!\n");
exit (1);
}
h5_int64_t num_blocks = (h5_int64_t)n;
n = strtoll (argv[2], &endptr, 10);
if (*endptr != 0) {
fprintf (stderr, "second argument (sizeof blocks) is not a unsigned integer!\n");
exit (1);
}
if (n < 1024) {
fprintf (stderr, "second argument (sizeof block) must be >= 1024!\n");
exit (1);
}
if (n == LLONG_MAX) {
fprintf (stderr, "second argument (sizeof block) to large!\n");
exit (1);
}
h5_int64_t num_particles_per_block = (h5_int64_t)n;
// initialize MPI & H5hut
MPI_Init (&argc, &argv);
MPI_Comm comm = MPI_COMM_WORLD;
int comm_rank = 0;
MPI_Comm_rank (comm, &comm_rank);
H5AbortOnError ();
H5SetVerbosityLevel (h5_verbosity);
H5SetDebugMask (h5_debug_mask);
h5_prop_t prop = H5CreateFileProp ();
H5SetPropFileAlign (prop, 1048576*8);
H5SetPropFileMPIOIndependent (prop, &comm);
//H5SetPropFileMPIOCollective (prop, &comm);
// open file and create first step
h5_file_t file = H5OpenFile (fname, H5_O_WRONLY, prop);
//H5PartSetChunkSize (file, 1048576*1);
H5SetStep (file, 0);
/*
If we want to write consecutive blocks, the 'view' can be defined
with H5PartSetview(). Otherwise we have to define the total number
of particles with H5PartSetNumParticles().
*/
const h5_int64_t offset = comm_rank * num_blocks * num_particles_per_block;
H5PartSetView (
file,
offset,
offset + num_blocks*num_particles_per_block -1);
dataset_id = H5PartCreateDataSet (file, "data");
// write multiple consecutive blocks
for (int i = 0; i < num_blocks; i++) {
// create fake data
//h5_int32_t data[num_particles_per_block];
h5_int64_t *data;
data = calloc (num_particles_per_block, sizeof(*data));
for (int j = 0; j < num_particles_per_block; j++) {
data[j] = j + i*num_particles_per_block + offset;
}
// set the "view" to select a subset of the dataset
H5PartSetViewOnDataset (
file,
offset + i*num_particles_per_block,
offset + (i+1)*num_particles_per_block - 1);
// write data
H5PartWriteDatasetInt64 (dataset_id, data);
}
H5CloseDataset (dataset_id);
// done
H5CloseFile(file);
MPI_Finalize();
return 0;
}
...@@ -222,7 +222,7 @@ h5_flushstep ( ...@@ -222,7 +222,7 @@ h5_flushstep (
) { ) {
h5_file_t fh = h5_filehandlefor2c(f); h5_file_t fh = h5_filehandlefor2c(f);
H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh); H5_API_ENTER (h5_int64_t, "f=%p", (h5_file_p)fh);
H5_API_RETURN (h5_flush_step (fh)); H5_API_RETURN (h5_flush_iteration (fh));
} }
#define h5_finalize FC_MANGLING( \ #define h5_finalize FC_MANGLING( \
......
...@@ -28,7 +28,7 @@ h5pt_writedata_r8 ( ...@@ -28,7 +28,7 @@ h5pt_writedata_r8 (
"fh=%p, name='%s', data=%p, l_name=%d", "fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data ( h5_int64_t herr = h5u_write_dataset (
f, name2, (void*)data, H5_FLOAT64_T ); f, name2, (void*)data, H5_FLOAT64_T );
free ( name2 ); free ( name2 );
H5_API_RETURN(herr); H5_API_RETURN(herr);
...@@ -49,7 +49,7 @@ h5pt_writedata_r4 ( ...@@ -49,7 +49,7 @@ h5pt_writedata_r4 (
"fh=%p, name='%s', data=%p, l_name=%d", "fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data ( h5_int64_t herr = h5u_write_dataset (
f, name2, (void*)data, H5_FLOAT32_T ); f, name2, (void*)data, H5_FLOAT32_T );
free ( name2 ); free ( name2 );
H5_API_RETURN(herr); H5_API_RETURN(herr);
...@@ -70,7 +70,7 @@ h5pt_writedata_i8 ( ...@@ -70,7 +70,7 @@ h5pt_writedata_i8 (
"fh=%p, name='%s', data=%p, l_name=%d", "fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data ( h5_int64_t herr = h5u_write_dataset (
f, name2, (void*)data, H5_INT64_T ); f, name2, (void*)data, H5_INT64_T );
free ( name2 ); free ( name2 );
H5_API_RETURN(herr); H5_API_RETURN(herr);
...@@ -91,7 +91,7 @@ h5pt_writedata_i4 ( ...@@ -91,7 +91,7 @@ h5pt_writedata_i4 (
"fh=%p, name='%s', data=%p, l_name=%d", "fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_write_data ( h5_int64_t herr = h5u_write_dataset (
f, name2, (void*)data, H5_INT32_T ); f, name2, (void*)data, H5_INT32_T );
free ( name2 ); free ( name2 );
H5_API_RETURN(herr); H5_API_RETURN(herr);
...@@ -114,7 +114,7 @@ h5pt_readdata_r8 ( ...@@ -114,7 +114,7 @@ h5pt_readdata_r8 (
"fh=%p, name='%s', data=%p, l_name=%d", "fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data ( h5_int64_t herr = h5u_read_dataset (
f, name2, data, H5_FLOAT64_T ); f, name2, data, H5_FLOAT64_T );
free ( name2 ); free ( name2 );
H5_API_RETURN(herr); H5_API_RETURN(herr);
...@@ -135,7 +135,7 @@ h5pt_readdata_r4 ( ...@@ -135,7 +135,7 @@ h5pt_readdata_r4 (
"fh=%p, name='%s', data=%p, l_name=%d", "fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data ( h5_int64_t herr = h5u_read_dataset (
f, name2, data, H5_FLOAT32_T ); f, name2, data, H5_FLOAT32_T );
free ( name2 ); free ( name2 );
H5_API_RETURN(herr); H5_API_RETURN(herr);
...@@ -156,7 +156,7 @@ h5pt_readdata_i8 ( ...@@ -156,7 +156,7 @@ h5pt_readdata_i8 (
"fh=%p, name='%s', data=%p, l_name=%d", "fh=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data ( h5_int64_t herr = h5u_read_dataset (
f, name2, data, H5_INT64_T ); f, name2, data, H5_INT64_T );
free ( name2 ); free ( name2 );
...@@ -178,7 +178,7 @@ h5pt_readdata_i4 ( ...@@ -178,7 +178,7 @@ h5pt_readdata_i4 (
"hf=%p, name='%s', data=%p, l_name=%d", "hf=%p, name='%s', data=%p, l_name=%d",
(h5_file_p)f, name, data, l_name); (h5_file_p)f, name, data, l_name);
char *name2 = h5_strdupfor2c ( name, l_name ); char *name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5u_read_data ( h5_int64_t herr = h5u_read_dataset (
f, name2, data, H5_INT32_T ); f, name2, data, H5_INT32_T );
free ( name2 ); free ( name2 );
H5_API_RETURN(herr); H5_API_RETURN(herr);
......
...@@ -22,13 +22,13 @@ ...@@ -22,13 +22,13 @@
h5_int64_t h5_int64_t
h5pt_setnpoints ( h5pt_setnpoints (
const h5_int64_t* const fh, const h5_int64_t* const fh,
const h5_int64_t* const npoints const h5_int64_t* const num_items
) { ) {
h5_file_t f = h5_filehandlefor2c (fh); h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"fh=%p, npoints=%lld", "fh=%p, npoints=%lld",
(h5_file_p)f, (long long)*npoints); (h5_file_p)f, (long long)*num_items);
H5_API_RETURN (h5u_set_num_points (f, *npoints, 1)); H5_API_RETURN (h5u_set_num_items (f, *num_items, 1));
} }
#define h5pt_setnpoints_strided FC_MANGLING ( \ #define h5pt_setnpoints_strided FC_MANGLING ( \
...@@ -37,14 +37,14 @@ h5pt_setnpoints ( ...@@ -37,14 +37,14 @@ h5pt_setnpoints (
h5_int64_t h5_int64_t
h5pt_setnpoints_strided ( h5pt_setnpoints_strided (
const h5_int64_t* const fh, const h5_int64_t* const fh,
const h5_int64_t* const npoints, const h5_int64_t* const num_items,
const h5_int64_t* const stride const h5_int64_t* const stride
) { ) {
h5_file_t f = h5_filehandlefor2c (fh); h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"fh=%p, npoints=%lld, stride=%lld", "fh=%p, npoints=%lld, stride=%lld",
(h5_file_p)f, (long long)*npoints, (long long)*stride); (h5_file_p)f, (long long)*num_items, (long long)*stride);
H5_API_RETURN (h5u_set_num_points (f, *npoints, *stride)); H5_API_RETURN (h5u_set_num_items (f, *num_items, *stride));
} }
...@@ -172,7 +172,7 @@ h5pt_getnpoints ( ...@@ -172,7 +172,7 @@ h5pt_getnpoints (
) { ) {
h5_file_t f = h5_filehandlefor2c (fh); h5_file_t f = h5_filehandlefor2c (fh);
H5_API_ENTER (h5_int64_t, "fh=%p", (h5_file_p)f); H5_API_ENTER (h5_int64_t, "fh=%p", (h5_file_p)f);
H5_API_RETURN (h5u_get_num_points (f)); H5_API_RETURN (h5u_get_num_items (f));
} }
#define h5pt_getdatasetname FC_MANGLING ( \ #define h5pt_getdatasetname FC_MANGLING ( \
......
...@@ -380,7 +380,7 @@ h5_getnstepattribs ( ...@@ -380,7 +380,7 @@ h5_getnstepattribs (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"fh=%p", "fh=%p",
(h5_file_p)f); (h5_file_p)f);
H5_API_RETURN (h5_get_num_step_attribs (f)); H5_API_RETURN (h5_get_num_iteration_attribs (f));
} }
#define h5_getstepattribinfo FC_MANGLING( \ #define h5_getstepattribinfo FC_MANGLING( \
...@@ -405,7 +405,7 @@ h5_getstepattribinfo ( ...@@ -405,7 +405,7 @@ h5_getstepattribinfo (
(h5_file_p)f, (h5_file_p)f,
(long long)*attrib_idx, (long long)*attrib_idx,
attrib_name, attrib_type, attrib_nelem); attrib_name, attrib_type, attrib_nelem);
h5_int64_t h5err = h5_get_step_attrib_info_by_idx ( h5_int64_t h5err = h5_get_iteration_attrib_info_by_idx (
f, f,
*attrib_idx - 1, *attrib_idx - 1,
attrib_name, l_attrib_name, attrib_name, l_attrib_name,
...@@ -435,7 +435,7 @@ h5_getstepattribinfo_by_name ( ...@@ -435,7 +435,7 @@ h5_getstepattribinfo_by_name (
(h5_file_p)fh, (h5_file_p)fh,
l_name, _name, _type, _nelem); l_name, _name, _type, _nelem);
char* name = h5_strdupfor2c (_name, l_name); char* name = h5_strdupfor2c (_name, l_name);
h5_int64_t h5err = h5_get_step_attrib_info_by_name ( h5_int64_t h5err = h5_get_iteration_attrib_info_by_name (
f, f,
name, name,
_type, _type,
...@@ -459,7 +459,7 @@ h5_getstepattribinfo_by_name ( ...@@ -459,7 +459,7 @@ h5_getstepattribinfo_by_name (
*/ */
static inline h5_int64_t static inline h5_int64_t
write_step_attrib ( write_iteration_attrib (
const h5_file_t fh, const h5_file_t fh,
const char* name, const char* name,
const int l_name, const int l_name,
...@@ -468,13 +468,14 @@ write_step_attrib ( ...@@ -468,13 +468,14 @@ write_step_attrib (
const hsize_t l_buffer const hsize_t l_buffer
) { ) {
char *name2 = h5_strdupfor2c (name, l_name); char *name2 = h5_strdupfor2c (name, l_name);
h5_int64_t herr = h5_write_step_attrib (fh, name2, type, buffer, l_buffer ); h5_int64_t herr = h5_write_iteration_attrib (
fh, name2, type, buffer, l_buffer );
free (name2); free (name2);
return herr; return herr;
} }
static inline h5_int64_t static inline h5_int64_t
read_step_attrib ( read_iteration_attrib (
const h5_file_t fh, const h5_file_t fh,
const char* name, const char* name,
const int l_name, const int l_name,
...@@ -482,7 +483,7 @@ read_step_attrib ( ...@@ -482,7 +483,7 @@ read_step_attrib (
void* const buffer void* const buffer
) { ) {
char* name2 = h5_strdupfor2c ( name, l_name ); char* name2 = h5_strdupfor2c ( name, l_name );
h5_int64_t herr = h5_read_step_attrib (fh, name2, type, buffer); h5_int64_t herr = h5_read_iteration_attrib (fh, name2, type, buffer);
free (name2); free (name2);
return herr; return herr;
} }
...@@ -503,7 +504,7 @@ h5_writestepattrib_string ( ...@@ -503,7 +504,7 @@ h5_writestepattrib_string (
"f=%p, name='%.*s', buffer='%.*s'", "f=%p, name='%.*s', buffer='%.*s'",
(h5_file_p)f, l_name, name, l_buffer, buffer); (h5_file_p)f, l_name, name, l_buffer, buffer);
char *buffer2 = h5_strdupfor2c (buffer, l_buffer); char *buffer2 = h5_strdupfor2c (buffer, l_buffer);
h5_int64_t herr = write_step_attrib ( h5_int64_t herr = write_iteration_attrib (
f, name, l_name, H5_STRING_T, buffer2, strlen(buffer2)+1 ); f, name, l_name, H5_STRING_T, buffer2, strlen(buffer2)+1 );
free (buffer2); free (buffer2);
H5_API_RETURN (herr); H5_API_RETURN (herr);
...@@ -524,7 +525,8 @@ h5_readstepattrib_string ( ...@@ -524,7 +525,8 @@ h5_readstepattrib_string (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer='%.*s'", "f=%p, name='%.*s', buffer='%.*s'",
(h5_file_p)f, l_name, name, l_buffer, buffer); (h5_file_p)f, l_name, name, l_buffer, buffer);
h5_int64_t herr = read_step_attrib (f, name, l_name, H5_STRING_T, buffer); h5_int64_t herr = read_iteration_attrib (
f, name, l_name, H5_STRING_T, buffer);
h5_strc2for (buffer, l_buffer); h5_strc2for (buffer, l_buffer);
H5_API_RETURN (herr); H5_API_RETURN (herr);
} }
...@@ -544,7 +546,7 @@ h5_writestepattrib_r8 ( ...@@ -544,7 +546,7 @@ h5_writestepattrib_r8 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p, nelem=%lld", "f=%p, name='%.*s', buffer=%p, nelem=%lld",
(h5_file_p)f, l_name, name, buffer, (long long)*nelem); (h5_file_p)f, l_name, name, buffer, (long long)*nelem);
H5_API_RETURN (write_step_attrib( H5_API_RETURN (write_iteration_attrib(
f, f,
name, l_name, name, l_name,
H5_FLOAT64_T, H5_FLOAT64_T,
...@@ -565,7 +567,7 @@ h5_readstepattrib_r8 ( ...@@ -565,7 +567,7 @@ h5_readstepattrib_r8 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p", "f=%p, name='%.*s', buffer=%p",
(h5_file_p)f, l_name, name, buffer); (h5_file_p)f, l_name, name, buffer);
H5_API_RETURN (read_step_attrib( H5_API_RETURN (read_iteration_attrib(
f, f,
name, l_name, name, l_name,
H5_FLOAT64_T, H5_FLOAT64_T,
...@@ -587,7 +589,7 @@ h5_writestepattrib_r4 ( ...@@ -587,7 +589,7 @@ h5_writestepattrib_r4 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p, nelem=%lld", "f=%p, name='%.*s', buffer=%p, nelem=%lld",
(h5_file_p)f, l_name, name, buffer, (long long)*nelem); (h5_file_p)f, l_name, name, buffer, (long long)*nelem);
H5_API_RETURN (write_step_attrib( H5_API_RETURN (write_iteration_attrib(
f, f,
name, l_name, name, l_name,
H5_FLOAT32_T, H5_FLOAT32_T,
...@@ -608,7 +610,7 @@ h5_readstepattrib_r4 ( ...@@ -608,7 +610,7 @@ h5_readstepattrib_r4 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p", "f=%p, name='%.*s', buffer=%p",
(h5_file_p)f, l_name, name, buffer); (h5_file_p)f, l_name, name, buffer);
H5_API_RETURN (read_step_attrib( H5_API_RETURN (read_iteration_attrib(
f, f,
name, l_name, name, l_name,
H5_FLOAT32_T, H5_FLOAT32_T,
...@@ -630,7 +632,7 @@ h5_writestepattrib_i8 ( ...@@ -630,7 +632,7 @@ h5_writestepattrib_i8 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p, nelem=%lld", "f=%p, name='%.*s', buffer=%p, nelem=%lld",
(h5_file_p)f, l_name, name, buffer, (long long)*nelem); (h5_file_p)f, l_name, name, buffer, (long long)*nelem);
H5_API_RETURN (write_step_attrib( H5_API_RETURN (write_iteration_attrib(
f, f,
name, l_name, name, l_name,
H5_INT64_T, H5_INT64_T,
...@@ -651,7 +653,7 @@ h5_readstepattrib_i8 ( ...@@ -651,7 +653,7 @@ h5_readstepattrib_i8 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p", "f=%p, name='%.*s', buffer=%p",
(h5_file_p)f, l_name, name, buffer); (h5_file_p)f, l_name, name, buffer);
H5_API_RETURN (read_step_attrib( H5_API_RETURN (read_iteration_attrib(
f, f,
name, l_name, name, l_name,
H5_INT64_T, H5_INT64_T,
...@@ -673,7 +675,7 @@ h5_writestepattrib_i4 ( ...@@ -673,7 +675,7 @@ h5_writestepattrib_i4 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p, nelem=%lld", "f=%p, name='%.*s', buffer=%p, nelem=%lld",
(h5_file_p)f, l_name, name, buffer, (long long)*nelem); (h5_file_p)f, l_name, name, buffer, (long long)*nelem);
H5_API_RETURN (write_step_attrib( H5_API_RETURN (write_iteration_attrib(
f, f,
name, l_name, name, l_name,
H5_INT32_T, H5_INT32_T,
...@@ -694,7 +696,7 @@ h5_readstepattrib_i4 ( ...@@ -694,7 +696,7 @@ h5_readstepattrib_i4 (
H5_API_ENTER (h5_int64_t, H5_API_ENTER (h5_int64_t,
"f=%p, name='%.*s', buffer=%p", "f=%p, name='%.*s', buffer=%p",
(h5_file_p)f, l_name, name, buffer); (h5_file_p)f, l_name, name, buffer);
H5_API_RETURN (read_step_attrib(