IOR
Data Structures | Macros | Functions | Variables
aiori-IME.c File Reference
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include "ior.h"
#include "iordef.h"
#include "aiori.h"
#include "utilities.h"
#include "ime_native.h"
Include dependency graph for aiori-IME.c:

Go to the source code of this file.

Data Structures

struct  ime_options_t
 

Macros

#define IME_UNUSED(x)   (void)(x) /* Silence compiler warnings */
 
#define O_BINARY   0
 

Functions

aiori_fd_tIME_Create (char *, int, aiori_mod_opt_t *)
 
aiori_fd_tIME_Open (char *, int, aiori_mod_opt_t *)
 
void IME_Close (aiori_fd_t *, aiori_mod_opt_t *)
 
void IME_Delete (char *, aiori_mod_opt_t *)
 
char * IME_GetVersion ()
 
void IME_Fsync (aiori_fd_t *, aiori_mod_opt_t *)
 
int IME_Access (const char *, int, aiori_mod_opt_t *)
 
IOR_offset_t IME_GetFileSize (aiori_mod_opt_t *, char *)
 
IOR_offset_t IME_Xfer (int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, IOR_offset_t, aiori_mod_opt_t *)
 
int IME_Statfs (const char *, ior_aiori_statfs_t *, aiori_mod_opt_t *)
 
int IME_Rmdir (const char *, aiori_mod_opt_t *)
 
int IME_Mkdir (const char *, mode_t, aiori_mod_opt_t *)
 
int IME_Stat (const char *, struct stat *, aiori_mod_opt_t *)
 
void IME_Xferhints (aiori_xfer_hint_t *params)
 
void IME_Initialize ()
 
void IME_Finalize ()
 
option_helpIME_Options (aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
 

Variables

int rank
 
int rankOffset
 
int verbose
 
MPI_Comm testComm
 
ior_aiori_t ime_aiori
 
static aiori_xfer_hint_thints = NULL
 
static bool ime_initialized = false
 

Macro Definition Documentation

◆ IME_UNUSED

#define IME_UNUSED (   x)    (void)(x) /* Silence compiler warnings */

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

Referenced by IME_Access(), IME_Mkdir(), IME_Rmdir(), IME_Stat(), and IME_Statfs().

◆ O_BINARY

#define O_BINARY   0

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

Referenced by IME_Open().

Function Documentation

◆ IME_Access()

int IME_Access ( const char *  path,
int  mode,
aiori_mod_opt_t module_options 
)

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

References IME_UNUSED.

◆ IME_Close()

void IME_Close ( aiori_fd_t file,
aiori_mod_opt_t param 
)

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

References aiori_xfer_hint_t::dryRun, and ERRF.

◆ IME_Create()

aiori_fd_t * IME_Create ( char *  testFileName,
int  flags,
aiori_mod_opt_t param 
)

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

References IME_Open().

Here is the call graph for this function:

◆ IME_Delete()

void IME_Delete ( char *  testFileName,
aiori_mod_opt_t param 
)

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

References aiori_xfer_hint_t::dryRun, EWARNF, and rank.

◆ IME_Finalize()

void IME_Finalize ( )

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

References ime_initialized.

◆ IME_Fsync()

void IME_Fsync ( aiori_fd_t fd,
aiori_mod_opt_t param 
)

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

References WARN.

Referenced by IME_Xfer().

Here is the caller graph for this function:

◆ IME_GetFileSize()

IOR_offset_t IME_GetFileSize ( aiori_mod_opt_t test,
char *  testFileName 
)

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

References aiori_xfer_hint_t::dryRun, ERR, ERRF, and FAIL.

◆ IME_GetVersion()

char * IME_GetVersion ( )

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

◆ IME_Initialize()

void IME_Initialize ( )

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

References ime_initialized.

◆ IME_Mkdir()

int IME_Mkdir ( const char *  path,
mode_t  mode,
aiori_mod_opt_t module_options 
)

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

References IME_UNUSED, and WARN.

◆ IME_Open()

aiori_fd_t * IME_Open ( char *  testFileName,
int  flags,
aiori_mod_opt_t param 
)

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

References ime_options_t::direct_io, aiori_xfer_hint_t::dryRun, ERR, IOR_APPEND, IOR_CREAT, IOR_EXCL, IOR_RDONLY, IOR_RDWR, IOR_TRUNC, IOR_WRONLY, NULL, o, O_BINARY, set_o_direct_flag(), and TRUE.

Referenced by IME_Create().

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

◆ IME_Options()

option_help* IME_Options ( aiori_mod_opt_t **  init_backend_options,
aiori_mod_opt_t init_values 
)

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

References ime_options_t::direct_io, LAST_OPTION, NULL, o, OPTION_FLAG, rank, rankOffset, testComm, and verbose.

◆ IME_Rmdir()

int IME_Rmdir ( const char *  path,
aiori_mod_opt_t module_options 
)

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

References IME_UNUSED, and WARN.

◆ IME_Stat()

int IME_Stat ( const char *  path,
struct stat *  buf,
aiori_mod_opt_t module_options 
)

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

References IME_UNUSED.

◆ IME_Statfs()

int IME_Statfs ( const char *  path,
ior_aiori_statfs_t stat_buf,
aiori_mod_opt_t module_options 
)

◆ IME_Xfer()

IOR_offset_t IME_Xfer ( int  access,
aiori_fd_t file,
IOR_size_t buffer,
IOR_offset_t  length,
IOR_offset_t  offset,
aiori_mod_opt_t param 
)

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

References aiori_xfer_hint_t::dryRun, ERR, aiori_xfer_hint_t::fsyncPerWrite, IME_Fsync(), MAX_RETRY, MPI_CHECK, rank, rc, aiori_xfer_hint_t::singleXferAttempt, verbose, VERBOSE_4, and WRITE.

Here is the call graph for this function:

◆ IME_Xferhints()

void IME_Xferhints ( aiori_xfer_hint_t params)

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

Variable Documentation

◆ hints

aiori_xfer_hint_t* hints = NULL
static

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

◆ ime_aiori

ior_aiori_t ime_aiori
Initial value:
= {
.name = "IME",
.name_legacy = "IM",
.create = IME_Create,
.open = IME_Open,
.xfer = IME_Xfer,
.xfer_hints = IME_Xferhints,
.close = IME_Close,
.delete = IME_Delete,
.get_version = IME_GetVersion,
.fsync = IME_Fsync,
.get_file_size = IME_GetFileSize,
.access = IME_Access,
.statfs = IME_Statfs,
.rmdir = IME_Rmdir,
.mkdir = IME_Mkdir,
.stat = IME_Stat,
.initialize = IME_Initialize,
.finalize = IME_Finalize,
.get_options = IME_Options,
.enable_mdtest = true,
}
option_help * IME_Options(aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
Definition: aiori-IME.c:72
int IME_Rmdir(const char *, aiori_mod_opt_t *)
Definition: aiori-IME.c:385
int IME_Stat(const char *, struct stat *, aiori_mod_opt_t *)
Definition: aiori-IME.c:402
char * IME_GetVersion()
Definition: aiori-IME.c:332
void IME_Initialize()
Definition: aiori-IME.c:143
void IME_Finalize()
Definition: aiori-IME.c:155
void IME_Close(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-IME.c:305
int IME_Statfs(const char *, ior_aiori_statfs_t *, aiori_mod_opt_t *)
Definition: aiori-IME.c:343
IOR_offset_t IME_Xfer(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, IOR_offset_t, aiori_mod_opt_t *)
Definition: aiori-IME.c:229
int IME_Mkdir(const char *, mode_t, aiori_mod_opt_t *)
Definition: aiori-IME.c:370
aiori_fd_t * IME_Open(char *, int, aiori_mod_opt_t *)
Definition: aiori-IME.c:186
int IME_Access(const char *, int, aiori_mod_opt_t *)
Definition: aiori-IME.c:168
IOR_offset_t IME_GetFileSize(aiori_mod_opt_t *, char *)
Definition: aiori-IME.c:413
aiori_fd_t * IME_Create(char *, int, aiori_mod_opt_t *)
Definition: aiori-IME.c:178
void IME_Delete(char *, aiori_mod_opt_t *)
Definition: aiori-IME.c:319
void IME_Xferhints(aiori_xfer_hint_t *params)
Definition: aiori-IME.c:135
void IME_Fsync(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-IME.c:296

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

◆ ime_initialized

bool ime_initialized = false
static

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

Referenced by IME_Finalize(), and IME_Initialize().

◆ rank

int rank

◆ rankOffset

int rankOffset

◆ testComm

MPI_Comm testComm

◆ verbose

int verbose

Definition at line 70 of file utilities.c.

Referenced by IME_Options(), and IME_Xfer().