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

Go to the source code of this file.

Data Structures

struct  cephfs_options
 

Macros

#define CEPH_O_RDONLY   00000000
 
#define CEPH_O_WRONLY   00000001
 
#define CEPH_O_RDWR   00000002
 
#define CEPH_O_CREAT   00000100
 
#define CEPH_O_EXCL   00000200
 
#define CEPH_O_TRUNC   00001000
 
#define CEPH_O_LAZY   00020000
 
#define CEPH_O_DIRECTORY   00200000
 
#define CEPH_O_NOFOLLOW   00400000
 
#define CEPHFS_ERR(__err_str, __ret)
 

Functions

static void CEPHFS_Init ()
 
static void CEPHFS_Final ()
 
static void * CEPHFS_Create (char *, IOR_param_t *)
 
static void * CEPHFS_Open (char *, IOR_param_t *)
 
static IOR_offset_t CEPHFS_Xfer (int, void *, IOR_size_t *, IOR_offset_t, IOR_param_t *)
 
static void CEPHFS_Close (void *, IOR_param_t *)
 
static void CEPHFS_Delete (char *, IOR_param_t *)
 
static void CEPHFS_Fsync (void *, IOR_param_t *)
 
static IOR_offset_t CEPHFS_GetFileSize (IOR_param_t *, MPI_Comm, char *)
 
static int CEPHFS_StatFS (const char *, ior_aiori_statfs_t *, IOR_param_t *)
 
static int CEPHFS_MkDir (const char *, mode_t, IOR_param_t *)
 
static int CEPHFS_RmDir (const char *, IOR_param_t *)
 
static int CEPHFS_Access (const char *, int, IOR_param_t *)
 
static int CEPHFS_Stat (const char *, struct stat *, IOR_param_t *)
 
static void CEPHFS_Sync (IOR_param_t *)
 
static option_helpCEPHFS_options ()
 
static const char * pfix (const char *path)
 

Variables

static struct cephfs_options o
 
static option_help options []
 
static struct ceph_mount_info * cmount
 
ior_aiori_t cephfs_aiori
 

Macro Definition Documentation

◆ CEPH_O_CREAT

#define CEPH_O_CREAT   00000100

Definition at line 34 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPH_O_DIRECTORY

#define CEPH_O_DIRECTORY   00200000

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

◆ CEPH_O_EXCL

#define CEPH_O_EXCL   00000200

Definition at line 35 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Open().

◆ CEPH_O_LAZY

#define CEPH_O_LAZY   00020000

Definition at line 37 of file aiori-CEPHFS.c.

◆ CEPH_O_NOFOLLOW

#define CEPH_O_NOFOLLOW   00400000

Definition at line 39 of file aiori-CEPHFS.c.

◆ CEPH_O_RDONLY

#define CEPH_O_RDONLY   00000000

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

Referenced by CEPHFS_Open().

◆ CEPH_O_RDWR

#define CEPH_O_RDWR   00000002

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

Referenced by CEPHFS_Open().

◆ CEPH_O_TRUNC

#define CEPH_O_TRUNC   00001000

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

Referenced by CEPHFS_Open().

◆ CEPH_O_WRONLY

#define CEPH_O_WRONLY   00000001

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

Referenced by CEPHFS_Open().

◆ CEPHFS_ERR

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

Definition at line 105 of file aiori-CEPHFS.c.

Referenced by CEPHFS_Close(), CEPHFS_Delete(), CEPHFS_Final(), CEPHFS_Fsync(), CEPHFS_GetFileSize(), CEPHFS_Init(), CEPHFS_Open(), CEPHFS_StatFS(), CEPHFS_Sync(), and CEPHFS_Xfer().

Function Documentation

◆ CEPHFS_Access()

static int CEPHFS_Access ( const char *  testFileName,
int  mode,
IOR_param_t param 
)
static

Definition at line 367 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Close()

static void CEPHFS_Close ( void *  file,
IOR_param_t param 
)
static

Definition at line 276 of file aiori-CEPHFS.c.

References CEPHFS_ERR, and cmount.

◆ CEPHFS_Create()

static void * CEPHFS_Create ( char *  testFileName,
IOR_param_t param 
)
static

Definition at line 187 of file aiori-CEPHFS.c.

References CEPHFS_Open().

Here is the call graph for this function:

◆ CEPHFS_Delete()

static void CEPHFS_Delete ( char *  testFileName,
IOR_param_t param 
)
static

Definition at line 287 of file aiori-CEPHFS.c.

References CEPHFS_ERR, cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Final()

static void CEPHFS_Final ( )
static

Definition at line 173 of file aiori-CEPHFS.c.

References CEPHFS_ERR, cmount, and NULL.

◆ CEPHFS_Fsync()

static void CEPHFS_Fsync ( void *  file,
IOR_param_t param 
)
static

Definition at line 267 of file aiori-CEPHFS.c.

References CEPHFS_ERR, and cmount.

Referenced by CEPHFS_Xfer().

Here is the caller graph for this function:

◆ CEPHFS_GetFileSize()

static IOR_offset_t CEPHFS_GetFileSize ( IOR_param_t param,
MPI_Comm  testComm,
char *  testFileName 
)
static

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

References CEPHFS_ERR, cmount, IOR_param_t::filePerProc, MPI_CHECK, pfix(), rank, TRUE, and WARN.

Here is the call graph for this function:

◆ CEPHFS_Init()

static void CEPHFS_Init ( )
static

◆ CEPHFS_MkDir()

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

Definition at line 357 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Open()

static void * CEPHFS_Open ( char *  testFileName,
IOR_param_t param 
)
static

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

References CEPH_O_CREAT, CEPH_O_EXCL, CEPH_O_RDONLY, CEPH_O_RDWR, CEPH_O_TRUNC, CEPH_O_WRONLY, CEPHFS_ERR, cmount, IOR_APPEND, IOR_CREAT, IOR_DIRECT, IOR_EXCL, IOR_RDONLY, IOR_RDWR, IOR_TRUNC, IOR_WRONLY, IOR_param_t::openFlags, and pfix().

Referenced by CEPHFS_Create().

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

◆ CEPHFS_options()

static option_help * CEPHFS_options ( )
static

Definition at line 122 of file aiori-CEPHFS.c.

References options.

◆ CEPHFS_RmDir()

static int CEPHFS_RmDir ( const char *  path,
IOR_param_t param 
)
static

Definition at line 362 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_Stat()

static int CEPHFS_Stat ( const char *  testFileName,
struct stat *  buf,
IOR_param_t param 
)
static

Definition at line 373 of file aiori-CEPHFS.c.

References cmount, and pfix().

Here is the call graph for this function:

◆ CEPHFS_StatFS()

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

◆ CEPHFS_Sync()

static void CEPHFS_Sync ( IOR_param_t param)
static

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

References CEPHFS_ERR, and cmount.

◆ CEPHFS_Xfer()

static IOR_offset_t CEPHFS_Xfer ( int  access,
void *  file,
IOR_size_t buffer,
IOR_offset_t  length,
IOR_param_t param 
)
static

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

References CEPHFS_ERR, CEPHFS_Fsync(), cmount, IOR_param_t::fsyncPerWrite, IOR_param_t::offset, size, TRUE, and WRITE.

Here is the call graph for this function:

◆ pfix()

static const char* pfix ( const char *  path)
static

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

References cephfs_options::prefix.

Referenced by CEPHFS_Access(), CEPHFS_Delete(), CEPHFS_GetFileSize(), CEPHFS_MkDir(), CEPHFS_Open(), CEPHFS_RmDir(), CEPHFS_Stat(), and CEPHFS_StatFS().

Here is the caller graph for this function:

Variable Documentation

◆ cephfs_aiori

ior_aiori_t cephfs_aiori
Initial value:
= {
.name = "CEPHFS",
.name_legacy = NULL,
.initialize = CEPHFS_Init,
.finalize = CEPHFS_Final,
.create = CEPHFS_Create,
.open = CEPHFS_Open,
.xfer = CEPHFS_Xfer,
.close = CEPHFS_Close,
.delete = CEPHFS_Delete,
.get_version = aiori_get_version,
.fsync = CEPHFS_Fsync,
.get_file_size = CEPHFS_GetFileSize,
.statfs = CEPHFS_StatFS,
.mkdir = CEPHFS_MkDir,
.rmdir = CEPHFS_RmDir,
.access = CEPHFS_Access,
.stat = CEPHFS_Stat,
.sync = CEPHFS_Sync,
.get_options = CEPHFS_options,
}
static int CEPHFS_StatFS(const char *, ior_aiori_statfs_t *, IOR_param_t *)
Definition: aiori-CEPHFS.c:333
static void CEPHFS_Sync(IOR_param_t *)
Definition: aiori-CEPHFS.c:378
static int CEPHFS_Stat(const char *, struct stat *, IOR_param_t *)
Definition: aiori-CEPHFS.c:373
static IOR_offset_t CEPHFS_Xfer(int, void *, IOR_size_t *, IOR_offset_t, IOR_param_t *)
Definition: aiori-CEPHFS.c:234
static void CEPHFS_Init()
Definition: aiori-CEPHFS.c:126
static void CEPHFS_Fsync(void *, IOR_param_t *)
Definition: aiori-CEPHFS.c:267
static int CEPHFS_RmDir(const char *, IOR_param_t *)
Definition: aiori-CEPHFS.c:362
static int CEPHFS_Access(const char *, int, IOR_param_t *)
Definition: aiori-CEPHFS.c:367
char * aiori_get_version()
Definition: aiori.c:200
static void CEPHFS_Final()
Definition: aiori-CEPHFS.c:173
static void * CEPHFS_Create(char *, IOR_param_t *)
Definition: aiori-CEPHFS.c:187
static void CEPHFS_Delete(char *, IOR_param_t *)
Definition: aiori-CEPHFS.c:287
static IOR_offset_t CEPHFS_GetFileSize(IOR_param_t *, MPI_Comm, char *)
Definition: aiori-CEPHFS.c:296
static void CEPHFS_Close(void *, IOR_param_t *)
Definition: aiori-CEPHFS.c:276
static option_help * CEPHFS_options()
Definition: aiori-CEPHFS.c:122
static int CEPHFS_MkDir(const char *, mode_t, IOR_param_t *)
Definition: aiori-CEPHFS.c:357
#define NULL
Definition: iordef.h:79
static void * CEPHFS_Open(char *, IOR_param_t *)
Definition: aiori-CEPHFS.c:192

Definition at line 83 of file aiori-CEPHFS.c.

◆ cmount

struct ceph_mount_info* cmount
static

◆ o

struct cephfs_options o
static

◆ options

option_help options[]
static
Initial value:
= {
{0, "cephfs.user", "Username for the ceph cluster", OPTION_REQUIRED_ARGUMENT, 's', & o.user},
{0, "cephfs.conf", "Config file for the ceph cluster", OPTION_REQUIRED_ARGUMENT, 's', & o.conf},
{0, "cephfs.prefix", "mount prefix", OPTION_OPTIONAL_ARGUMENT, 's', & o.prefix},
}
#define LAST_OPTION
Definition: option.h:37
static struct cephfs_options o
Definition: aiori-CEPHFS.c:48

Definition at line 54 of file aiori-CEPHFS.c.

Referenced by CEPHFS_options(), createGlobalOptions(), mdtest_run(), and ParseCommandLine().