From f60e8bb05e3203054e27bf41d0ebc657537736ed Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Tue, 18 Dec 2018 13:34:34 -0800 Subject: Moved the optional enums to H5VLnative.h and converted to an int typedef and a set of #defines. --- src/H5Adeprec.c | 1 + src/H5Apublic.h | 34 +++++++++++++--------------------- src/H5D.c | 1 + src/H5Dio.c | 1 + src/H5Dpublic.h | 33 ++++++++++++--------------------- src/H5F.c | 1 + src/H5Fdeprec.c | 1 + src/H5Fint.c | 1 + src/H5Fpublic.h | 33 +++------------------------------ src/H5Gdeprec.c | 1 + src/H5Gpublic.h | 23 ++++------------------- src/H5O.c | 1 + src/H5Odeprec.c | 1 + src/H5Opublic.h | 12 +++--------- src/H5VLint.c | 2 +- src/H5VLnative.c | 16 ---------------- src/H5VLnative.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 17 files changed, 100 insertions(+), 117 deletions(-) diff --git a/src/H5Adeprec.c b/src/H5Adeprec.c index d4eac6a..0a92ec8 100644 --- a/src/H5Adeprec.c +++ b/src/H5Adeprec.c @@ -44,6 +44,7 @@ #include "H5Iprivate.h" /* IDs */ #include "H5Opkg.h" /* Object headers */ #include "H5VLprivate.h" /* Virtual object layer */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Apublic.h b/src/H5Apublic.h index 726f51b..7162f6e 100644 --- a/src/H5Apublic.h +++ b/src/H5Apublic.h @@ -22,10 +22,6 @@ #include "H5Opublic.h" /* Object Headers */ #include "H5Tpublic.h" /* Datatypes */ -#ifdef __cplusplus -extern "C" { -#endif - /* Information struct for attribute (for H5Aget_info/H5Aget_info_by_idx) */ typedef struct { hbool_t corder_valid; /* Indicate if creation order is valid */ @@ -38,23 +34,19 @@ typedef struct { typedef herr_t (*H5A_operator2_t)(hid_t location_id/*in*/, const char *attr_name/*in*/, const H5A_info_t *ainfo/*in*/, void *op_data/*in,out*/); -/* Enumeration for native VOL connector attribute optional VOL operations */ -typedef enum H5VL_native_attr_optional_t { - H5VL_NATIVE_ATTR_ITERATE_OLD /* H5Aiterate (deprecated routine) */ - /* (This enum value should have an - * "#ifndefH5_NO_DEPRECATED_SYMBOLS" - * around it, but the compiler - * complains about an empty enum - * when deprecated symbols are - * disabled currently. When - * another enum value is added, - * please put the #ifdef around - * this symbol. QAK - 2018/12/06 - */ -} H5VL_native_attr_optional_t; - - -/* Public function prototypes */ + +/********************/ +/* Public Variables */ +/********************/ + + +/*********************/ +/* Public Prototypes */ +/*********************/ +#ifdef __cplusplus +extern "C" { +#endif + H5_DLL hid_t H5Acreate2(hid_t loc_id, const char *attr_name, hid_t type_id, hid_t space_id, hid_t acpl_id, hid_t aapl_id); H5_DLL hid_t H5Acreate_by_name(hid_t loc_id, const char *obj_name, const char *attr_name, diff --git a/src/H5D.c b/src/H5D.c index db70847..b4880f0 100644 --- a/src/H5D.c +++ b/src/H5D.c @@ -28,6 +28,7 @@ #include "H5FLprivate.h" /* Free lists */ #include "H5Iprivate.h" /* IDs */ #include "H5VLprivate.h" /* Virtual Object Layer */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Dio.c b/src/H5Dio.c index 037d443..026f64e 100644 --- a/src/H5Dio.c +++ b/src/H5Dio.c @@ -29,6 +29,7 @@ #include "H5Iprivate.h" /* IDs */ #include "H5MMprivate.h" /* Memory management */ #include "H5Sprivate.h" /* Dataspace */ +#include "H5VLnative.h" /* Native VOL connector */ #ifdef H5_HAVE_PARALLEL /* Remove this if H5R_DATASET_REGION is no longer used in this file */ diff --git a/src/H5Dpublic.h b/src/H5Dpublic.h index 921974d..63f1a24 100644 --- a/src/H5Dpublic.h +++ b/src/H5Dpublic.h @@ -104,27 +104,6 @@ typedef enum H5D_vds_view_t { /* Callback for H5Pset_append_flush() in a dataset access property list */ typedef herr_t (*H5D_append_cb_t)(hid_t dataset_id, hsize_t *cur_dims, void *op_data); -/* Enumeration for native VOL connector dataset optional VOL operations */ -typedef enum H5VL_native_dataset_optional_t { - H5VL_NATIVE_DATASET_FORMAT_CONVERT, /* H5Dformat_convert (internal) */ - H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE, /* H5Dget_chunk_index_type */ - H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE, /* H5Dget_chunk_storage_size */ - H5VL_NATIVE_DATASET_CHUNK_READ, /* H5Dchunk_read */ - H5VL_NATIVE_DATASET_CHUNK_WRITE, /* H5Dchunk_write */ -} H5VL_native_dataset_optional_t; - - -/********************/ -/* Public Variables */ -/********************/ - -/*********************/ -/* Public Prototypes */ -/*********************/ -#ifdef __cplusplus -extern "C" { -#endif - /* Define the operator function pointer for H5Diterate() */ typedef herr_t (*H5D_operator_t)(void *elem, hid_t type_id, unsigned ndim, const hsize_t *point, void *operator_data); @@ -138,6 +117,18 @@ typedef herr_t (*H5D_scatter_func_t)(const void **src_buf/*out*/, typedef herr_t (*H5D_gather_func_t)(const void *dst_buf, size_t dst_buf_bytes_used, void *op_data); + +/********************/ +/* Public Variables */ +/********************/ + +/*********************/ +/* Public Prototypes */ +/*********************/ +#ifdef __cplusplus +extern "C" { +#endif + H5_DLL hid_t H5Dcreate2(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, hid_t lcpl_id, hid_t dcpl_id, hid_t dapl_id); H5_DLL hid_t H5Dcreate_anon(hid_t file_id, hid_t type_id, hid_t space_id, diff --git a/src/H5F.c b/src/H5F.c index aac25be..fc063a0 100644 --- a/src/H5F.c +++ b/src/H5F.c @@ -37,6 +37,7 @@ #include "H5Pprivate.h" /* Property lists */ #include "H5Tprivate.h" /* Datatypes */ #include "H5VLprivate.h" /* Virtual Object Layer */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Fdeprec.c b/src/H5Fdeprec.c index 077ad52..7cefb06 100644 --- a/src/H5Fdeprec.c +++ b/src/H5Fdeprec.c @@ -41,6 +41,7 @@ #include "H5Fpkg.h" /* File access */ #include "H5Iprivate.h" /* IDs */ #include "H5SMprivate.h" /* Shared object header messages */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Fint.c b/src/H5Fint.c index c0a9dc3..ddeddb6 100644 --- a/src/H5Fint.c +++ b/src/H5Fint.c @@ -38,6 +38,7 @@ #include "H5SMprivate.h" /* Shared Object Header Messages */ #include "H5Tprivate.h" /* Datatypes */ #include "H5VLprivate.h" /* Virtual Object Layer */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index ec543b6..e1b6dc3 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -217,41 +217,14 @@ typedef struct H5F_retry_info_t { /* Callback for H5Pset_object_flush_cb() in a file access property list */ typedef herr_t (*H5F_flush_cb_t)(hid_t object_id, void *udata); -/* Enumeration for native VOL connector file optional VOL operations */ -typedef enum H5VL_native_file_optional_t { - H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE, /* H5Fclear_elink_file_cache */ - H5VL_NATIVE_FILE_GET_FILE_IMAGE, /* H5Fget_file_image */ - H5VL_NATIVE_FILE_GET_FREE_SECTIONS, /* H5Fget_free_sections */ - H5VL_NATIVE_FILE_GET_FREE_SPACE, /* H5Fget_freespace */ - H5VL_NATIVE_FILE_GET_INFO, /* H5Fget_info1/2 */ - H5VL_NATIVE_FILE_GET_MDC_CONF, /* H5Fget_mdc_config */ - H5VL_NATIVE_FILE_GET_MDC_HR, /* H5Fget_mdc_hit_rate */ - H5VL_NATIVE_FILE_GET_MDC_SIZE, /* H5Fget_mdc_size */ - H5VL_NATIVE_FILE_GET_SIZE, /* H5Fget_filesize */ - H5VL_NATIVE_FILE_GET_VFD_HANDLE, /* H5Fget_vfd_handle */ - H5VL_NATIVE_FILE_GET_FILE_ID, /* H5Fget_file_id */ - H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE, /* H5Freset_mdc_hit_rate_stats */ - H5VL_NATIVE_FILE_SET_MDC_CONFIG, /* H5Fset_mdc_config */ - H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO, /* H5Fget_metadata_read_retry_info */ - H5VL_NATIVE_FILE_START_SWMR_WRITE, /* H5Fstart_swmr_write */ - H5VL_NATIVE_FILE_START_MDC_LOGGING, /* H5Fstart_mdc_logging */ - H5VL_NATIVE_FILE_STOP_MDC_LOGGING, /* H5Fstop_mdc_logging */ - H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS, /* H5Fget_mdc_logging_status */ - H5VL_NATIVE_FILE_FORMAT_CONVERT, /* H5Fformat_convert */ - H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS, /* H5Freset_page_buffering_stats */ - H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS, /* H5Fget_page_buffering_stats */ - H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO, /* H5Fget_mdc_image_info */ - H5VL_NATIVE_FILE_GET_EOA, /* H5Fget_eoa */ - H5VL_NATIVE_FILE_INCR_FILESIZE, /* H5Fincrement_filesize */ - H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS /* H5Fset_latest_format/libver_bounds */ -} H5VL_native_file_optional_t; - +/*********************/ +/* Public Prototypes */ +/*********************/ #ifdef __cplusplus extern "C" { #endif -/* Functions in H5F.c */ H5_DLL htri_t H5Fis_accessible(const char *container_name, hid_t fapl_id); H5_DLL hid_t H5Fcreate(const char *filename, unsigned flags, hid_t create_plist, hid_t access_plist); diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c index 07cad55..1c86707 100644 --- a/src/H5Gdeprec.c +++ b/src/H5Gdeprec.c @@ -44,6 +44,7 @@ #include "H5Lprivate.h" /* Links */ #include "H5Pprivate.h" /* Property lists */ #include "H5VLprivate.h" /* Virtual Object Layer */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Gpublic.h b/src/H5Gpublic.h index 58961ba..170b74d 100644 --- a/src/H5Gpublic.h +++ b/src/H5Gpublic.h @@ -37,10 +37,6 @@ /* Public Macros */ /*****************/ -#ifdef __cplusplus -extern "C" { -#endif - /*******************/ /* Public Typedefs */ /*******************/ @@ -62,21 +58,6 @@ typedef struct H5G_info_t { hbool_t mounted; /* Whether group has a file mounted on it */ } H5G_info_t; -/* Enumeration for native VOL connector group optional VOL operations */ -typedef enum H5VL_native_group_optional_t { - H5VL_NATIVE_GROUP_ITERATE_OLD, /* HG5Giterate (deprecated routine) */ - H5VL_NATIVE_GROUP_GET_OBJINFO /* HG5Gget_objinfo (deprecated routine) */ - /* (These two enum values should have an - * "#ifndefH5_NO_DEPRECATED_SYMBOLS" - * around them, but the compiler - * complains about an empty enum - * when deprecated symbols are - * disabled currently. When - * another enum value is added, - * please put the #ifdef around - * these symbols. QAK - 2018/12/06 - */ -} H5VL_native_group_optional_t; /********************/ /* Public Variables */ @@ -86,6 +67,10 @@ typedef enum H5VL_native_group_optional_t { /*********************/ /* Public Prototypes */ /*********************/ +#ifdef __cplusplus +extern "C" { +#endif + H5_DLL hid_t H5Gcreate2(hid_t loc_id, const char *name, hid_t lcpl_id, hid_t gcpl_id, hid_t gapl_id); H5_DLL hid_t H5Gcreate_anon(hid_t loc_id, hid_t gcpl_id, hid_t gapl_id); diff --git a/src/H5O.c b/src/H5O.c index be41dfd..30250a1 100644 --- a/src/H5O.c +++ b/src/H5O.c @@ -37,6 +37,7 @@ #include "H5Iprivate.h" /* IDs */ #include "H5Lprivate.h" /* Links */ #include "H5Opkg.h" /* Object headers */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Odeprec.c b/src/H5Odeprec.c index 9e070ef..bd04cdb 100644 --- a/src/H5Odeprec.c +++ b/src/H5Odeprec.c @@ -36,6 +36,7 @@ #include "H5Eprivate.h" /* Error handling */ #include "H5Iprivate.h" /* IDs */ #include "H5Opkg.h" /* Object headers */ +#include "H5VLnative.h" /* Native VOL connector */ /****************/ diff --git a/src/H5Opublic.h b/src/H5Opublic.h index fe0c72d..c868e72 100644 --- a/src/H5Opublic.h +++ b/src/H5Opublic.h @@ -150,25 +150,19 @@ typedef enum H5O_mcdt_search_ret_t { /* Callback to invoke when completing the search for a matching committed datatype from the committed dtype list */ typedef H5O_mcdt_search_ret_t (*H5O_mcdt_search_cb_t)(void *op_data); -/* Enumeration for native VOL connector object optional VOL operations */ -typedef enum H5VL_native_object_optional_t { - H5VL_NATIVE_OBJECT_GET_COMMENT, /* H5G|H5Oget_comment, H5Oget_comment_by_name */ - H5VL_NATIVE_OBJECT_GET_INFO, /* H5Oget_info(_by_idx, _by_name)(2?) */ - H5VL_NATIVE_OBJECT_SET_COMMENT /* H5G|H5Oset_comment, H5Oset_comment_by_name */ -} H5VL_native_object_optional_t; /********************/ /* Public Variables */ /********************/ +/*********************/ +/* Public Prototypes */ +/*********************/ #ifdef __cplusplus extern "C" { #endif -/*********************/ -/* Public Prototypes */ -/*********************/ H5_DLL hid_t H5Oopen(hid_t loc_id, const char *name, hid_t lapl_id); H5_DLL hid_t H5Oopen_by_addr(hid_t loc_id, haddr_t addr); H5_DLL hid_t H5Oopen_by_idx(hid_t loc_id, const char *group_name, diff --git a/src/H5VLint.c b/src/H5VLint.c index 17dfc1f..d51be0c 100644 --- a/src/H5VLint.c +++ b/src/H5VLint.c @@ -627,7 +627,7 @@ H5VL_register_connector(const void *_cls, hbool_t app_ref, hid_t vipl_id) done: if (ret_value < 0 && saved) { if (saved->name) - H5MM_xfree(saved->name); + H5MM_xfree((void *)(saved->name)); /* Casting away const OK -QAK */ H5FL_FREE(H5VL_class_t, saved); } diff --git a/src/H5VLnative.c b/src/H5VLnative.c index 90a5ca5..1e78d8e 100644 --- a/src/H5VLnative.c +++ b/src/H5VLnative.c @@ -803,13 +803,6 @@ H5VL__native_attr_optional(void H5_ATTR_UNUSED *obj, hid_t H5_ATTR_UNUSED dxpl_i break; } -#else - /* XXX: This case only exists because this is the only attribute optional - * value and we can't have empty enums. Delete it when we have another - * attribute optional enum value. - */ - case H5VL_NATIVE_ATTR_ITERATE_OLD: - HGOTO_ERROR(H5E_VOL, H5E_UNSUPPORTED, FAIL, "H5VL_NATIVE_ATTR_ITERATE_OLD is not a valid value when the library is built without deprecated routines") #endif /* H5_NO_DEPRECATED_SYMBOLS */ default: @@ -2469,15 +2462,6 @@ H5VL__native_group_optional(void *obj, hid_t H5_ATTR_UNUSED dxpl_id, break; } -#else - /* XXX: These cases only exist because they are the only group optional - * values and we can't have empty enums. Delete them when we have - * non-deprecated group optional enum values. - */ - case H5VL_NATIVE_GROUP_ITERATE_OLD: - HGOTO_ERROR(H5E_VOL, H5E_UNSUPPORTED, FAIL, "H5VL_NATIVE_GROUP_ITERATE_OLD is not a valid value when the library is built without deprecated routines") - case H5VL_NATIVE_GROUP_GET_OBJINFO: - HGOTO_ERROR(H5E_VOL, H5E_UNSUPPORTED, FAIL, "H5VL_NATIVE_GROUP_GET_OBJINFO is not a valid value when the library is built without deprecated routines") #endif /* H5_NO_DEPRECATED_SYMBOLS */ default: diff --git a/src/H5VLnative.h b/src/H5VLnative.h index 8ae3a66..e1f85f8 100644 --- a/src/H5VLnative.h +++ b/src/H5VLnative.h @@ -25,6 +25,61 @@ #define H5VL_NATIVE_VALUE H5_VOL_NATIVE /* enum value */ #define H5VL_NATIVE_VERSION 0 +/* Typedef and values for native VOL connector attribute optional VOL operations */ +typedef int H5VL_native_attr_optional_t; +#ifndef H5_NO_DEPRECATED_SYMBOLS +#define H5VL_NATIVE_ATTR_ITERATE_OLD 0 /* H5Aiterate (deprecated routine) */ +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + +/* Typedef and values for native VOL connector dataset optional VOL operations */ +typedef int H5VL_native_dataset_optional_t; +#define H5VL_NATIVE_DATASET_FORMAT_CONVERT 0 /* H5Dformat_convert (internal) */ +#define H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE 1 /* H5Dget_chunk_index_type */ +#define H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE 2 /* H5Dget_chunk_storage_size */ +#define H5VL_NATIVE_DATASET_CHUNK_READ 3 /* H5Dchunk_read */ +#define H5VL_NATIVE_DATASET_CHUNK_WRITE 4 /* H5Dchunk_write */ + +/* Typedef and values for native VOL connector file optional VOL operations */ +typedef int H5VL_native_file_optional_t; +#define H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE 0 /* H5Fclear_elink_file_cache */ +#define H5VL_NATIVE_FILE_GET_FILE_IMAGE 1 /* H5Fget_file_image */ +#define H5VL_NATIVE_FILE_GET_FREE_SECTIONS 2 /* H5Fget_free_sections */ +#define H5VL_NATIVE_FILE_GET_FREE_SPACE 3 /* H5Fget_freespace */ +#define H5VL_NATIVE_FILE_GET_INFO 4 /* H5Fget_info1/2 */ +#define H5VL_NATIVE_FILE_GET_MDC_CONF 5 /* H5Fget_mdc_config */ +#define H5VL_NATIVE_FILE_GET_MDC_HR 6 /* H5Fget_mdc_hit_rate */ +#define H5VL_NATIVE_FILE_GET_MDC_SIZE 7 /* H5Fget_mdc_size */ +#define H5VL_NATIVE_FILE_GET_SIZE 8 /* H5Fget_filesize */ +#define H5VL_NATIVE_FILE_GET_VFD_HANDLE 9 /* H5Fget_vfd_handle */ +#define H5VL_NATIVE_FILE_GET_FILE_ID 10 /* H5Fget_file_id */ +#define H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE 11 /* H5Freset_mdc_hit_rate_stats */ +#define H5VL_NATIVE_FILE_SET_MDC_CONFIG 12 /* H5Fset_mdc_config */ +#define H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO 13 /* H5Fget_metadata_read_retry_info */ +#define H5VL_NATIVE_FILE_START_SWMR_WRITE 14 /* H5Fstart_swmr_write */ +#define H5VL_NATIVE_FILE_START_MDC_LOGGING 15 /* H5Fstart_mdc_logging */ +#define H5VL_NATIVE_FILE_STOP_MDC_LOGGING 16 /* H5Fstop_mdc_logging */ +#define H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS 17 /* H5Fget_mdc_logging_status */ +#define H5VL_NATIVE_FILE_FORMAT_CONVERT 18 /* H5Fformat_convert */ +#define H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS 19 /* H5Freset_page_buffering_stats */ +#define H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS 20 /* H5Fget_page_buffering_stats */ +#define H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO 21 /* H5Fget_mdc_image_info */ +#define H5VL_NATIVE_FILE_GET_EOA 22 /* H5Fget_eoa */ +#define H5VL_NATIVE_FILE_INCR_FILESIZE 23 /* H5Fincrement_filesize */ +#define H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS 24 /* H5Fset_latest_format/libver_bounds */ + +/* Typedef and values for native VOL connector group optional VOL operations */ +typedef int H5VL_native_group_optional_t; +#ifndef H5_NO_DEPRECATED_SYMBOLS +#define H5VL_NATIVE_GROUP_ITERATE_OLD 0 /* HG5Giterate (deprecated routine) */ +#define H5VL_NATIVE_GROUP_GET_OBJINFO 1 /* HG5Gget_objinfo (deprecated routine) */ +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + +/* Typedef and values for native VOL connector object optional VOL operations */ +typedef int H5VL_native_object_optional_t; +#define H5VL_NATIVE_OBJECT_GET_COMMENT 0 /* H5G|H5Oget_comment, H5Oget_comment_by_name */ +#define H5VL_NATIVE_OBJECT_GET_INFO 1 /* H5Oget_info(_by_idx, _by_name)(2) */ +#define H5VL_NATIVE_OBJECT_SET_COMMENT 2 /* H5G|H5Oset_comment, H5Oset_comment_by_name */ + #ifdef __cplusplus extern "C" { -- cgit v0.12