diff options
Diffstat (limited to 'src/H5FDros3.c')
-rw-r--r-- | src/H5FDros3.c | 484 |
1 files changed, 194 insertions, 290 deletions
diff --git a/src/H5FDros3.c b/src/H5FDros3.c index a936f55..ca18025 100644 --- a/src/H5FDros3.c +++ b/src/H5FDros3.c @@ -25,14 +25,14 @@ /* This source code file is part of the H5FD driver module */ #include "H5FDdrvr_module.h" -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5FDprivate.h" /* File drivers */ -#include "H5FDros3.h" /* ros3 file driver */ -#include "H5FLprivate.h" /* Free Lists */ -#include "H5Iprivate.h" /* IDs */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5FDs3comms.h" /* S3 Communications */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5FDros3.h" /* ros3 file driver */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5FDs3comms.h" /* S3 Communications */ #ifdef H5_HAVE_ROS3_VFD @@ -63,29 +63,27 @@ static hid_t H5FD_ROS3_g = 0; * 2^(10+(1*16)) = 2^26 = 64MB * Reads of 64MB or greater fall in "overflow" bin[BIN_COUNT] */ -#define ROS3_STATS_BASE 2 -#define ROS3_STATS_INTERVAL 1 +#define ROS3_STATS_BASE 2 +#define ROS3_STATS_INTERVAL 1 #define ROS3_STATS_START_POWER 10 #define ROS3_STATS_BIN_COUNT 16 /* MUST BE GREATER THAN 0 */ - /* * Calculate `BASE ^ (START_POWER + (INTERVAL * bin_i))` * Stores result at `(unsigned long long *) out_ptr`. * Used in computing boundaries between stats bins. */ -#define ROS3_STATS_POW(bin_i, out_ptr) { \ - unsigned long long donotshadowresult = 1; \ - unsigned donotshadowindex = 0; \ - for (donotshadowindex = 0; \ - donotshadowindex < (((bin_i) * ROS3_STATS_INTERVAL) + \ - ROS3_STATS_START_POWER); \ - donotshadowindex++) \ - { \ - donotshadowresult *= ROS3_STATS_BASE; \ - } \ - *(out_ptr) = donotshadowresult; \ -} +#define ROS3_STATS_POW(bin_i, out_ptr) \ + { \ + unsigned long long donotshadowresult = 1; \ + unsigned donotshadowindex = 0; \ + for (donotshadowindex = 0; \ + donotshadowindex < (((bin_i)*ROS3_STATS_INTERVAL) + ROS3_STATS_START_POWER); \ + donotshadowindex++) { \ + donotshadowresult *= ROS3_STATS_BASE; \ + } \ + *(out_ptr) = donotshadowresult; \ + } /* array to hold pre-computed boundaries for stats bins */ @@ -192,13 +190,13 @@ typedef struct { * ***************************************************************************/ typedef struct H5FD_ros3_t { - H5FD_t pub; - H5FD_ros3_fapl_t fa; - haddr_t eoa; - s3r_t *s3r_handle; + H5FD_t pub; + H5FD_ros3_fapl_t fa; + haddr_t eoa; + s3r_t * s3r_handle; #if ROS3_STATS - ros3_statsbin meta[ROS3_STATS_BIN_COUNT + 1]; - ros3_statsbin raw[ROS3_STATS_BIN_COUNT + 1]; + ros3_statsbin meta[ROS3_STATS_BIN_COUNT + 1]; + ros3_statsbin raw[ROS3_STATS_BIN_COUNT + 1]; #endif } H5FD_ros3_t; @@ -212,74 +210,70 @@ typedef struct H5FD_ros3_t { * Only included if it may be used -- ROS3 VFD is enabled. * */ -#define MAXADDR (((haddr_t)1<<(8*sizeof(HDoff_t)-1))-1) -#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || ((A) & ~(haddr_t)MAXADDR)) +#define MAXADDR (((haddr_t)1 << (8 * sizeof(HDoff_t) - 1)) - 1) +#define ADDR_OVERFLOW(A) (HADDR_UNDEF == (A) || ((A) & ~(haddr_t)MAXADDR)) /* Prototypes */ static herr_t H5FD_ros3_term(void); -static void *H5FD_ros3_fapl_get(H5FD_t *_file); -static void *H5FD_ros3_fapl_copy(const void *_old_fa); +static void * H5FD_ros3_fapl_get(H5FD_t *_file); +static void * H5FD_ros3_fapl_copy(const void *_old_fa); static herr_t H5FD_ros3_fapl_free(void *_fa); -static H5FD_t *H5FD_ros3_open(const char *name, unsigned flags, hid_t fapl_id, - haddr_t maxaddr); +static H5FD_t *H5FD_ros3_open(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr); static herr_t H5FD_ros3_close(H5FD_t *_file); static int H5FD_ros3_cmp(const H5FD_t *_f1, const H5FD_t *_f2); static herr_t H5FD_ros3_query(const H5FD_t *_f1, unsigned long *flags); static haddr_t H5FD_ros3_get_eoa(const H5FD_t *_file, H5FD_mem_t type); static herr_t H5FD_ros3_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr); static haddr_t H5FD_ros3_get_eof(const H5FD_t *_file, H5FD_mem_t type); -static herr_t H5FD_ros3_get_handle(H5FD_t *_file, hid_t fapl, - void** file_handle); -static herr_t H5FD_ros3_read(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, - haddr_t addr, size_t size, void *buf); -static herr_t H5FD_ros3_write(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, - haddr_t addr, size_t size, const void *buf); -static herr_t H5FD_ros3_truncate(H5FD_t *_file, hid_t dxpl_id, - hbool_t closing); +static herr_t H5FD_ros3_get_handle(H5FD_t *_file, hid_t fapl, void **file_handle); +static herr_t H5FD_ros3_read(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, size_t size, + void *buf); +static herr_t H5FD_ros3_write(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, size_t size, + const void *buf); +static herr_t H5FD_ros3_truncate(H5FD_t *_file, hid_t dxpl_id, hbool_t closing); static herr_t H5FD_ros3_lock(H5FD_t *_file, hbool_t rw); static herr_t H5FD_ros3_unlock(H5FD_t *_file); -static herr_t H5FD_ros3_validate_config(const H5FD_ros3_fapl_t * fa); +static herr_t H5FD_ros3_validate_config(const H5FD_ros3_fapl_t *fa); static const H5FD_class_t H5FD_ros3_g = { - "ros3", /* name */ - MAXADDR, /* maxaddr */ - H5F_CLOSE_WEAK, /* fc_degree */ - H5FD_ros3_term, /* terminate */ - NULL, /* sb_size */ - NULL, /* sb_encode */ - NULL, /* sb_decode */ - sizeof(H5FD_ros3_fapl_t), /* fapl_size */ - H5FD_ros3_fapl_get, /* fapl_get */ - H5FD_ros3_fapl_copy, /* fapl_copy */ - H5FD_ros3_fapl_free, /* fapl_free */ - 0, /* dxpl_size */ - NULL, /* dxpl_copy */ - NULL, /* dxpl_free */ - H5FD_ros3_open, /* open */ - H5FD_ros3_close, /* close */ - H5FD_ros3_cmp, /* cmp */ - H5FD_ros3_query, /* query */ - NULL, /* get_type_map */ - NULL, /* alloc */ - NULL, /* free */ - H5FD_ros3_get_eoa, /* get_eoa */ - H5FD_ros3_set_eoa, /* set_eoa */ - H5FD_ros3_get_eof, /* get_eof */ - H5FD_ros3_get_handle, /* get_handle */ - H5FD_ros3_read, /* read */ - H5FD_ros3_write, /* write */ - NULL, /* flush */ - H5FD_ros3_truncate, /* truncate */ - H5FD_ros3_lock, /* lock */ - H5FD_ros3_unlock, /* unlock */ - NULL, /* dedup */ - H5FD_FLMAP_DICHOTOMY /* fl_map */ + "ros3", /* name */ + MAXADDR, /* maxaddr */ + H5F_CLOSE_WEAK, /* fc_degree */ + H5FD_ros3_term, /* terminate */ + NULL, /* sb_size */ + NULL, /* sb_encode */ + NULL, /* sb_decode */ + sizeof(H5FD_ros3_fapl_t), /* fapl_size */ + H5FD_ros3_fapl_get, /* fapl_get */ + H5FD_ros3_fapl_copy, /* fapl_copy */ + H5FD_ros3_fapl_free, /* fapl_free */ + 0, /* dxpl_size */ + NULL, /* dxpl_copy */ + NULL, /* dxpl_free */ + H5FD_ros3_open, /* open */ + H5FD_ros3_close, /* close */ + H5FD_ros3_cmp, /* cmp */ + H5FD_ros3_query, /* query */ + NULL, /* get_type_map */ + NULL, /* alloc */ + NULL, /* free */ + H5FD_ros3_get_eoa, /* get_eoa */ + H5FD_ros3_set_eoa, /* set_eoa */ + H5FD_ros3_get_eof, /* get_eof */ + H5FD_ros3_get_handle, /* get_handle */ + H5FD_ros3_read, /* read */ + H5FD_ros3_write, /* write */ + NULL, /* flush */ + H5FD_ros3_truncate, /* truncate */ + H5FD_ros3_lock, /* lock */ + H5FD_ros3_unlock, /* unlock */ + NULL, /* dedup */ + H5FD_FLMAP_DICHOTOMY /* fl_map */ }; /* Declare a free list to manage the H5FD_ros3_t struct */ H5FL_DEFINE_STATIC(H5FD_ros3_t); - /*------------------------------------------------------------------------- * Function: H5FD__init_package * @@ -299,8 +293,7 @@ H5FD__init_package(void) FUNC_ENTER_STATIC if (H5FD_ros3_init() < 0) { - HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, - "unable to initialize ros3 VFD") + HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "unable to initialize ros3 VFD") } done: @@ -308,7 +301,6 @@ done: } /* end H5FD__init_package() */ - /*------------------------------------------------------------------------- * Function: H5FD_ros3_init * @@ -357,7 +349,6 @@ done: } /* end H5FD_ros3_init() */ - /*--------------------------------------------------------------------------- * Function: H5FD_ros3_term * @@ -385,7 +376,6 @@ H5FD_ros3_term(void) } /* end H5FD_ros3_term() */ - /*------------------------------------------------------------------------- * Function: H5Pset_fapl_ros3 * @@ -402,8 +392,7 @@ H5FD_ros3_term(void) *------------------------------------------------------------------------- */ herr_t -H5Pset_fapl_ros3(hid_t fapl_id, - H5FD_ros3_fapl_t *fa) +H5Pset_fapl_ros3(hid_t fapl_id, H5FD_ros3_fapl_t *fa) { H5P_genplist_t *plist = NULL; /* Property list pointer */ herr_t ret_value = FAIL; @@ -419,8 +408,7 @@ H5Pset_fapl_ros3(hid_t fapl_id, plist = H5P_object_verify(fapl_id, H5P_FILE_ACCESS); if (plist == NULL) { - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, \ - "not a file access property list") + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list") } if (FAIL == H5FD_ros3_validate_config(fa)) { @@ -434,7 +422,6 @@ done: } /* end H5Pset_fapl_ros3() */ - /*------------------------------------------------------------------------- * Function: H5FD_ros3_validate_config() * @@ -456,7 +443,7 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_validate_config(const H5FD_ros3_fapl_t * fa) +H5FD_ros3_validate_config(const H5FD_ros3_fapl_t *fa) { herr_t ret_value = SUCCEED; @@ -464,19 +451,15 @@ H5FD_ros3_validate_config(const H5FD_ros3_fapl_t * fa) HDassert(fa != NULL); - if ( fa->version != H5FD_CURR_ROS3_FAPL_T_VERSION ) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "Unknown H5FD_ros3_fapl_t version"); + if (fa->version != H5FD_CURR_ROS3_FAPL_T_VERSION) { + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Unknown H5FD_ros3_fapl_t version"); } /* if set to authenticate, region and id cannot be empty strings */ if (fa->authenticate == TRUE) { - if ((fa->aws_region[0] == '\0') || - (fa->secret_id[0] == '\0')) - { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "Inconsistent authentication information"); + if ((fa->aws_region[0] == '\0') || (fa->secret_id[0] == '\0')) { + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Inconsistent authentication information"); } } @@ -485,7 +468,6 @@ done: } /* end H5FD_ros3_validate_config() */ - /*------------------------------------------------------------------------- * Function: H5Pget_fapl_ros3 * @@ -504,11 +486,10 @@ done: *------------------------------------------------------------------------- */ herr_t -H5Pget_fapl_ros3(hid_t fapl_id, - H5FD_ros3_fapl_t *fa_out) +H5Pget_fapl_ros3(hid_t fapl_id, H5FD_ros3_fapl_t *fa_out) { const H5FD_ros3_fapl_t *fa = NULL; - H5P_genplist_t *plist = NULL; + H5P_genplist_t * plist = NULL; herr_t ret_value = SUCCEED; FUNC_ENTER_API(FAIL) @@ -544,7 +525,6 @@ done: } /* end H5Pget_fapl_ros3() */ - /*------------------------------------------------------------------------- * Function: H5FD_ros3_fapl_get * @@ -565,16 +545,15 @@ done: static void * H5FD_ros3_fapl_get(H5FD_t *_file) { - H5FD_ros3_t *file = (H5FD_ros3_t*)_file; + H5FD_ros3_t * file = (H5FD_ros3_t *)_file; H5FD_ros3_fapl_t *fa = NULL; - void *ret_value = NULL; + void * ret_value = NULL; FUNC_ENTER_NOAPI_NOINIT fa = (H5FD_ros3_fapl_t *)H5MM_calloc(sizeof(H5FD_ros3_fapl_t)); if (fa == NULL) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, - "memory allocation failed") + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") } /* Copy the fields of the structure */ @@ -593,7 +572,6 @@ done: } /* end H5FD_ros3_fapl_get() */ - /*------------------------------------------------------------------------- * Function: H5FD_ros3_fapl_copy * @@ -613,16 +591,15 @@ done: static void * H5FD_ros3_fapl_copy(const void *_old_fa) { - const H5FD_ros3_fapl_t *old_fa = (const H5FD_ros3_fapl_t*)_old_fa; - H5FD_ros3_fapl_t *new_fa = NULL; - void *ret_value = NULL; + const H5FD_ros3_fapl_t *old_fa = (const H5FD_ros3_fapl_t *)_old_fa; + H5FD_ros3_fapl_t * new_fa = NULL; + void * ret_value = NULL; FUNC_ENTER_NOAPI_NOINIT new_fa = (H5FD_ros3_fapl_t *)H5MM_malloc(sizeof(H5FD_ros3_fapl_t)); if (new_fa == NULL) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, - "memory allocation failed"); + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed"); } HDmemcpy(new_fa, old_fa, sizeof(H5FD_ros3_fapl_t)); @@ -638,7 +615,6 @@ done: } /* end H5FD_ros3_fapl_copy() */ - /*------------------------------------------------------------------------- * Function: H5FD_ros3_fapl_free * @@ -656,7 +632,7 @@ done: static herr_t H5FD_ros3_fapl_free(void *_fa) { - H5FD_ros3_fapl_t *fa = (H5FD_ros3_fapl_t*)_fa; + H5FD_ros3_fapl_t *fa = (H5FD_ros3_fapl_t *)_fa; FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -704,15 +680,14 @@ ros3_reset_stats(H5FD_ros3_t *file) #endif if (file == NULL) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "file was null"); + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file was null"); } for (i = 0; i <= ROS3_STATS_BIN_COUNT; i++) { - file->raw[i].bytes = 0; - file->raw[i].count = 0; - file->raw[i].min = (unsigned long long)ROS3_STATS_STARTING_MIN; - file->raw[i].max = 0; + file->raw[i].bytes = 0; + file->raw[i].count = 0; + file->raw[i].min = (unsigned long long)ROS3_STATS_STARTING_MIN; + file->raw[i].max = 0; file->meta[i].bytes = 0; file->meta[i].count = 0; @@ -727,7 +702,6 @@ done: #endif /* ROS3_STATS */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_open() @@ -760,21 +734,15 @@ done: *------------------------------------------------------------------------- */ static H5FD_t * -H5FD_ros3_open( - const char *url, - unsigned flags, - hid_t fapl_id, - haddr_t maxaddr) +H5FD_ros3_open(const char *url, unsigned flags, hid_t fapl_id, haddr_t maxaddr) { - H5FD_ros3_t *file = NULL; - struct tm *now = NULL; - char iso8601now[ISO8601_SIZE]; - unsigned char signing_key[SHA256_DIGEST_LENGTH]; - s3r_t *handle = NULL; - H5FD_ros3_fapl_t fa; - H5FD_t *ret_value = NULL; - - + H5FD_ros3_t * file = NULL; + struct tm * now = NULL; + char iso8601now[ISO8601_SIZE]; + unsigned char signing_key[SHA256_DIGEST_LENGTH]; + s3r_t * handle = NULL; + H5FD_ros3_fapl_t fa; + H5FD_t * ret_value = NULL; FUNC_ENTER_NOAPI_NOINIT @@ -793,16 +761,14 @@ H5FD_ros3_open( if (ADDR_OVERFLOW(maxaddr)) HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, NULL, "bogus maxaddr") if (flags != H5F_ACC_RDONLY) - HGOTO_ERROR(H5E_ARGS, H5E_UNSUPPORTED, NULL, - "only Read-Only access allowed") + HGOTO_ERROR(H5E_ARGS, H5E_UNSUPPORTED, NULL, "only Read-Only access allowed") if (FAIL == H5Pget_fapl_ros3(fapl_id, &fa)) { HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "can't get property list") } if (CURLE_OK != curl_global_init(CURL_GLOBAL_DEFAULT)) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, - "unable to initialize curl global (placeholder flags)") + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "unable to initialize curl global (placeholder flags)") } /* open file; procedure depends on whether or not the fapl instructs to @@ -814,26 +780,19 @@ H5FD_ros3_open( * find way to re-use/share */ now = gmnow(); - HDassert( now != NULL ); + HDassert(now != NULL); if (ISO8601NOW(iso8601now, now) != (ISO8601_SIZE - 1)) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, - "problem while writing iso8601 timestamp") + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "problem while writing iso8601 timestamp") } - if (FAIL == H5FD_s3comms_signing_key(signing_key, - (const char *)fa.secret_key, - (const char *)fa.aws_region, - (const char *)iso8601now) ) - { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, - "problem while computing signing key") + if (FAIL == H5FD_s3comms_signing_key(signing_key, (const char *)fa.secret_key, + (const char *)fa.aws_region, (const char *)iso8601now)) { + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, NULL, "problem while computing signing key") } - handle = H5FD_s3comms_s3r_open( - url, - (const char *)fa.aws_region, - (const char *)fa.secret_id, - (const unsigned char *)signing_key); - } else { + handle = H5FD_s3comms_s3r_open(url, (const char *)fa.aws_region, (const char *)fa.secret_id, + (const unsigned char *)signing_key); + } + else { handle = H5FD_s3comms_s3r_open(url, NULL, NULL, NULL); } /* if/else should authenticate */ @@ -849,8 +808,7 @@ H5FD_ros3_open( */ file = H5FL_CALLOC(H5FD_ros3_t); if (file == NULL) { - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, - "unable to allocate file struct") + HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate file struct") } file->s3r_handle = handle; @@ -858,26 +816,24 @@ H5FD_ros3_open( #if ROS3_STATS if (FAIL == ros3_reset_stats(file)) { - HGOTO_ERROR(H5E_INTERNAL, H5E_UNINITIALIZED, NULL, - "unable to reset file statistics") + HGOTO_ERROR(H5E_INTERNAL, H5E_UNINITIALIZED, NULL, "unable to reset file statistics") } #endif /* ROS3_STATS */ - ret_value = (H5FD_t*)file; + ret_value = (H5FD_t *)file; done: if (ret_value == NULL) { if (handle != NULL) { if (FAIL == H5FD_s3comms_s3r_close(handle)) { - HDONE_ERROR(H5E_VFL, H5E_CANTCLOSEFILE, NULL, - "unable to close s3 file handle") + HDONE_ERROR(H5E_VFL, H5E_CANTCLOSEFILE, NULL, "unable to close s3 file handle") } } if (file != NULL) { file = H5FL_FREE(H5FD_ros3_t, file); } curl_global_cleanup(); /* early cleanup because open failed */ - } /* end if null return value (error) */ + } /* end if null return value (error) */ FUNC_LEAVE_NOAPI(ret_value) @@ -940,45 +896,38 @@ done: *---------------------------------------------------------------------------- */ static herr_t -ros3_fprint_stats(FILE *stream, - const H5FD_ros3_t *file) +ros3_fprint_stats(FILE *stream, const H5FD_ros3_t *file) { herr_t ret_value = SUCCEED; - parsed_url_t *purl = NULL; + parsed_url_t * purl = NULL; unsigned i = 0; unsigned long count_meta = 0; unsigned long count_raw = 0; double average_meta = 0.0; double average_raw = 0.0; - unsigned long long min_meta = (unsigned long long)ROS3_STATS_STARTING_MIN; - unsigned long long min_raw = (unsigned long long)ROS3_STATS_STARTING_MIN; + unsigned long long min_meta = (unsigned long long)ROS3_STATS_STARTING_MIN; + unsigned long long min_raw = (unsigned long long)ROS3_STATS_STARTING_MIN; unsigned long long max_meta = 0; unsigned long long max_raw = 0; unsigned long long bytes_raw = 0; unsigned long long bytes_meta = 0; double re_dub = 0.0; /* re-usable double variable */ unsigned suffix_i = 0; - const char suffixes[] = { ' ', 'K', 'M', 'G', 'T', 'P' }; - - + const char suffixes[] = {' ', 'K', 'M', 'G', 'T', 'P'}; FUNC_ENTER_NOAPI_NOINIT if (stream == NULL) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "file stream cannot be null" ); + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file stream cannot be null"); } if (file == NULL) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "file cannot be null"); + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "file cannot be null"); } if (file->s3r_handle == NULL) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "s3 request handle cannot be null"); + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "s3 request handle cannot be null"); } if (file->s3r_handle->purl == NULL) { - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, - "parsed url structure cannot be null"); + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "parsed url structure cannot be null"); } purl = file->s3r_handle->purl; @@ -995,7 +944,8 @@ ros3_fprint_stats(FILE *stream, else HDfprintf(stream, "/"); HDfprintf(stream, "?%s", purl->query); - } else if (purl->path != NULL && purl->path[0] != '\0') { + } + else if (purl->path != NULL && purl->path[0] != '\0') { HDfprintf(stream, "/%s", purl->path); } HDfprintf(stream, "\n"); @@ -1008,14 +958,18 @@ ros3_fprint_stats(FILE *stream, const ros3_statsbin *r = &file->raw[i]; const ros3_statsbin *m = &file->meta[i]; - if (m->min < min_meta) min_meta = m->min; - if (r->min < min_raw) min_raw = r->min; - if (m->max > max_meta) max_meta = m->max; - if (r->max > max_raw) max_raw = r->max; + if (m->min < min_meta) + min_meta = m->min; + if (r->min < min_raw) + min_raw = r->min; + if (m->max > max_meta) + max_meta = m->max; + if (r->max > max_raw) + max_raw = r->max; - count_raw += r->count; + count_raw += r->count; count_meta += m->count; - bytes_raw += r->bytes; + bytes_raw += r->bytes; bytes_meta += m->bytes; } if (count_raw > 0) @@ -1027,10 +981,10 @@ ros3_fprint_stats(FILE *stream, * PRINT OVERVIEW * ******************/ - HDfprintf(stream, "TOTAL READS: %llu (%llu meta, %llu raw)\n", - count_raw + count_meta, count_meta, count_raw); - HDfprintf(stream, "TOTAL BYTES: %llu (%llu meta, %llu raw)\n", - bytes_raw + bytes_meta, bytes_meta, bytes_raw); + HDfprintf(stream, "TOTAL READS: %llu (%llu meta, %llu raw)\n", count_raw + count_meta, count_meta, + count_raw); + HDfprintf(stream, "TOTAL BYTES: %llu (%llu meta, %llu raw)\n", bytes_raw + bytes_meta, bytes_meta, + bytes_raw); if (count_raw + count_meta == 0) goto done; @@ -1043,7 +997,8 @@ ros3_fprint_stats(FILE *stream, HDfprintf(stream, " min "); if (count_meta == 0) { HDfprintf(stream, " 0.000 "); - } else { + } + else { re_dub = (double)min_meta; for (suffix_i = 0; re_dub >= 1024.0; suffix_i++) re_dub /= 1024.0; @@ -1053,7 +1008,8 @@ ros3_fprint_stats(FILE *stream, if (count_raw == 0) { HDfprintf(stream, " 0.000 \n"); - } else { + } + else { re_dub = (double)min_raw; for (suffix_i = 0; re_dub >= 1024.0; suffix_i++) re_dub /= 1024.0; @@ -1091,10 +1047,8 @@ ros3_fprint_stats(FILE *stream, * PRINT INDIVIDUAL BIN STATS * ******************************/ - HDfprintf(stream, - "BINS # of reads total bytes average size\n"); - HDfprintf(stream, - " up-to meta raw meta raw meta raw\n"); + HDfprintf(stream, "BINS # of reads total bytes average size\n"); + HDfprintf(stream, " up-to meta raw meta raw meta raw\n"); for (i = 0; i <= ROS3_STATS_BIN_COUNT; i++) { const ros3_statsbin *m; @@ -1117,9 +1071,10 @@ ros3_fprint_stats(FILE *stream, range_end = ros3_stats_boundaries[i]; if (i == ROS3_STATS_BIN_COUNT) { - range_end = ros3_stats_boundaries[i-1]; + range_end = ros3_stats_boundaries[i - 1]; HDfprintf(stream, ">"); - } else { + } + else { HDfprintf(stream, " "); } @@ -1154,15 +1109,14 @@ ros3_fprint_stats(FILE *stream, re_dub /= 1024.0; HDassert(suffix_i < sizeof(suffixes)); - HDfprintf(stream, - " %8.3f%c %7d %7d %8.3f%c %8.3f%c %8.3f%c %8.3f%c\n", - re_dub, suffixes[suffix_i], /* bin ceiling */ - m->count, /* metadata reads */ - r->count, /* rawdata reads */ - bm_val, bm_suffix, /* metadata bytes */ - br_val, br_suffix, /* rawdata bytes */ - am_val, am_suffix, /* metadata average */ - ar_val, ar_suffix); /* rawdata average */ + HDfprintf(stream, " %8.3f%c %7d %7d %8.3f%c %8.3f%c %8.3f%c %8.3f%c\n", re_dub, + suffixes[suffix_i], /* bin ceiling */ + m->count, /* metadata reads */ + r->count, /* rawdata reads */ + bm_val, bm_suffix, /* metadata bytes */ + br_val, br_suffix, /* rawdata bytes */ + am_val, am_suffix, /* metadata average */ + ar_val, ar_suffix); /* rawdata average */ fflush(stream); } @@ -1173,7 +1127,6 @@ done: } /* ros3_fprint_stats */ #endif /* ROS3_STATS */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_close() @@ -1211,15 +1164,13 @@ H5FD_ros3_close(H5FD_t H5_ATTR_UNUSED *_file) /* Close the underlying request handle */ if (FAIL == H5FD_s3comms_s3r_close(file->s3r_handle)) { - HGOTO_ERROR(H5E_VFL, H5E_CANTCLOSEFILE, FAIL, - "unable to close S3 request handle") + HGOTO_ERROR(H5E_VFL, H5E_CANTCLOSEFILE, FAIL, "unable to close S3 request handle") } #if ROS3_STATS /* TODO: mechanism to re-target stats printout */ if (ros3_fprint_stats(stdout, file) == FAIL) { - HGOTO_ERROR(H5E_INTERNAL, H5E_ERROR, FAIL, - "problem while writing file statistics") + HGOTO_ERROR(H5E_INTERNAL, H5E_ERROR, FAIL, "problem while writing file statistics") } #endif /* ROS3_STATS */ @@ -1234,7 +1185,6 @@ done: } /* end H5FD_ros3_close() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_cmp() @@ -1266,12 +1216,10 @@ done: *------------------------------------------------------------------------- */ static int -H5FD_ros3_cmp( - const H5FD_t *_f1, - const H5FD_t *_f2) +H5FD_ros3_cmp(const H5FD_t *_f1, const H5FD_t *_f2) { - const H5FD_ros3_t *f1 = (const H5FD_ros3_t *)_f1; - const H5FD_ros3_t *f2 = (const H5FD_ros3_t *)_f2; + const H5FD_ros3_t * f1 = (const H5FD_ros3_t *)_f1; + const H5FD_ros3_t * f2 = (const H5FD_ros3_t *)_f2; const parsed_url_t *purl1 = NULL; const parsed_url_t *purl2 = NULL; int ret_value = 0; @@ -1310,12 +1258,10 @@ H5FD_ros3_cmp( HGOTO_DONE(-1); } } - else - if (purl1->port) { + else if (purl1->port) { HGOTO_DONE(-1); } - else - if (purl2->port) { + else if (purl2->port) { HGOTO_DONE(-1); } @@ -1325,12 +1271,10 @@ H5FD_ros3_cmp( HGOTO_DONE(-1); } } - else - if (purl1->path && !purl2->path) { + else if (purl1->path && !purl2->path) { HGOTO_DONE(-1); } - else - if (purl2->path && !purl1->path) { + else if (purl2->path && !purl1->path) { HGOTO_DONE(-1); } @@ -1340,12 +1284,10 @@ H5FD_ros3_cmp( HGOTO_DONE(-1); } } - else - if (purl1->query && !purl2->query) { + else if (purl1->query && !purl2->query) { HGOTO_DONE(-1); } - else - if (purl2->query && !purl1->query) { + else if (purl2->query && !purl1->query) { HGOTO_DONE(-1); } @@ -1355,12 +1297,10 @@ H5FD_ros3_cmp( HGOTO_DONE(-1); } } - else - if (f1->fa.aws_region[0] != '\0') { + else if (f1->fa.aws_region[0] != '\0') { HGOTO_DONE(-1); } - else - if (f2->fa.aws_region[0] != '\0') { + else if (f2->fa.aws_region[0] != '\0') { HGOTO_DONE(-1); } @@ -1370,12 +1310,10 @@ H5FD_ros3_cmp( HGOTO_DONE(-1); } } - else - if (f1->fa.secret_id[0] != '\0') { + else if (f1->fa.secret_id[0] != '\0') { HGOTO_DONE(-1); } - else - if (f2->fa.secret_id[0] != '\0') { + else if (f2->fa.secret_id[0] != '\0') { HGOTO_DONE(-1); } @@ -1385,12 +1323,10 @@ H5FD_ros3_cmp( HGOTO_DONE(-1); } } - else - if (f1->fa.secret_key[0] != '\0') { + else if (f1->fa.secret_key[0] != '\0') { HGOTO_DONE(-1); } - else - if (f2->fa.secret_key[0] != '\0') { + else if (f2->fa.secret_key[0] != '\0') { HGOTO_DONE(-1); } @@ -1399,7 +1335,6 @@ done: } /* H5FD_ros3_cmp() */ - /*------------------------------------------------------------------------- * Function: H5FD_ros3_query * @@ -1420,8 +1355,7 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_query(const H5FD_t H5_ATTR_UNUSED *_file, - unsigned long *flags /* out */) +H5FD_ros3_query(const H5FD_t H5_ATTR_UNUSED *_file, unsigned long *flags /* out */) { FUNC_ENTER_NOAPI_NOINIT_NOERR @@ -1440,7 +1374,6 @@ H5FD_ros3_query(const H5FD_t H5_ATTR_UNUSED *_file, } /* H5FD_ros3_query() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_get_eoa() @@ -1461,8 +1394,7 @@ H5FD_ros3_query(const H5FD_t H5_ATTR_UNUSED *_file, *------------------------------------------------------------------------- */ static haddr_t -H5FD_ros3_get_eoa(const H5FD_t *_file, - H5FD_mem_t H5_ATTR_UNUSED type) +H5FD_ros3_get_eoa(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type) { const H5FD_ros3_t *file = (const H5FD_ros3_t *)_file; @@ -1476,7 +1408,6 @@ H5FD_ros3_get_eoa(const H5FD_t *_file, } /* end H5FD_ros3_get_eoa() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_set_eoa() @@ -1495,9 +1426,7 @@ H5FD_ros3_get_eoa(const H5FD_t *_file, *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_set_eoa(H5FD_t *_file, - H5FD_mem_t H5_ATTR_UNUSED type, - haddr_t addr) +H5FD_ros3_set_eoa(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, haddr_t addr) { H5FD_ros3_t *file = (H5FD_ros3_t *)_file; @@ -1513,7 +1442,6 @@ H5FD_ros3_set_eoa(H5FD_t *_file, } /* H5FD_ros3_set_eoa() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_get_eof() @@ -1533,8 +1461,7 @@ H5FD_ros3_set_eoa(H5FD_t *_file, *------------------------------------------------------------------------- */ static haddr_t -H5FD_ros3_get_eof(const H5FD_t *_file, - H5FD_mem_t H5_ATTR_UNUSED type) +H5FD_ros3_get_eof(const H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type) { const H5FD_ros3_t *file = (const H5FD_ros3_t *)_file; @@ -1548,7 +1475,6 @@ H5FD_ros3_get_eof(const H5FD_t *_file, } /* end H5FD_ros3_get_eof() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_get_handle() @@ -1567,9 +1493,7 @@ H5FD_ros3_get_eof(const H5FD_t *_file, *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_get_handle(H5FD_t *_file, - hid_t H5_ATTR_UNUSED fapl, - void **file_handle) +H5FD_ros3_get_handle(H5FD_t *_file, hid_t H5_ATTR_UNUSED fapl, void **file_handle) { H5FD_ros3_t *file = (H5FD_ros3_t *)_file; herr_t ret_value = SUCCEED; @@ -1591,7 +1515,6 @@ done: } /* end H5FD_ros3_get_handle() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_read() @@ -1615,12 +1538,10 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_read(H5FD_t *_file, - H5FD_mem_t H5_ATTR_UNUSED type, - hid_t H5_ATTR_UNUSED dxpl_id, - haddr_t addr, /* start offset */ - size_t size, /* length of read */ - void *buf) /* out */ +H5FD_ros3_read(H5FD_t *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id, + haddr_t addr, /* start offset */ + size_t size, /* length of read */ + void * buf) /* out */ { H5FD_ros3_t *file = (H5FD_ros3_t *)_file; size_t filesize = 0; @@ -1631,7 +1552,6 @@ H5FD_ros3_read(H5FD_t *_file, unsigned bin_i = 0; #endif /* ROS3_STATS */ - FUNC_ENTER_NOAPI_NOINIT #if ROS3_DEBUG @@ -1661,9 +1581,7 @@ H5FD_ros3_read(H5FD_t *_file, break; } } - bin = (type == H5FD_MEM_DRAW) - ? &file->raw[bin_i] - : &file->meta[bin_i]; + bin = (type == H5FD_MEM_DRAW) ? &file->raw[bin_i] : &file->meta[bin_i]; /* Store collected stats in appropriate bin */ @@ -1689,7 +1607,6 @@ done: } /* end H5FD_ros3_read() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_write() @@ -1709,12 +1626,8 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_write(H5FD_t H5_ATTR_UNUSED *_file, - H5FD_mem_t H5_ATTR_UNUSED type, - hid_t H5_ATTR_UNUSED dxpl_id, - haddr_t H5_ATTR_UNUSED addr, - size_t H5_ATTR_UNUSED size, - const void H5_ATTR_UNUSED *buf) +H5FD_ros3_write(H5FD_t H5_ATTR_UNUSED *_file, H5FD_mem_t H5_ATTR_UNUSED type, hid_t H5_ATTR_UNUSED dxpl_id, + haddr_t H5_ATTR_UNUSED addr, size_t H5_ATTR_UNUSED size, const void H5_ATTR_UNUSED *buf) { herr_t ret_value = FAIL; @@ -1724,15 +1637,13 @@ H5FD_ros3_write(H5FD_t H5_ATTR_UNUSED *_file, HDfprintf(stdout, "H5FD_ros3_write() called.\n"); #endif - HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, FAIL, - "cannot write to read-only file.") + HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, FAIL, "cannot write to read-only file.") done: FUNC_LEAVE_NOAPI(ret_value) } /* H5FD_ros3_write() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_truncate() @@ -1754,9 +1665,7 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_truncate(H5FD_t H5_ATTR_UNUSED *_file, - hid_t H5_ATTR_UNUSED dxpl_id, - hbool_t H5_ATTR_UNUSED closing) +H5FD_ros3_truncate(H5FD_t H5_ATTR_UNUSED *_file, hid_t H5_ATTR_UNUSED dxpl_id, hbool_t H5_ATTR_UNUSED closing) { herr_t ret_value = SUCCEED; @@ -1766,15 +1675,13 @@ H5FD_ros3_truncate(H5FD_t H5_ATTR_UNUSED *_file, HDfprintf(stdout, "H5FD_ros3_truncate() called.\n"); #endif - HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, FAIL, - "cannot truncate read-only file.") + HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, FAIL, "cannot truncate read-only file.") done: FUNC_LEAVE_NOAPI(ret_value) } /* end H5FD_ros3_truncate() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_lock() @@ -1797,15 +1704,13 @@ done: *------------------------------------------------------------------------- */ static herr_t -H5FD_ros3_lock(H5FD_t H5_ATTR_UNUSED *_file, - hbool_t H5_ATTR_UNUSED rw) +H5FD_ros3_lock(H5FD_t H5_ATTR_UNUSED *_file, hbool_t H5_ATTR_UNUSED rw) { FUNC_ENTER_NOAPI_NOINIT_NOERR FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5FD_ros3_lock() */ - /*------------------------------------------------------------------------- * * Function: H5FD_ros3_unlock() @@ -1833,4 +1738,3 @@ H5FD_ros3_unlock(H5FD_t H5_ATTR_UNUSED *_file) } /* end H5FD_ros3_unlock() */ #endif /* H5_HAVE_ROS3_VFD */ - |