IOR
Data Structures | Macros | Typedefs | Functions | Variables
aiori.h File Reference
#include <mpi.h>
#include <mpio.h>
#include <sys/stat.h>
#include "ior.h"
#include "iordef.h"
#include "option.h"
Include dependency graph for aiori.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ior_aiori_statfs
 
struct  ior_aiori
 

Macros

#define IOR_RDONLY   0x01 /* read only */
 
#define IOR_WRONLY   0x02 /* write only */
 
#define IOR_RDWR   0x04 /* read/write */
 
#define IOR_APPEND   0x08 /* append */
 
#define IOR_CREAT   0x10 /* create */
 
#define IOR_TRUNC   0x20 /* truncate */
 
#define IOR_EXCL   0x40 /* exclusive */
 
#define IOR_DIRECT   0x80 /* bypass I/O buffers */
 
#define IOR_IRWXU   0x0001 /* read, write, execute perm: owner */
 
#define IOR_IRUSR   0x0002 /* read permission: owner */
 
#define IOR_IWUSR   0x0004 /* write permission: owner */
 
#define IOR_IXUSR   0x0008 /* execute permission: owner */
 
#define IOR_IRWXG   0x0010 /* read, write, execute perm: group */
 
#define IOR_IRGRP   0x0020 /* read permission: group */
 
#define IOR_IWGRP   0x0040 /* write permission: group */
 
#define IOR_IXGRP   0x0080 /* execute permission: group */
 
#define IOR_IRWXO   0x0100 /* read, write, execute perm: other */
 
#define IOR_IROTH   0x0200 /* read permission: other */
 
#define IOR_IWOTH   0x0400 /* write permission: other */
 
#define IOR_IXOTH   0x0800 /* execute permission: other */
 

Typedefs

typedef struct ior_aiori_statfs ior_aiori_statfs_t
 
typedef struct ior_aiori ior_aiori_t
 

Functions

void aiori_initialize ()
 
void aiori_finalize ()
 
const ior_aiori_taiori_select (const char *api)
 
int aiori_count (void)
 
void aiori_supported_apis (char *APIs)
 
void airoi_parse_options (int argc, char **argv, option_help *global_options)
 
const char * aiori_default (void)
 
char * aiori_get_version ()
 
int aiori_posix_statfs (const char *path, ior_aiori_statfs_t *stat_buf, IOR_param_t *param)
 
int aiori_posix_mkdir (const char *path, mode_t mode, IOR_param_t *param)
 
int aiori_posix_rmdir (const char *path, IOR_param_t *param)
 
int aiori_posix_access (const char *path, int mode, IOR_param_t *param)
 
int aiori_posix_stat (const char *path, struct stat *buf, IOR_param_t *param)
 
void * POSIX_Create (char *testFileName, IOR_param_t *param)
 
void * POSIX_Open (char *testFileName, IOR_param_t *param)
 
IOR_offset_t POSIX_GetFileSize (IOR_param_t *test, MPI_Comm testComm, char *testFileName)
 
void POSIX_Delete (char *testFileName, IOR_param_t *param)
 
void POSIX_Close (void *fd, IOR_param_t *param)
 
void MPIIO_Delete (char *testFileName, IOR_param_t *param)
 
IOR_offset_t MPIIO_GetFileSize (IOR_param_t *test, MPI_Comm testComm, char *testFileName)
 
int MPIIO_Access (const char *, int, IOR_param_t *)
 

Variables

ior_aiori_t dummy_aiori
 
ior_aiori_t hdf5_aiori
 
ior_aiori_t hdfs_aiori
 
ior_aiori_t ime_aiori
 
ior_aiori_t mpiio_aiori
 
ior_aiori_t ncmpi_aiori
 
ior_aiori_t posix_aiori
 
ior_aiori_t mmap_aiori
 
ior_aiori_t s3_aiori
 
ior_aiori_t s3_plus_aiori
 
ior_aiori_t s3_emc_aiori
 
ior_aiori_t rados_aiori
 

Macro Definition Documentation

◆ IOR_APPEND

#define IOR_APPEND   0x08 /* append */

Definition at line 36 of file aiori.h.

Referenced by GetFileMode(), HDF5_Open(), HDFS_Create_Or_Open(), and IME_Open().

◆ IOR_CREAT

#define IOR_CREAT   0x10 /* create */

◆ IOR_DIRECT

#define IOR_DIRECT   0x80 /* bypass I/O buffers */

Definition at line 40 of file aiori.h.

Referenced by GetFileMode(), and HDF5_Open().

◆ IOR_EXCL

#define IOR_EXCL   0x40 /* exclusive */

◆ IOR_IRGRP

#define IOR_IRGRP   0x0020 /* read permission: group */

Definition at line 48 of file aiori.h.

Referenced by init_IOR_Param_t().

◆ IOR_IROTH

#define IOR_IROTH   0x0200 /* read permission: other */

Definition at line 52 of file aiori.h.

◆ IOR_IRUSR

#define IOR_IRUSR   0x0002 /* read permission: owner */

Definition at line 44 of file aiori.h.

Referenced by init_IOR_Param_t().

◆ IOR_IRWXG

#define IOR_IRWXG   0x0010 /* read, write, execute perm: group */

Definition at line 47 of file aiori.h.

◆ IOR_IRWXO

#define IOR_IRWXO   0x0100 /* read, write, execute perm: other */

Definition at line 51 of file aiori.h.

◆ IOR_IRWXU

#define IOR_IRWXU   0x0001 /* read, write, execute perm: owner */

Definition at line 43 of file aiori.h.

◆ IOR_IWGRP

#define IOR_IWGRP   0x0040 /* write permission: group */

Definition at line 49 of file aiori.h.

Referenced by init_IOR_Param_t().

◆ IOR_IWOTH

#define IOR_IWOTH   0x0400 /* write permission: other */

Definition at line 53 of file aiori.h.

◆ IOR_IWUSR

#define IOR_IWUSR   0x0004 /* write permission: owner */

Definition at line 45 of file aiori.h.

Referenced by init_IOR_Param_t().

◆ IOR_IXGRP

#define IOR_IXGRP   0x0080 /* execute permission: group */

Definition at line 50 of file aiori.h.

◆ IOR_IXOTH

#define IOR_IXOTH   0x0800 /* execute permission: other */

Definition at line 54 of file aiori.h.

◆ IOR_IXUSR

#define IOR_IXUSR   0x0008 /* execute permission: owner */

Definition at line 46 of file aiori.h.

◆ IOR_RDONLY

#define IOR_RDONLY   0x01 /* read only */

Definition at line 33 of file aiori.h.

Referenced by CheckRunSettings(), GetFileMode(), HDF5_Open(), and IME_Open().

◆ IOR_RDWR

#define IOR_RDWR   0x04 /* read/write */

◆ IOR_TRUNC

#define IOR_TRUNC   0x20 /* truncate */

Definition at line 38 of file aiori.h.

Referenced by GetFileMode(), HDF5_Open(), IME_Open(), and S3_Create_Or_Open_internal().

◆ IOR_WRONLY

#define IOR_WRONLY   0x02 /* write only */

Typedef Documentation

◆ ior_aiori_statfs_t

◆ ior_aiori_t

typedef struct ior_aiori ior_aiori_t

Function Documentation

◆ aiori_count()

int aiori_count ( void  )

Definition at line 226 of file aiori.c.

References available_aiori.

Referenced by aiori_default(), aiori_initialize(), and airoi_parse_options().

Here is the caller graph for this function:

◆ aiori_default()

const char* aiori_default ( void  )

Definition at line 231 of file aiori.c.

References aiori_count(), ior_aiori::name, and NULL.

Referenced by init_IOR_Param_t().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ aiori_finalize()

void aiori_finalize ( )

Definition at line 173 of file aiori.c.

References FALSE, is_initialized, and NULL.

Referenced by ior_main(), and main().

Here is the caller graph for this function:

◆ aiori_get_version()

char* aiori_get_version ( )

Definition at line 149 of file aiori.c.

◆ aiori_initialize()

void aiori_initialize ( )

Definition at line 156 of file aiori.c.

References aiori_count(), ERR, is_initialized, NULL, and TRUE.

Referenced by ior_main(), and main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ aiori_posix_access()

int aiori_posix_access ( const char *  path,
int  mode,
IOR_param_t param 
)

Definition at line 139 of file aiori.c.

Referenced by aiori_select().

Here is the caller graph for this function:

◆ aiori_posix_mkdir()

int aiori_posix_mkdir ( const char *  path,
mode_t  mode,
IOR_param_t param 
)

Definition at line 129 of file aiori.c.

Referenced by aiori_select().

Here is the caller graph for this function:

◆ aiori_posix_rmdir()

int aiori_posix_rmdir ( const char *  path,
IOR_param_t param 
)

Definition at line 134 of file aiori.c.

Referenced by aiori_select().

Here is the caller graph for this function:

◆ aiori_posix_stat()

int aiori_posix_stat ( const char *  path,
struct stat *  buf,
IOR_param_t param 
)

Definition at line 144 of file aiori.c.

Referenced by aiori_select().

Here is the caller graph for this function:

◆ aiori_posix_statfs()

int aiori_posix_statfs ( const char *  path,
ior_aiori_statfs_t stat_buf,
IOR_param_t param 
)

Default statfs implementation.

Parameters
[in]pathPath to run statfs on
[out]statfs_bufAIORI statfs buffer

This function provides a AIORI statfs for POSIX-compliant filesystems. It uses statvfs is available and falls back on statfs.

Definition at line 104 of file aiori.c.

References ior_aiori_statfs::f_bfree, ior_aiori_statfs::f_blocks, ior_aiori_statfs::f_bsize, ior_aiori_statfs::f_ffree, and ior_aiori_statfs::f_files.

Referenced by aiori_select().

Here is the caller graph for this function:

◆ aiori_select()

const ior_aiori_t* aiori_select ( const char *  api)

Definition at line 184 of file aiori.c.

References aiori_posix_access(), aiori_posix_mkdir(), aiori_posix_rmdir(), aiori_posix_stat(), aiori_posix_statfs(), NULL, ior_aiori::statfs, and WARN.

Referenced by mdtest_run(), ParseCommandLine(), and TestIoSys().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ aiori_supported_apis()

void aiori_supported_apis ( char *  APIs)

Definition at line 84 of file aiori.c.

References available_aiori, and NULL.

Referenced by mdtest_run(), ParseCommandLine(), and print_help().

Here is the caller graph for this function:

◆ airoi_parse_options()

void airoi_parse_options ( int  argc,
char **  argv,
option_help global_options 
)

Definition at line 64 of file aiori.c.

References aiori_count(), available_aiori, options_all::module_count, options_all::modules, NULL, option_parse(), option_module::options, and option_module::prefix.

Referenced by mdtest_run(), and ParseCommandLine().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MPIIO_Access()

int MPIIO_Access ( const char *  ,
int  ,
IOR_param_t  
)

Definition at line 69 of file aiori-MPIIO.c.

Referenced by HDF5_Access(), and NCMPI_Access().

Here is the caller graph for this function:

◆ MPIIO_Delete()

void MPIIO_Delete ( char *  testFileName,
IOR_param_t param 
)

Definition at line 409 of file aiori-MPIIO.c.

References MPI_CHECK.

Referenced by HDF5_Delete(), and NCMPI_Delete().

Here is the caller graph for this function:

◆ MPIIO_GetFileSize()

IOR_offset_t MPIIO_GetFileSize ( IOR_param_t test,
MPI_Comm  testComm,
char *  testFileName 
)

Definition at line 472 of file aiori-MPIIO.c.

References IOR_param_t::filePerProc, MPI_CHECK, rank, testComm, TRUE, and WARN.

Referenced by HDF5_GetFileSize(), and NCMPI_GetFileSize().

Here is the caller graph for this function:

◆ POSIX_Close()

void POSIX_Close ( void *  fd,
IOR_param_t param 
)

Definition at line 506 of file aiori-POSIX.c.

References ERR.

Referenced by MMAP_Close().

Here is the caller graph for this function:

◆ POSIX_Create()

void* POSIX_Create ( char *  testFileName,
IOR_param_t param 
)

◆ POSIX_Delete()

void POSIX_Delete ( char *  testFileName,
IOR_param_t param 
)

Definition at line 516 of file aiori-POSIX.c.

References EWARN, and rank.

◆ POSIX_GetFileSize()

IOR_offset_t POSIX_GetFileSize ( IOR_param_t test,
MPI_Comm  testComm,
char *  testFileName 
)

Definition at line 528 of file aiori-POSIX.c.

References ERR, IOR_param_t::filePerProc, MPI_CHECK, rank, TRUE, and WARN.

◆ POSIX_Open()

void* POSIX_Open ( char *  testFileName,
IOR_param_t param 
)

Definition at line 378 of file aiori-POSIX.c.

References ERR, IOR_param_t::gpfs_release_token, IOR_param_t::lustre_ignore_locks, NULL, O_BINARY, open64, set_o_direct_flag(), TRUE, IOR_param_t::useO_DIRECT, verbose, and VERBOSE_1.

Referenced by MMAP_Open().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ dummy_aiori

ior_aiori_t dummy_aiori

Definition at line 137 of file aiori-DUMMY.c.

◆ hdf5_aiori

ior_aiori_t hdf5_aiori

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

◆ hdfs_aiori

ior_aiori_t hdfs_aiori

Definition at line 116 of file aiori-HDFS.c.

◆ ime_aiori

ior_aiori_t ime_aiori

Definition at line 64 of file aiori-IME.c.

◆ mmap_aiori

ior_aiori_t mmap_aiori

Definition at line 38 of file aiori-MMAP.c.

◆ mpiio_aiori

ior_aiori_t mpiio_aiori

Definition at line 47 of file aiori-MPIIO.c.

◆ ncmpi_aiori

ior_aiori_t ncmpi_aiori

Definition at line 63 of file aiori-NCMPI.c.

◆ posix_aiori

ior_aiori_t posix_aiori

Definition at line 77 of file aiori-POSIX.c.

◆ rados_aiori

ior_aiori_t rados_aiori

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

◆ s3_aiori

ior_aiori_t s3_aiori

Definition at line 168 of file aiori-S3.c.

◆ s3_emc_aiori

ior_aiori_t s3_emc_aiori

Definition at line 202 of file aiori-S3.c.

◆ s3_plus_aiori

ior_aiori_t s3_plus_aiori

Definition at line 185 of file aiori-S3.c.