IOR
Data Structures | Macros | Functions | Variables
aiori-HDF5.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <hdf5.h>
#include <mpi.h>
#include "aiori.h"
#include "utilities.h"
#include "iordef.h"
Include dependency graph for aiori-HDF5.c:

Go to the source code of this file.

Data Structures

struct  HDF5_options_t
 
struct  aiori_h5fd_t
 

Macros

#define H5_USE_16_API
 
#define NUM_DIMS   1 /* number of dimensions to data set */
 
#define HDF5_CHECK(HDF5_RETURN, MSG)
 

Functions

static IOR_offset_t SeekOffset (void *, IOR_offset_t, aiori_mod_opt_t *)
 
static aiori_fd_tHDF5_Create (char *, int flags, aiori_mod_opt_t *)
 
static aiori_fd_tHDF5_Open (char *, int flags, aiori_mod_opt_t *)
 
static IOR_offset_t HDF5_Xfer (int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, IOR_offset_t, aiori_mod_opt_t *)
 
static void HDF5_Close (aiori_fd_t *, aiori_mod_opt_t *)
 
static void HDF5_Delete (char *, aiori_mod_opt_t *)
 
static char * HDF5_GetVersion ()
 
static void HDF5_Fsync (aiori_fd_t *, aiori_mod_opt_t *)
 
static IOR_offset_t HDF5_GetFileSize (aiori_mod_opt_t *, char *)
 
static int HDF5_StatFS (const char *, ior_aiori_statfs_t *, aiori_mod_opt_t *)
 
static int HDF5_MkDir (const char *, mode_t, aiori_mod_opt_t *)
 
static int HDF5_RmDir (const char *, aiori_mod_opt_t *)
 
static int HDF5_Access (const char *, int, aiori_mod_opt_t *)
 
static int HDF5_Stat (const char *, struct stat *, aiori_mod_opt_t *)
 
static void HDF5_Finalize (aiori_mod_opt_t *)
 
static void HDF5_init_xfer_options (aiori_xfer_hint_t *params)
 
static int HDF5_check_params (aiori_mod_opt_t *options)
 
static option_helpHDF5_options (aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
 
static void SetupDataSet (aiori_h5fd_t *, int flags, aiori_mod_opt_t *)
 

Variables

ior_aiori_t hdf5_aiori
 
static aiori_xfer_hint_thints = NULL
 

Macro Definition Documentation

◆ H5_USE_16_API

#define H5_USE_16_API

Definition at line 24 of file aiori-HDF5.c.

◆ HDF5_CHECK

#define HDF5_CHECK (   HDF5_RETURN,
  MSG 
)
Value:
do { \
\
if (HDF5_RETURN < 0) { \
fprintf(stdout, "** error **\n"); \
fprintf(stdout, "ERROR in %s (line %d): %s.\n", \
__FILE__, __LINE__, MSG); \
/* \
* H5Eget_msg(hid_t mesg_id, H5E_type_t* mesg_type, \
* char* mesg, size_t size) \
*/ \
fprintf(stdout, "** exiting **\n"); \
exit(EXIT_FAILURE); \
} \
} while(0)

Definition at line 68 of file aiori-HDF5.c.

Referenced by HDF5_Access(), HDF5_Close(), HDF5_Delete(), HDF5_Fsync(), HDF5_GetFileSize(), HDF5_MkDir(), HDF5_Open(), HDF5_RmDir(), HDF5_Stat(), HDF5_StatFS(), HDF5_Xfer(), SeekOffset(), and SetupDataSet().

◆ NUM_DIMS

#define NUM_DIMS   1 /* number of dimensions to data set */

Definition at line 32 of file aiori-HDF5.c.

Referenced by HDF5_Open(), SeekOffset(), and SetupDataSet().

Function Documentation

◆ HDF5_Access()

static int HDF5_Access ( const char *  path,
int  mode,
aiori_mod_opt_t param 
)
static

Definition at line 791 of file aiori-HDF5.c.

References aiori_xfer_hint_t::dryRun, HDF5_CHECK, and MPIIO_Access().

Here is the call graph for this function:

◆ HDF5_check_params()

static int HDF5_check_params ( aiori_mod_opt_t options)
static

Definition at line 198 of file aiori-HDF5.c.

References ERR, HDF5_options_t::individualDataSets, o, and HDF5_options_t::setAlignment.

◆ HDF5_Close()

static void HDF5_Close ( aiori_fd_t afd,
aiori_mod_opt_t param 
)
static

◆ HDF5_Create()

static aiori_fd_t * HDF5_Create ( char *  testFileName,
int  flags,
aiori_mod_opt_t param 
)
static

Definition at line 210 of file aiori-HDF5.c.

References HDF5_Open().

Here is the call graph for this function:

◆ HDF5_Delete()

static void HDF5_Delete ( char *  testFileName,
aiori_mod_opt_t param 
)
static

Definition at line 514 of file aiori-HDF5.c.

References aiori_xfer_hint_t::dryRun, HDF5_CHECK, MPIIO_Delete(), and NULL.

Here is the call graph for this function:

◆ HDF5_Finalize()

static void HDF5_Finalize ( aiori_mod_opt_t options)
static

Definition at line 859 of file aiori-HDF5.c.

◆ HDF5_Fsync()

static void HDF5_Fsync ( aiori_fd_t afd,
aiori_mod_opt_t param 
)
static

Definition at line 483 of file aiori-HDF5.c.

References aiori_h5fd_t::fd, and HDF5_CHECK.

◆ HDF5_GetFileSize()

static IOR_offset_t HDF5_GetFileSize ( aiori_mod_opt_t test,
char *  testFileName 
)
static

Definition at line 668 of file aiori-HDF5.c.

References aiori_xfer_hint_t::dryRun, HDF5_CHECK, MPIIO_GetFileSize(), rank, and WARN.

Here is the call graph for this function:

◆ HDF5_GetVersion()

static char * HDF5_GetVersion ( )
static

Definition at line 548 of file aiori-HDF5.c.

References WARN.

◆ HDF5_init_xfer_options()

static void HDF5_init_xfer_options ( aiori_xfer_hint_t params)
static

HDF5 utilizes the MPIIO backend too, so init hints there

Definition at line 192 of file aiori-HDF5.c.

References MPIIO_xfer_hints().

Here is the call graph for this function:

◆ HDF5_MkDir()

static int HDF5_MkDir ( const char *  oid,
mode_t  mode,
aiori_mod_opt_t param 
)
static

Definition at line 733 of file aiori-HDF5.c.

References aiori_posix_mkdir(), HDF5_CHECK, rank, and WARN.

Here is the call graph for this function:

◆ HDF5_Open()

static aiori_fd_t * HDF5_Open ( char *  testFileName,
int  flags,
aiori_mod_opt_t param 
)
static

◆ HDF5_options()

static option_help* HDF5_options ( aiori_mod_opt_t **  init_backend_options,
aiori_mod_opt_t init_values 
)
static

◆ HDF5_RmDir()

static int HDF5_RmDir ( const char *  oid,
aiori_mod_opt_t param 
)
static

Definition at line 762 of file aiori-HDF5.c.

References aiori_posix_rmdir(), HDF5_CHECK, rank, and WARN.

Here is the call graph for this function:

◆ HDF5_Stat()

static int HDF5_Stat ( const char *  oid,
struct stat *  buf,
aiori_mod_opt_t param 
)
static

Definition at line 825 of file aiori-HDF5.c.

References aiori_posix_stat(), HDF5_CHECK, rank, and WARN.

Here is the call graph for this function:

◆ HDF5_StatFS()

static int HDF5_StatFS ( const char *  oid,
ior_aiori_statfs_t stat_buf,
aiori_mod_opt_t param 
)
static

Definition at line 703 of file aiori-HDF5.c.

References aiori_posix_statfs(), HDF5_CHECK, rank, and WARN.

Here is the call graph for this function:

◆ HDF5_Xfer()

static IOR_offset_t HDF5_Xfer ( int  access,
aiori_fd_t afd,
IOR_size_t buffer,
IOR_offset_t  length,
IOR_offset_t  offset,
aiori_mod_opt_t param 
)
static

◆ SeekOffset()

static IOR_offset_t SeekOffset ( void *  afd,
IOR_offset_t  offset,
aiori_mod_opt_t param 
)
static

◆ SetupDataSet()

static void SetupDataSet ( aiori_h5fd_t fd,
int  flags,
aiori_mod_opt_t param 
)
static

Variable Documentation

◆ hdf5_aiori

ior_aiori_t hdf5_aiori
Initial value:
= {
.name = "HDF5",
.name_legacy = NULL,
.create = HDF5_Create,
.open = HDF5_Open,
.xfer = HDF5_Xfer,
.close = HDF5_Close,
.delete = HDF5_Delete,
.get_version = HDF5_GetVersion,
.xfer_hints = HDF5_init_xfer_options,
.fsync = HDF5_Fsync,
.get_file_size = HDF5_GetFileSize,
.statfs = HDF5_StatFS,
.mkdir = HDF5_MkDir,
.rmdir = HDF5_RmDir,
.access = HDF5_Access,
.stat = HDF5_Stat,
.finalize = HDF5_Finalize,
.get_options = HDF5_options,
.check_params = HDF5_check_params
}
static aiori_fd_t * HDF5_Create(char *, int flags, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:210
static void HDF5_init_xfer_options(aiori_xfer_hint_t *params)
Definition: aiori-HDF5.c:192
static void HDF5_Close(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:492
static int HDF5_MkDir(const char *, mode_t, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:733
static option_help * HDF5_options(aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
Definition: aiori-HDF5.c:117
static int HDF5_RmDir(const char *, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:762
static int HDF5_Access(const char *, int, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:791
static int HDF5_Stat(const char *, struct stat *, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:825
static void HDF5_Fsync(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:483
static int HDF5_check_params(aiori_mod_opt_t *options)
Definition: aiori-HDF5.c:198
static void HDF5_Finalize(aiori_mod_opt_t *)
Definition: aiori-HDF5.c:859
static void HDF5_Delete(char *, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:514
static char * HDF5_GetVersion()
Definition: aiori-HDF5.c:548
static aiori_fd_t * HDF5_Open(char *, int flags, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:218
static IOR_offset_t HDF5_Xfer(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, IOR_offset_t, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:404
static int HDF5_StatFS(const char *, ior_aiori_statfs_t *, aiori_mod_opt_t *)
Definition: aiori-HDF5.c:703
static IOR_offset_t HDF5_GetFileSize(aiori_mod_opt_t *, char *)
Definition: aiori-HDF5.c:668
#define NULL
Definition: iordef.h:84

Definition at line 153 of file aiori-HDF5.c.

◆ hints

aiori_xfer_hint_t* hints = NULL
static

Definition at line 190 of file aiori-HDF5.c.