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

Go to the source code of this file.

Data Structures

struct  aio_options_t
 
struct  aio_fd_t
 

Functions

option_helpaio_options (aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
 
static void aio_xfer_hints (aiori_xfer_hint_t *params)
 
static void aio_initialize (aiori_mod_opt_t *param)
 
static void aio_finalize (aiori_mod_opt_t *param)
 
static int aio_check_params (aiori_mod_opt_t *param)
 
static aiori_fd_taio_Open (char *testFileName, int flags, aiori_mod_opt_t *param)
 
static aiori_fd_taio_create (char *testFileName, int flags, aiori_mod_opt_t *param)
 
static void submit_pending (aio_options_t *o)
 
static void complete_all (aio_options_t *o)
 
static void process_some (aio_options_t *o)
 
static IOR_offset_t aio_Xfer (int access, aiori_fd_t *fd, IOR_size_t *buffer, IOR_offset_t length, IOR_offset_t offset, aiori_mod_opt_t *param)
 
static void aio_Close (aiori_fd_t *fd, aiori_mod_opt_t *param)
 
static void aio_Fsync (aiori_fd_t *fd, aiori_mod_opt_t *param)
 
static void aio_Sync (aiori_mod_opt_t *param)
 

Variables

static aiori_xfer_hint_thints = NULL
 
ior_aiori_t aio_aiori
 

Function Documentation

◆ aio_check_params()

static int aio_check_params ( aiori_mod_opt_t param)
static

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

References ERRF, aio_options_t::granularity, aio_options_t::max_pending, o, aio_options_t::p, and POSIX_check_params().

Here is the call graph for this function:

◆ aio_Close()

static void aio_Close ( aiori_fd_t fd,
aiori_mod_opt_t param 
)
static

Definition at line 212 of file aiori-aio.c.

References complete_all(), o, aio_options_t::p, aio_fd_t::pfd, and POSIX_Close().

Here is the call graph for this function:

◆ aio_create()

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

Definition at line 118 of file aiori-aio.c.

References o, aio_options_t::p, aio_fd_t::pfd, and POSIX_Create().

Here is the call graph for this function:

◆ aio_finalize()

static void aio_finalize ( aiori_mod_opt_t param)
static

Definition at line 94 of file aiori-aio.c.

References aio_options_t::ioctx, and o.

◆ aio_Fsync()

static void aio_Fsync ( aiori_fd_t fd,
aiori_mod_opt_t param 
)
static

Definition at line 219 of file aiori-aio.c.

References complete_all(), o, aio_options_t::p, aio_fd_t::pfd, and POSIX_Fsync().

Here is the call graph for this function:

◆ aio_initialize()

static void aio_initialize ( aiori_mod_opt_t param)
static

◆ aio_Open()

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

Definition at line 111 of file aiori-aio.c.

References o, aio_options_t::p, aio_fd_t::pfd, and POSIX_Open().

Here is the call graph for this function:

◆ aio_options()

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

Definition at line 43 of file aiori-aio.c.

References aio_options_t::granularity, LAST_OPTION, aio_options_t::max_pending, NULL, o, option_merge(), OPTION_OPTIONAL_ARGUMENT, aio_options_t::p, and POSIX_options().

Here is the call graph for this function:

◆ aio_Sync()

static void aio_Sync ( aiori_mod_opt_t param)
static

Definition at line 226 of file aiori-aio.c.

References complete_all(), o, aio_options_t::p, and POSIX_Sync().

Here is the call graph for this function:

◆ aio_Xfer()

static IOR_offset_t aio_Xfer ( int  access,
aiori_fd_t fd,
IOR_size_t buffer,
IOR_offset_t  length,
IOR_offset_t  offset,
aiori_mod_opt_t param 
)
static

◆ aio_xfer_hints()

static void aio_xfer_hints ( aiori_xfer_hint_t params)
static

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

References POSIX_xfer_hints().

Here is the call graph for this function:

◆ complete_all()

static void complete_all ( aio_options_t o)
static

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

References ERR, ERRF, NULL, and submit_pending().

Referenced by aio_Close(), aio_Fsync(), and aio_Sync().

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

◆ process_some()

static void process_some ( aio_options_t o)
static

Definition at line 165 of file aiori-aio.c.

References ERR, aio_options_t::in_flight, and NULL.

Referenced by aio_Xfer().

Here is the caller graph for this function:

◆ submit_pending()

static void submit_pending ( aio_options_t o)
static

Definition at line 126 of file aiori-aio.c.

References ERR, ERRF, errno, aio_options_t::iocbs, aio_options_t::iocbs_pos, and aio_options_t::ioctx.

Referenced by aio_Xfer(), and complete_all().

Here is the caller graph for this function:

Variable Documentation

◆ aio_aiori

ior_aiori_t aio_aiori
Initial value:
= {
.name = "AIO",
.name_legacy = NULL,
.create = aio_create,
.get_options = aio_options,
.initialize = aio_initialize,
.finalize = aio_finalize,
.xfer_hints = aio_xfer_hints,
.get_options = aio_options,
.fsync = aio_Fsync,
.open = aio_Open,
.xfer = aio_Xfer,
.close = aio_Close,
.sync = aio_Sync,
.check_params = aio_check_params,
.delete = POSIX_Delete,
.get_version = aiori_get_version,
.get_file_size = POSIX_GetFileSize,
.statfs = aiori_posix_statfs,
.access = aiori_posix_access,
.enable_mdtest = true
}
static void aio_Sync(aiori_mod_opt_t *param)
Definition: aiori-aio.c:226
static void aio_Close(aiori_fd_t *fd, aiori_mod_opt_t *param)
Definition: aiori-aio.c:212
static void aio_finalize(aiori_mod_opt_t *param)
Definition: aiori-aio.c:94
static int aio_check_params(aiori_mod_opt_t *param)
Definition: aiori-aio.c:99
static void aio_Fsync(aiori_fd_t *fd, aiori_mod_opt_t *param)
Definition: aiori-aio.c:219
int aiori_posix_stat(const char *path, struct stat *buf, aiori_mod_opt_t *module_options)
Definition: aiori.c:227
char * aiori_get_version()
Definition: aiori.c:232
void POSIX_Delete(char *testFileName, aiori_mod_opt_t *param)
Definition: aiori-POSIX.c:708
static void aio_xfer_hints(aiori_xfer_hint_t *params)
Definition: aiori-aio.c:77
static aiori_fd_t * aio_Open(char *testFileName, int flags, aiori_mod_opt_t *param)
Definition: aiori-aio.c:111
int aiori_posix_access(const char *path, int mode, aiori_mod_opt_t *module_options)
Definition: aiori.c:222
int aiori_posix_rmdir(const char *path, aiori_mod_opt_t *module_options)
Definition: aiori.c:217
int aiori_posix_mkdir(const char *path, mode_t mode, aiori_mod_opt_t *module_options)
Definition: aiori.c:212
option_help * aio_options(aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
Definition: aiori-aio.c:43
static aiori_fd_t * aio_create(char *testFileName, int flags, aiori_mod_opt_t *param)
Definition: aiori-aio.c:118
int aiori_posix_statfs(const char *path, ior_aiori_statfs_t *stat_buf, aiori_mod_opt_t *module_options)
Definition: aiori.c:166
IOR_offset_t POSIX_GetFileSize(aiori_mod_opt_t *test, char *testFileName)
Definition: aiori-POSIX.c:731
static void aio_initialize(aiori_mod_opt_t *param)
Definition: aiori-aio.c:82
static IOR_offset_t aio_Xfer(int access, aiori_fd_t *fd, IOR_size_t *buffer, IOR_offset_t length, IOR_offset_t offset, aiori_mod_opt_t *param)
Definition: aiori-aio.c:186
#define NULL
Definition: iordef.h:70

Definition at line 234 of file aiori-aio.c.

◆ hints

aiori_xfer_hint_t* hints = NULL
static

Definition at line 75 of file aiori-aio.c.

Referenced by ior_set_xfer_hints().