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

Go to the source code of this file.

Data Structures

struct  RADOS_options_t
 

Macros

#define RADOS_ERR(__err_str, __ret)
 

Functions

static void RADOS_Initialize (aiori_mod_opt_t *)
 
static void RADOS_Finalize (aiori_mod_opt_t *)
 
static aiori_fd_tRADOS_Create (char *, int flags, aiori_mod_opt_t *)
 
static aiori_fd_tRADOS_Open (char *, int flags, aiori_mod_opt_t *)
 
static IOR_offset_t RADOS_Xfer (int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, IOR_offset_t, aiori_mod_opt_t *)
 
static void RADOS_Close (aiori_fd_t *, aiori_mod_opt_t *)
 
static void RADOS_Delete (char *, aiori_mod_opt_t *)
 
static void RADOS_Fsync (aiori_fd_t *, aiori_mod_opt_t *)
 
static IOR_offset_t RADOS_GetFileSize (aiori_mod_opt_t *, char *)
 
static int RADOS_StatFS (const char *, ior_aiori_statfs_t *, aiori_mod_opt_t *)
 
static int RADOS_MkDir (const char *, mode_t, aiori_mod_opt_t *)
 
static int RADOS_RmDir (const char *, aiori_mod_opt_t *)
 
static int RADOS_Access (const char *, int, aiori_mod_opt_t *)
 
static int RADOS_Stat (const char *, struct stat *, aiori_mod_opt_t *)
 
static int RADOS_check_params (aiori_mod_opt_t *options)
 
static option_helpRADOS_options (aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
 
static aiori_fd_tRADOS_Create_Or_Open (char *testFileName, int flags, aiori_mod_opt_t *param)
 

Variables

ior_aiori_t rados_aiori
 
static rados_t rados_cluster
 
static rados_ioctx_t rados_ioctx
 

Macro Definition Documentation

◆ RADOS_ERR

#define RADOS_ERR (   __err_str,
  __ret 
)
Value:
do { \
errno = -__ret; \
ERR(__err_str); \
} while(0)

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

Referenced by RADOS_Create_Or_Open(), RADOS_Delete(), RADOS_GetFileSize(), RADOS_Initialize(), and RADOS_Xfer().

Function Documentation

◆ RADOS_Access()

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

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

References NULL, and rados_ioctx.

◆ RADOS_check_params()

static int RADOS_check_params ( aiori_mod_opt_t options)
static

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

References RADOS_options_t::conf, ERR, o, RADOS_options_t::pool, and RADOS_options_t::user.

◆ RADOS_Close()

static void RADOS_Close ( aiori_fd_t fd,
aiori_mod_opt_t param 
)
static

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

◆ RADOS_Create()

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

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

References RADOS_Create_Or_Open().

Here is the call graph for this function:

◆ RADOS_Create_Or_Open()

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

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

References ERR, IOR_CREAT, IOR_EXCL, NULL, RADOS_ERR, and rados_ioctx.

Referenced by RADOS_Create(), and RADOS_Open().

Here is the caller graph for this function:

◆ RADOS_Delete()

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

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

References NULL, RADOS_ERR, and rados_ioctx.

◆ RADOS_Finalize()

static void RADOS_Finalize ( aiori_mod_opt_t options)
static

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

References rados_cluster, and rados_ioctx.

◆ RADOS_Fsync()

static void RADOS_Fsync ( aiori_fd_t fd,
aiori_mod_opt_t param 
)
static

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

◆ RADOS_GetFileSize()

static IOR_offset_t RADOS_GetFileSize ( aiori_mod_opt_t param,
char *  testFileName 
)
static

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

References NULL, RADOS_ERR, and rados_ioctx.

◆ RADOS_Initialize()

static void RADOS_Initialize ( aiori_mod_opt_t options)
static

◆ RADOS_MkDir()

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

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

References WARN.

◆ RADOS_Open()

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

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

References RADOS_Create_Or_Open().

Here is the call graph for this function:

◆ RADOS_options()

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

◆ RADOS_RmDir()

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

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

References WARN.

◆ RADOS_Stat()

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

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

References WARN.

◆ RADOS_StatFS()

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

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

References WARN.

◆ RADOS_Xfer()

static IOR_offset_t RADOS_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

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

References NULL, RADOS_ERR, rados_ioctx, and WRITE.

Variable Documentation

◆ rados_aiori

ior_aiori_t rados_aiori
Initial value:
= {
.name = "RADOS",
.name_legacy = NULL,
.initialize = RADOS_Initialize,
.finalize = RADOS_Finalize,
.create = RADOS_Create,
.open = RADOS_Open,
.xfer = RADOS_Xfer,
.close = RADOS_Close,
.delete = RADOS_Delete,
.get_version = aiori_get_version,
.fsync = RADOS_Fsync,
.get_file_size = RADOS_GetFileSize,
.statfs = RADOS_StatFS,
.mkdir = RADOS_MkDir,
.rmdir = RADOS_RmDir,
.access = RADOS_Access,
.stat = RADOS_Stat,
.get_options = RADOS_options,
.check_params = RADOS_check_params
}
static IOR_offset_t RADOS_Xfer(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, IOR_offset_t, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:211
static int RADOS_Access(const char *, int, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:321
static IOR_offset_t RADOS_GetFileSize(aiori_mod_opt_t *, char *)
Definition: aiori-RADOS.c:281
static int RADOS_MkDir(const char *, mode_t, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:309
static void RADOS_Delete(char *, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:263
static void RADOS_Initialize(aiori_mod_opt_t *)
Definition: aiori-RADOS.c:128
static aiori_fd_t * RADOS_Create(char *, int flags, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:201
static int RADOS_Stat(const char *, struct stat *, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:340
static void RADOS_Fsync(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:248
static int RADOS_StatFS(const char *, ior_aiori_statfs_t *, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:302
char * aiori_get_version()
Definition: aiori.c:235
static aiori_fd_t * RADOS_Open(char *, int flags, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:206
static int RADOS_RmDir(const char *, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:315
static int RADOS_check_params(aiori_mod_opt_t *options)
Definition: aiori-RADOS.c:117
static option_help * RADOS_options(aiori_mod_opt_t **init_backend_options, aiori_mod_opt_t *init_values)
Definition: aiori-RADOS.c:63
static void RADOS_Finalize(aiori_mod_opt_t *)
Definition: aiori-RADOS.c:156
static void RADOS_Close(aiori_fd_t *, aiori_mod_opt_t *)
Definition: aiori-RADOS.c:253
#define NULL
Definition: iordef.h:84

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

◆ rados_cluster

rados_t rados_cluster
static

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

Referenced by RADOS_Finalize(), and RADOS_Initialize().

◆ rados_ioctx

rados_ioctx_t rados_ioctx
static