00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _AD_ZOIDFS_COMMON_H
00009 #define _AD_ZOIDFS_COMMON_H
00010 #include "ad_zoidfs.h"
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #define NO_STALE(ret, fd, handle_p, expr) \
00021 do { \
00022 (ret) = (expr); \
00023 while ((ret) == ZFSERR_STALE) { \
00024 \
00025 (ret) = zoidfs_lookup(NULL, NULL, (fd)->filename, \
00026 (zoidfs_handle_t*)((fd)->fs_ptr), ZOIDFS_NO_OP_HINT); \
00027 if ((ret) == ZFS_OK) { \
00028 *((ADIOI_ZOIDFS_object*)handle_p) \
00029 = *((ADIOI_ZOIDFS_object*)((fd)->fs_ptr)); \
00030 \
00031 (ret) = (expr); \
00032 } \
00033 } \
00034 } while (0)
00035
00036 void ADIOI_ZOIDFS_Init(int rank, int *error_code );
00037 void ADIOI_ZOIDFS_makeattribs(zoidfs_sattr_t * attribs);
00038 void ADIOI_ZOIDFS_End(int *error_code);
00039 int ADIOI_ZOIDFS_End_call(MPI_Comm comm, int keyval,
00040 void *attribute_val, void *extra_state);
00041 int ADIOI_ZOIDFS_error_convert(int error);
00042
00043 #endif