1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2 * Copyright by The HDF Group. * 3 * All rights reserved. * 4 * * 5 * This file is part of HDF5. The full HDF5 copyright notice, including * 6 * terms governing use, modification, and redistribution, is contained in * 7 * the COPYING file, which can be found at the root of the source code * 8 * distribution tree, or in https://www.hdfgroup.org/licenses. * 9 * If you do not have access to either file, you may request a copy from * 10 * help@hdfgroup.org. * 11 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 13 /* 14 * Purpose: The public header file for the native VOL connector. 15 */ 16 17 #ifndef H5VLnative_H 18 #define H5VLnative_H 19 20 /* Public headers needed by this file */ 21 #include "H5VLpublic.h" /* Virtual Object Layer */ 22 23 /*****************/ 24 /* Public Macros */ 25 /*****************/ 26 27 /* Identifier for the native VOL connector */ 28 #define H5VL_NATIVE (H5VL_native_register()) 29 30 /* Characteristics of the native VOL connector */ 31 #define H5VL_NATIVE_NAME "native" 32 #define H5VL_NATIVE_VALUE H5_VOL_NATIVE /* enum value */ 33 #define H5VL_NATIVE_VERSION 0 34 35 /* Values for VOL connector attribute optional VOL operations */ 36 #ifndef H5_NO_DEPRECATED_SYMBOLS 37 #define H5VL_NATIVE_ATTR_ITERATE_OLD 0 /* H5Aiterate (deprecated routine) */ 38 #endif /* H5_NO_DEPRECATED_SYMBOLS */ 39 40 /* Values for native VOL connector dataset optional VOL operations */ 41 #define H5VL_NATIVE_DATASET_FORMAT_CONVERT 0 /* H5Dformat_convert (internal) */ 42 #define H5VL_NATIVE_DATASET_GET_CHUNK_INDEX_TYPE 1 /* H5Dget_chunk_index_type */ 43 #define H5VL_NATIVE_DATASET_GET_CHUNK_STORAGE_SIZE 2 /* H5Dget_chunk_storage_size */ 44 #define H5VL_NATIVE_DATASET_GET_NUM_CHUNKS 3 /* H5Dget_num_chunks */ 45 #define H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_IDX 4 /* H5Dget_chunk_info */ 46 #define H5VL_NATIVE_DATASET_GET_CHUNK_INFO_BY_COORD 5 /* H5Dget_chunk_info_by_coord */ 47 #define H5VL_NATIVE_DATASET_CHUNK_READ 6 /* H5Dchunk_read */ 48 #define H5VL_NATIVE_DATASET_CHUNK_WRITE 7 /* H5Dchunk_write */ 49 #define H5VL_NATIVE_DATASET_GET_VLEN_BUF_SIZE 8 /* H5Dvlen_get_buf_size */ 50 #define H5VL_NATIVE_DATASET_GET_OFFSET 9 /* H5Dget_offset */ 51 52 /* Values for native VOL connector file optional VOL operations */ 53 #define H5VL_NATIVE_FILE_CLEAR_ELINK_CACHE 0 /* H5Fclear_elink_file_cache */ 54 #define H5VL_NATIVE_FILE_GET_FILE_IMAGE 1 /* H5Fget_file_image */ 55 #define H5VL_NATIVE_FILE_GET_FREE_SECTIONS 2 /* H5Fget_free_sections */ 56 #define H5VL_NATIVE_FILE_GET_FREE_SPACE 3 /* H5Fget_freespace */ 57 #define H5VL_NATIVE_FILE_GET_INFO 4 /* H5Fget_info1/2 */ 58 #define H5VL_NATIVE_FILE_GET_MDC_CONF 5 /* H5Fget_mdc_config */ 59 #define H5VL_NATIVE_FILE_GET_MDC_HR 6 /* H5Fget_mdc_hit_rate */ 60 #define H5VL_NATIVE_FILE_GET_MDC_SIZE 7 /* H5Fget_mdc_size */ 61 #define H5VL_NATIVE_FILE_GET_SIZE 8 /* H5Fget_filesize */ 62 #define H5VL_NATIVE_FILE_GET_VFD_HANDLE 9 /* H5Fget_vfd_handle */ 63 #define H5VL_NATIVE_FILE_RESET_MDC_HIT_RATE 10 /* H5Freset_mdc_hit_rate_stats */ 64 #define H5VL_NATIVE_FILE_SET_MDC_CONFIG 11 /* H5Fset_mdc_config */ 65 #define H5VL_NATIVE_FILE_GET_METADATA_READ_RETRY_INFO 12 /* H5Fget_metadata_read_retry_info */ 66 #define H5VL_NATIVE_FILE_START_SWMR_WRITE 13 /* H5Fstart_swmr_write */ 67 #define H5VL_NATIVE_FILE_START_MDC_LOGGING 14 /* H5Fstart_mdc_logging */ 68 #define H5VL_NATIVE_FILE_STOP_MDC_LOGGING 15 /* H5Fstop_mdc_logging */ 69 #define H5VL_NATIVE_FILE_GET_MDC_LOGGING_STATUS 16 /* H5Fget_mdc_logging_status */ 70 #define H5VL_NATIVE_FILE_FORMAT_CONVERT 17 /* H5Fformat_convert */ 71 #define H5VL_NATIVE_FILE_RESET_PAGE_BUFFERING_STATS 18 /* H5Freset_page_buffering_stats */ 72 #define H5VL_NATIVE_FILE_GET_PAGE_BUFFERING_STATS 19 /* H5Fget_page_buffering_stats */ 73 #define H5VL_NATIVE_FILE_GET_MDC_IMAGE_INFO 20 /* H5Fget_mdc_image_info */ 74 #define H5VL_NATIVE_FILE_GET_EOA 21 /* H5Fget_eoa */ 75 #define H5VL_NATIVE_FILE_INCR_FILESIZE 22 /* H5Fincrement_filesize */ 76 #define H5VL_NATIVE_FILE_SET_LIBVER_BOUNDS 23 /* H5Fset_latest_format/libver_bounds */ 77 #define H5VL_NATIVE_FILE_GET_MIN_DSET_OHDR_FLAG 24 /* H5Fget_dset_no_attrs_hint */ 78 #define H5VL_NATIVE_FILE_SET_MIN_DSET_OHDR_FLAG 25 /* H5Fset_dset_no_attrs_hint */ 79 #define H5VL_NATIVE_FILE_GET_MPI_ATOMICITY 26 /* H5Fget_mpi_atomicity */ 80 #define H5VL_NATIVE_FILE_SET_MPI_ATOMICITY 27 /* H5Fset_mpi_atomicity */ 81 #define H5VL_NATIVE_FILE_POST_OPEN 28 /* Adjust file after open, with wrapping context */ 82 83 /* Values for native VOL connector group optional VOL operations */ 84 #ifndef H5_NO_DEPRECATED_SYMBOLS 85 #define H5VL_NATIVE_GROUP_ITERATE_OLD 0 /* HG5Giterate (deprecated routine) */ 86 #define H5VL_NATIVE_GROUP_GET_OBJINFO 1 /* HG5Gget_objinfo (deprecated routine) */ 87 #endif /* H5_NO_DEPRECATED_SYMBOLS */ 88 89 /* Values for native VOL connector object optional VOL operations */ 90 #define H5VL_NATIVE_OBJECT_GET_COMMENT 0 /* H5G|H5Oget_comment, H5Oget_comment_by_name */ 91 #define H5VL_NATIVE_OBJECT_SET_COMMENT 1 /* H5G|H5Oset_comment, H5Oset_comment_by_name */ 92 #define H5VL_NATIVE_OBJECT_DISABLE_MDC_FLUSHES 2 /* H5Odisable_mdc_flushes */ 93 #define H5VL_NATIVE_OBJECT_ENABLE_MDC_FLUSHES 3 /* H5Oenable_mdc_flushes */ 94 #define H5VL_NATIVE_OBJECT_ARE_MDC_FLUSHES_DISABLED 4 /* H5Oare_mdc_flushes_disabled */ 95 #define H5VL_NATIVE_OBJECT_GET_NATIVE_INFO 5 /* H5Oget_native_info(_by_idx, _by_name) */ 96 97 /*******************/ 98 /* Public Typedefs */ 99 /*******************/ 100 101 /********************/ 102 /* Public Variables */ 103 /********************/ 104 105 /*********************/ 106 /* Public Prototypes */ 107 /*********************/ 108 109 /*******************/ 110 /* Public Typedefs */ 111 /*******************/ 112 113 /********************/ 114 /* Public Variables */ 115 /********************/ 116 117 /*********************/ 118 /* Public Prototypes */ 119 /*********************/ 120 121 #ifdef __cplusplus 122 extern "C" { 123 #endif 124 125 /* Token <--> address converters */ 126 /** 127 * \ingroup H5VLNAT 128 */ 129 H5_DLL herr_t H5VLnative_addr_to_token(hid_t loc_id, haddr_t addr, H5O_token_t *token); 130 /** 131 * \ingroup H5VLNAT 132 */ 133 H5_DLL herr_t H5VLnative_token_to_addr(hid_t loc_id, H5O_token_t token, haddr_t *addr); 134 135 /* Not really public but must be included here */ 136 H5_DLL hid_t H5VL_native_register(void); 137 138 #ifdef __cplusplus 139 } 140 #endif 141 142 #endif /* H5VLnative_H */ 143