diff options
Diffstat (limited to 'src/H5FDonion_history.h')
-rw-r--r-- | src/H5FDonion_history.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/H5FDonion_history.h b/src/H5FDonion_history.h new file mode 100644 index 0000000..bf27e6a --- /dev/null +++ b/src/H5FDonion_history.h @@ -0,0 +1,63 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Onion Virtual File Driver (VFD) + * + * Purpose: Interface for the onion file's history + */ + +#ifndef H5FDonion_history_H +#define H5FDonion_history_H + +/* Number of bytes to encode fixed-size components */ +#define H5FD_ONION_ENCODED_SIZE_HISTORY 20 + +#define H5FD_ONION_HISTORY_SIGNATURE "OWHS" +#define H5FD_ONION_HISTORY_VERSION_CURR 1 + +/* In-memory representation of the on-store revision record. + * Used in the history. + */ +typedef struct H5FD_onion_record_loc_t { + haddr_t phys_addr; + hsize_t record_size; + uint32_t checksum; +} H5FD_onion_record_loc_t; + +/* In-memory representation of the on-store history record/summary. + */ +typedef struct H5FD_onion_history_t { + uint8_t version; + uint64_t n_revisions; + H5FD_onion_record_loc_t *record_locs; + uint32_t checksum; +} H5FD_onion_history_t; + +#ifdef __cplusplus +extern "C" { +#endif +H5_DLL herr_t H5FD__onion_ingest_history(H5FD_onion_history_t *history_out, H5FD_t *raw_file, haddr_t addr, + haddr_t size); + +H5_DLL uint64_t H5FD__onion_write_history(H5FD_onion_history_t *history, H5FD_t *file, haddr_t off_start, + haddr_t filesize_curr); + +H5_DLL size_t H5FD__onion_history_decode(unsigned char *buf, H5FD_onion_history_t *history); +H5_DLL size_t H5FD__onion_history_encode(H5FD_onion_history_t *history, unsigned char *buf, + uint32_t *checksum); + +#ifdef __cplusplus +} +#endif + +#endif /* H5FDonion_history_H */ |