diff --git a/src/aiori-DUMMY.c b/src/aiori-DUMMY.c index ce8933c..2e4feb5 100755 --- a/src/aiori-DUMMY.c +++ b/src/aiori-DUMMY.c @@ -48,7 +48,7 @@ static option_help * DUMMY_options(aiori_mod_opt_t ** init_backend_options, aior static int count_init = 0; -static void *DUMMY_Create(char *testFileName, int iorflags, aiori_mod_opt_t * options) +static aiori_fd_t *DUMMY_Create(char *testFileName, int iorflags, aiori_mod_opt_t * options) { if(count_init <= 0){ ERR("DUMMY missing initialization in create\n"); @@ -63,10 +63,10 @@ static void *DUMMY_Create(char *testFileName, int iorflags, aiori_mod_opt_t * op nanosleep( & wait, NULL); } } - return current++; + return (aiori_fd_t*) current++; } -static void *DUMMY_Open(char *testFileName, int flags, aiori_mod_opt_t * options) +static aiori_fd_t *DUMMY_Open(char *testFileName, int flags, aiori_mod_opt_t * options) { if(count_init <= 0){ ERR("DUMMY missing initialization in open\n"); @@ -74,10 +74,10 @@ static void *DUMMY_Open(char *testFileName, int flags, aiori_mod_opt_t * options if(verbose > 4){ fprintf(out_logfile, "DUMMY open: %s = %p\n", testFileName, current); } - return current++; + return (aiori_fd_t*) current++; } -static void DUMMY_Fsync(void *fd, aiori_mod_opt_t * options) +static void DUMMY_Fsync(aiori_fd_t *fd, aiori_mod_opt_t * options) { if(verbose > 4){ fprintf(out_logfile, "DUMMY fsync %p\n", fd); @@ -89,7 +89,7 @@ static void DUMMY_Sync(aiori_mod_opt_t * options) { } -static void DUMMY_Close(void *fd, aiori_mod_opt_t * options) +static void DUMMY_Close(aiori_fd_t *fd, aiori_mod_opt_t * options) { if(verbose > 4){ fprintf(out_logfile, "DUMMY close %p\n", fd); @@ -116,7 +116,7 @@ static IOR_offset_t DUMMY_GetFileSize(aiori_mod_opt_t * options, MPI_Comm testCo return 0; } -static IOR_offset_t DUMMY_Xfer(int access, void *file, IOR_size_t * buffer, IOR_offset_t length, aiori_mod_opt_t * options){ +static IOR_offset_t DUMMY_Xfer(int access, aiori_fd_t *file, IOR_size_t * buffer, IOR_offset_t length, aiori_mod_opt_t * options){ if(verbose > 4){ fprintf(out_logfile, "DUMMY xfer: %p\n", file); } diff --git a/src/aiori-HDF5.c b/src/aiori-HDF5.c index 203aa3f..6669902 100755 --- a/src/aiori-HDF5.c +++ b/src/aiori-HDF5.c @@ -83,14 +83,14 @@ static IOR_offset_t SeekOffset(void *, IOR_offset_t, aiori_mod_opt_t *); static void SetupDataSet(void *, aiori_mod_opt_t *); -static void *HDF5_Create(char *, int flags, aiori_mod_opt_t *); -static void *HDF5_Open(char *, int flags, aiori_mod_opt_t *); -static IOR_offset_t HDF5_Xfer(int, void *, IOR_size_t *, +static aiori_fd_t *HDF5_Create(char *, int flags, aiori_mod_opt_t *); +static aiori_fd_t *HDF5_Open(char *, int flags, aiori_mod_opt_t *); +static IOR_offset_t HDF5_Xfer(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, aiori_mod_opt_t *); -static void HDF5_Close(void *, aiori_mod_opt_t *); +static void HDF5_Close(aiori_fd_t *, aiori_mod_opt_t *); static void HDF5_Delete(char *, aiori_mod_opt_t *); static char* HDF5_GetVersion(); -static void HDF5_Fsync(void *, aiori_mod_opt_t *); +static void HDF5_Fsync(aiori_fd_t *, aiori_mod_opt_t *); static IOR_offset_t HDF5_GetFileSize(aiori_mod_opt_t *, MPI_Comm, char *); static int HDF5_Access(const char *, int, aiori_mod_opt_t *); static void HDF5_init_xfer_options(IOR_param_t * params); @@ -197,7 +197,7 @@ static int HDF5_check_params(aiori_mod_opt_t * options){ /* * Create and open a file through the HDF5 interface. */ -static void *HDF5_Create(char *testFileName, int flags, aiori_mod_opt_t * param) +static aiori_fd_t *HDF5_Create(char *testFileName, int flags, aiori_mod_opt_t * param) { return HDF5_Open(testFileName, flags, param); } @@ -205,7 +205,7 @@ static void *HDF5_Create(char *testFileName, int flags, aiori_mod_opt_t * param) /* * Open a file through the HDF5 interface. */ -static void *HDF5_Open(char *testFileName, int flags, aiori_mod_opt_t * param) +static aiori_fd_t *HDF5_Open(char *testFileName, int flags, aiori_mod_opt_t * param) { HDF5_options_t *o = (HDF5_options_t*) param; hid_t accessPropList, createPropList; @@ -410,13 +410,13 @@ static void *HDF5_Open(char *testFileName, int flags, aiori_mod_opt_t * param) if (mpiHints != MPI_INFO_NULL) MPI_Info_free(&mpiHints); - return (fd); + return (aiori_fd_t*)(fd); } /* * Write or read access to file using the HDF5 interface. */ -static IOR_offset_t HDF5_Xfer(int access, void *fd, IOR_size_t * buffer, +static IOR_offset_t HDF5_Xfer(int access, aiori_fd_t *fd, IOR_size_t * buffer, IOR_offset_t length, aiori_mod_opt_t * param) { static int firstReadCheck = FALSE, startNewDataSet; @@ -495,15 +495,14 @@ static IOR_offset_t HDF5_Xfer(int access, void *fd, IOR_size_t * buffer, /* * Perform fsync(). */ -static void HDF5_Fsync(void *fd, aiori_mod_opt_t * param) +static void HDF5_Fsync(aiori_fd_t *fd, aiori_mod_opt_t * param) { - ; } /* * Close a file through the HDF5 interface. */ -static void HDF5_Close(void *fd, aiori_mod_opt_t * param) +static void HDF5_Close(aiori_fd_t *fd, aiori_mod_opt_t * param) { if(ior_param->dryRun) return; diff --git a/src/aiori-MMAP.c b/src/aiori-MMAP.c index 5a920a7..3b8c203 100644 --- a/src/aiori-MMAP.c +++ b/src/aiori-MMAP.c @@ -26,12 +26,12 @@ #include "utilities.h" /**************************** P R O T O T Y P E S *****************************/ -static void *MMAP_Create(char *, int flags, aiori_mod_opt_t *); -static void *MMAP_Open(char *, int flags, aiori_mod_opt_t *); -static IOR_offset_t MMAP_Xfer(int, void *, IOR_size_t *, +static aiori_fd_t *MMAP_Create(char *, int flags, aiori_mod_opt_t *); +static aiori_fd_t *MMAP_Open(char *, int flags, aiori_mod_opt_t *); +static IOR_offset_t MMAP_Xfer(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, aiori_mod_opt_t *); -static void MMAP_Close(void *, aiori_mod_opt_t *); -static void MMAP_Fsync(void *, aiori_mod_opt_t *); +static void MMAP_Close(aiori_fd_t *, aiori_mod_opt_t *); +static void MMAP_Fsync(aiori_fd_t *, aiori_mod_opt_t *); static option_help * MMAP_options(aiori_mod_opt_t ** init_backend_options, aiori_mod_opt_t * init_values); static void MMAP_init_xfer_options(IOR_param_t * params); static int MMAP_check_params(aiori_mod_opt_t * options); @@ -130,32 +130,32 @@ static void ior_mmap_file(int *file, int mflags, void *param) /* * Creat and open a file through the POSIX interface, then setup mmap. */ -static void *MMAP_Create(char *testFileName, int flags, aiori_mod_opt_t * param) +static aiori_fd_t *MMAP_Create(char *testFileName, int flags, aiori_mod_opt_t * param) { int *fd; - fd = POSIX_Create(testFileName, flags, param); + fd = (int*) POSIX_Create(testFileName, flags, param); if (ftruncate(*fd, ior_param->expectedAggFileSize) != 0) ERR("ftruncate() failed"); ior_mmap_file(fd, flags, param); - return ((void *)fd); + return ((aiori_fd_t *)fd); } /* * Open a file through the POSIX interface and setup mmap. */ -static void *MMAP_Open(char *testFileName, int flags, aiori_mod_opt_t * param) +static aiori_fd_t *MMAP_Open(char *testFileName, int flags, aiori_mod_opt_t * param) { int *fd; - fd = POSIX_Open(testFileName, flags, param); + fd = (int*) POSIX_Open(testFileName, flags, param); ior_mmap_file(fd, flags, param); - return ((void *)fd); + return ((aiori_fd_t *)fd); } /* * Write or read access to file using mmap */ -static IOR_offset_t MMAP_Xfer(int access, void *file, IOR_size_t * buffer, +static IOR_offset_t MMAP_Xfer(int access, aiori_fd_t *file, IOR_size_t * buffer, IOR_offset_t length, aiori_mod_opt_t * param) { mmap_options_t *o = (mmap_options_t*) param; @@ -178,7 +178,7 @@ static IOR_offset_t MMAP_Xfer(int access, void *file, IOR_size_t * buffer, /* * Perform msync(). */ -static void MMAP_Fsync(void *fd, aiori_mod_opt_t * param) +static void MMAP_Fsync(aiori_fd_t *fd, aiori_mod_opt_t * param) { mmap_options_t *o = (mmap_options_t*) param; if (msync(o->mmap_ptr, ior_param->expectedAggFileSize, MS_SYNC) != 0) @@ -188,7 +188,7 @@ static void MMAP_Fsync(void *fd, aiori_mod_opt_t * param) /* * Close a file through the POSIX interface, after tear down the mmap. */ -static void MMAP_Close(void *fd, aiori_mod_opt_t * param) +static void MMAP_Close(aiori_fd_t *fd, aiori_mod_opt_t * param) { mmap_options_t *o = (mmap_options_t*) param; if (munmap(o->mmap_ptr, ior_param->expectedAggFileSize) != 0) diff --git a/src/aiori-MPIIO.c b/src/aiori-MPIIO.c index f366872..81ec0be 100755 --- a/src/aiori-MPIIO.c +++ b/src/aiori-MPIIO.c @@ -33,13 +33,13 @@ static IOR_offset_t SeekOffset(MPI_File, IOR_offset_t, aiori_mod_opt_t *); -static void *MPIIO_Create(char *, int iorflags, aiori_mod_opt_t *); -static void *MPIIO_Open(char *, int flags, aiori_mod_opt_t *); -static IOR_offset_t MPIIO_Xfer(int, void *, IOR_size_t *, +static aiori_fd_t *MPIIO_Create(char *, int iorflags, aiori_mod_opt_t *); +static aiori_fd_t *MPIIO_Open(char *, int flags, aiori_mod_opt_t *); +static IOR_offset_t MPIIO_Xfer(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, aiori_mod_opt_t *); -static void MPIIO_Close(void *, aiori_mod_opt_t *); +static void MPIIO_Close(aiori_fd_t *, aiori_mod_opt_t *); static char* MPIIO_GetVersion(); -static void MPIIO_Fsync(void *, aiori_mod_opt_t *); +static void MPIIO_Fsync(aiori_fd_t *, aiori_mod_opt_t *); static void MPIIO_init_xfer_options(IOR_param_t * params); static int MPIIO_check_params(aiori_mod_opt_t * options); @@ -172,7 +172,7 @@ int MPIIO_Access(const char *path, int mode, aiori_mod_opt_t *module_options) /* * Create and open a file through the MPIIO interface. */ -static void *MPIIO_Create(char *testFileName, int iorflags, aiori_mod_opt_t * module_options) +static aiori_fd_t *MPIIO_Create(char *testFileName, int iorflags, aiori_mod_opt_t * module_options) { return MPIIO_Open(testFileName, iorflags, module_options); } @@ -180,7 +180,7 @@ static void *MPIIO_Create(char *testFileName, int iorflags, aiori_mod_opt_t * mo /* * Open a file through the MPIIO interface. Setup file view. */ -static void *MPIIO_Open(char *testFileName, int flags, aiori_mod_opt_t * module_options) +static aiori_fd_t *MPIIO_Open(char *testFileName, int flags, aiori_mod_opt_t * module_options) { mpiio_options_t * param = (mpiio_options_t*) module_options; int fd_mode = (int)0, @@ -328,7 +328,7 @@ static void *MPIIO_Open(char *testFileName, int flags, aiori_mod_opt_t * module_ /* * Write or read access to file using the MPIIO interface. */ -static IOR_offset_t MPIIO_Xfer(int access, void * fdp, IOR_size_t * buffer, +static IOR_offset_t MPIIO_Xfer(int access, aiori_fd_t * fdp, IOR_size_t * buffer, IOR_offset_t length, aiori_mod_opt_t * module_options) { /* NOTE: The second arg is (void *) for reads, and (const void *) @@ -464,7 +464,7 @@ static IOR_offset_t MPIIO_Xfer(int access, void * fdp, IOR_size_t * buffer, /* * Perform fsync(). */ -static void MPIIO_Fsync(void *fdp, aiori_mod_opt_t * module_options) +static void MPIIO_Fsync(aiori_fd_t *fdp, aiori_mod_opt_t * module_options) { mpiio_options_t * param = (mpiio_options_t*) module_options; if(param->dry_run) @@ -477,7 +477,7 @@ static void MPIIO_Fsync(void *fdp, aiori_mod_opt_t * module_options) /* * Close a file through the MPIIO interface. */ -static void MPIIO_Close(void *fdp, aiori_mod_opt_t * module_options) +static void MPIIO_Close(aiori_fd_t *fdp, aiori_mod_opt_t * module_options) { mpiio_options_t * param = (mpiio_options_t*) module_options; mpiio_fd_t * mfd = (mpiio_fd_t*) fdp; diff --git a/src/aiori-POSIX.c b/src/aiori-POSIX.c index 4ecc557..43c5261 100755 --- a/src/aiori-POSIX.c +++ b/src/aiori-POSIX.c @@ -68,9 +68,9 @@ #endif /**************************** P R O T O T Y P E S *****************************/ -static IOR_offset_t POSIX_Xfer(int, void *, IOR_size_t *, +static IOR_offset_t POSIX_Xfer(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, aiori_mod_opt_t *); -static void POSIX_Fsync(void *, aiori_mod_opt_t *); +static void POSIX_Fsync(aiori_fd_t *, aiori_mod_opt_t *); static void POSIX_Sync(aiori_mod_opt_t * ); static int POSIX_check_params(aiori_mod_opt_t * options); @@ -372,7 +372,7 @@ bool beegfs_createFilePath(char* filepath, mode_t mode, int numTargets, int chun /* * Creat and open a file through the POSIX interface. */ -void *POSIX_Create(char *testFileName, int flags, aiori_mod_opt_t * param) +aiori_fd_t *POSIX_Create(char *testFileName, int flags, aiori_mod_opt_t * param) { int fd_oflag = O_BINARY; int mode = 0664; @@ -387,7 +387,7 @@ void *POSIX_Create(char *testFileName, int flags, aiori_mod_opt_t * param) } if(ior_param->dryRun) - return 0; + return (aiori_fd_t*) 0; #ifdef HAVE_LUSTRE_LUSTRE_USER_H /* Add a #define for FASYNC if not available, as it forms part of @@ -483,7 +483,7 @@ void *POSIX_Create(char *testFileName, int flags, aiori_mod_opt_t * param) gpfs_free_all_locks(*fd); } #endif - return ((void *)fd); + return (aiori_fd_t*) fd; } /* @@ -503,7 +503,7 @@ int POSIX_Mknod(char *testFileName) /* * Open a file through the POSIX interface. */ -void *POSIX_Open(char *testFileName, int flags, aiori_mod_opt_t * param) +aiori_fd_t *POSIX_Open(char *testFileName, int flags, aiori_mod_opt_t * param) { int fd_oflag = O_BINARY; int *fd; @@ -519,7 +519,7 @@ void *POSIX_Open(char *testFileName, int flags, aiori_mod_opt_t * param) fd_oflag |= O_RDWR; if(ior_param->dryRun) - return 0; + return (aiori_fd_t*) 0; *fd = open64(testFileName, fd_oflag); if (*fd < 0) @@ -542,13 +542,13 @@ void *POSIX_Open(char *testFileName, int flags, aiori_mod_opt_t * param) gpfs_free_all_locks(*fd); } #endif - return ((void *)fd); + return (aiori_fd_t*) fd; } /* * Write or read access to file using the POSIX interface. */ -static IOR_offset_t POSIX_Xfer(int access, void *file, IOR_size_t * buffer, +static IOR_offset_t POSIX_Xfer(int access, aiori_fd_t *file, IOR_size_t * buffer, IOR_offset_t length, aiori_mod_opt_t * param) { int xferRetries = 0; @@ -587,8 +587,9 @@ static IOR_offset_t POSIX_Xfer(int access, void *file, IOR_size_t * buffer, if (rc == -1) ERRF("write(%d, %p, %lld) failed", fd, (void*)ptr, remaining); - if (ior_param->fsyncPerWrite == TRUE) - POSIX_Fsync(&fd, param); + if (ior_param->fsyncPerWrite == TRUE){ + POSIX_Fsync((aiori_fd_t*) &fd, param); + } } else { /* READ or CHECK */ if (verbose >= VERBOSE_4) { fprintf(stdout, @@ -634,7 +635,7 @@ static IOR_offset_t POSIX_Xfer(int access, void *file, IOR_size_t * buffer, /* * Perform fsync(). */ -static void POSIX_Fsync(void *fd, aiori_mod_opt_t * param) +static void POSIX_Fsync(aiori_fd_t *fd, aiori_mod_opt_t * param) { if (fsync(*(int *)fd) != 0) EWARNF("fsync(%d) failed", *(int *)fd); @@ -653,7 +654,7 @@ static void POSIX_Sync(aiori_mod_opt_t * param) /* * Close a file through the POSIX interface. */ -void POSIX_Close(void *fd, aiori_mod_opt_t * param) +void POSIX_Close(aiori_fd_t *fd, aiori_mod_opt_t * param) { if(ior_param->dryRun) return; diff --git a/src/aiori.h b/src/aiori.h index 7662e8f..76d9f6a 100755 --- a/src/aiori.h +++ b/src/aiori.h @@ -72,22 +72,26 @@ typedef struct aiori_mod_opt_t{ void * dummy; } aiori_mod_opt_t; +typedef struct aiori_fd_t{ + void * dummy; +} aiori_fd_t; + typedef struct ior_aiori { char *name; char *name_legacy; - void *(*create)(char *, int iorflags, aiori_mod_opt_t *); + aiori_fd_t *(*create)(char *, int iorflags, aiori_mod_opt_t *); int (*mknod)(char *); - void *(*open)(char *, int iorflags, aiori_mod_opt_t *); + aiori_fd_t *(*open)(char *, int iorflags, aiori_mod_opt_t *); /* Allow to set generic transfer options that shall be applied to any subsequent IO call. */ void (*init_xfer_options)(IOR_param_t * params); - IOR_offset_t (*xfer)(int, void *, IOR_size_t *, + IOR_offset_t (*xfer)(int, aiori_fd_t *, IOR_size_t *, IOR_offset_t, aiori_mod_opt_t *); - void (*close)(void *, aiori_mod_opt_t *); + void (*close)(aiori_fd_t *, aiori_mod_opt_t *); void (*delete)(char *, aiori_mod_opt_t *); char* (*get_version)(void); - void (*fsync)(void *, aiori_mod_opt_t *); + void (*fsync)(aiori_fd_t *, aiori_mod_opt_t *); IOR_offset_t (*get_file_size)(aiori_mod_opt_t * module_options, MPI_Comm, char *); int (*statfs) (const char *, ior_aiori_statfs_t *, aiori_mod_opt_t * module_options); int (*mkdir) (const char *path, mode_t mode, aiori_mod_opt_t * module_options); @@ -142,12 +146,12 @@ int aiori_posix_access (const char *path, int mode, aiori_mod_opt_t * module_opt int aiori_posix_stat (const char *path, struct stat *buf, aiori_mod_opt_t * module_options); void aiori_posix_init_xfer_options(IOR_param_t * params); -void *POSIX_Create(char *testFileName, int flags, aiori_mod_opt_t * module_options); +aiori_fd_t *POSIX_Create(char *testFileName, int flags, aiori_mod_opt_t * module_options); int POSIX_Mknod(char *testFileName); -void *POSIX_Open(char *testFileName, int flags, aiori_mod_opt_t * module_options); +aiori_fd_t *POSIX_Open(char *testFileName, int flags, aiori_mod_opt_t * module_options); IOR_offset_t POSIX_GetFileSize(aiori_mod_opt_t * test, MPI_Comm testComm, char *testFileName); void POSIX_Delete(char *testFileName, aiori_mod_opt_t * module_options); -void POSIX_Close(void *fd, aiori_mod_opt_t * module_options); +void POSIX_Close(aiori_fd_t *fd, aiori_mod_opt_t * module_options); option_help * POSIX_options(aiori_mod_opt_t ** init_backend_options, aiori_mod_opt_t * init_values); diff --git a/src/ior.c b/src/ior.c index 3323b7f..7dbf80b 100755 --- a/src/ior.c +++ b/src/ior.c @@ -55,7 +55,7 @@ static void InitTests(IOR_test_t * , MPI_Comm); static void TestIoSys(IOR_test_t *); static void ValidateTests(IOR_param_t *); static IOR_offset_t WriteOrRead(IOR_param_t *test, IOR_results_t *results, - void *fd, const int access, + aiori_fd_t *fd, const int access, IOR_io_buffers *ioBuffers); static void test_initialize(IOR_test_t * test){ @@ -1231,7 +1231,7 @@ static void TestIoSys(IOR_test_t *test) double startTime; int pretendRank; int rep; - void *fd; + aiori_fd_t *fd; MPI_Group orig_group, new_group; int range[3]; IOR_offset_t dataMoved; /* for data rate calculation */ @@ -1781,7 +1781,7 @@ IOR_offset_t *GetOffsetArrayRandom(IOR_param_t * test, int pretendRank, int acce } static IOR_offset_t WriteOrReadSingle(IOR_offset_t pairCnt, IOR_offset_t *offsetArray, int pretendRank, - IOR_offset_t * transferCount, int * errors, IOR_param_t * test, int * fd, IOR_io_buffers* ioBuffers, int access){ + IOR_offset_t * transferCount, int * errors, IOR_param_t * test, aiori_fd_t * fd, IOR_io_buffers* ioBuffers, int access){ IOR_offset_t amtXferred = 0; IOR_offset_t transfer; @@ -1850,7 +1850,7 @@ static IOR_offset_t WriteOrReadSingle(IOR_offset_t pairCnt, IOR_offset_t *offset * out the data to each block in transfer sizes, until the remainder left is 0. */ static IOR_offset_t WriteOrRead(IOR_param_t *test, IOR_results_t *results, - void *fd, const int access, IOR_io_buffers *ioBuffers) + aiori_fd_t *fd, const int access, IOR_io_buffers *ioBuffers) { int errors = 0; IOR_offset_t transferCount = 0; diff --git a/src/mdtest.c b/src/mdtest.c index b81b143..3e102de 100644 --- a/src/mdtest.c +++ b/src/mdtest.c @@ -346,7 +346,7 @@ static void remove_file (const char *path, uint64_t itemNum) { static void create_file (const char *path, uint64_t itemNum) { char curr_item[MAX_PATHLEN]; - void *aiori_fh = NULL; + aiori_fd_t *aiori_fh = NULL; if ( (itemNum % ITEM_COUNT==0 && (itemNum != 0))) { VERBOSE(3,5,"create file: "LLU"", itemNum); @@ -443,7 +443,7 @@ void collective_helper(const int dirs, const int create, const char* path, uint6 VERBOSE(3,5,"create file: %s", curr_item); if (create) { - void *aiori_fh; + aiori_fd_t *aiori_fh; //create files aiori_fh = backend->create (curr_item, IOR_WRONLY | IOR_CREAT, backend_options); @@ -622,7 +622,7 @@ void mdtest_stat(const int random, const int dirs, const long dir_iter, const ch void mdtest_read(int random, int dirs, const long dir_iter, char *path) { uint64_t parent_dir, item_num = 0; char item[MAX_PATHLEN], temp[MAX_PATHLEN]; - void *aiori_fh; + aiori_fd_t *aiori_fh; VERBOSE(1,-1,"Entering mdtest_read on %s", path );