diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a0e4caedc..35b345c30a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,11 @@ if (POLICY CMP0083) cmake_policy (SET CMP0083 NEW) endif () +# Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24: +if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") + cmake_policy(SET CMP0135 NEW) +endif() + #----------------------------------------------------------------------------- # Instructions for use : Normal Build # diff --git a/CTestConfig.cmake b/CTestConfig.cmake index 514a9d6cf5..b780b86eda 100644 --- a/CTestConfig.cmake +++ b/CTestConfig.cmake @@ -12,7 +12,7 @@ ## This file should be placed in the root directory of your project. ## Then modify the CMakeLists.txt file in the root directory of your ## project to incorporate the testing dashboard. -## # The following are required to use Dart and the CDash dashboard. +## # The following are required to use Dart and the CDash dashboard ## ENABLE_TESTING() ## INCLUDE(CTest) set (CTEST_PROJECT_NAME "HDF5") diff --git a/config/cmake/UseJava.cmake b/config/cmake/UseJava.cmake index 2351ce8664..1de08db8d4 100644 --- a/config/cmake/UseJava.cmake +++ b/config/cmake/UseJava.cmake @@ -1448,6 +1448,7 @@ function(create_javadoc _target) add_custom_target(${_target}_javadoc ALL COMMAND ${Java_JAVADOC_EXECUTABLE} + -Xdoclint:none ${_javadoc_options} ${_javadoc_files} ${_javadoc_packages} diff --git a/configure.ac b/configure.ac index e2fbf04952..ab177fc58c 100644 --- a/configure.ac +++ b/configure.ac @@ -1213,6 +1213,7 @@ if test "X$HDF5_DOXYGEN" = "Xyes"; then AC_SUBST([DOXYGEN_PACKAGE]) AC_SUBST([DOXYGEN_VERSION_STRING]) + AC_SUBST([DOXYGEN_DIR]) AC_SUBST([DOXYGEN_INCLUDE_ALIASES]) AC_SUBST([DOXYGEN_PROJECT_LOGO]) AC_SUBST([DOXYGEN_PROJECT_BRIEF]) @@ -1237,6 +1238,7 @@ if test "X$HDF5_DOXYGEN" = "Xyes"; then # SRCDIR Environment variables used inside doxygen macro for the source location: DOXYGEN_PACKAGE=${PACKAGE_NAME} DOXYGEN_VERSION_STRING=${PACKAGE_VERSION} + DOXYGEN_DIR='$(SRCDIR)/doxygen' DOXYGEN_INCLUDE_ALIASES='$(SRCDIR)/doxygen/aliases' DOXYGEN_PROJECT_LOGO='$(SRCDIR)/doxygen/img/HDFG-logo.png' DOXYGEN_PROJECT_BRIEF='' @@ -1249,14 +1251,14 @@ if test "X$HDF5_DOXYGEN" = "Xyes"; then DOXYGEN_HTML_HEADER='$(SRCDIR)/doxygen/hdf5_header.html' DOXYGEN_HTML_FOOTER='$(SRCDIR)/doxygen/hdf5_footer.html' DOXYGEN_HTML_EXTRA_STYLESHEET='$(SRCDIR)/doxygen/hdf5doxy.css' - DOXYGEN_HTML_EXTRA_FILES='$(SRCDIR)/doxygen/hdf5_navtree_hacks.js $(SRCDIR)/doxygen/img/FF-IH_FileGroup.gif $(SRCDIR)/doxygen/img/FF-IH_FileObject.gif $(SRCDIR)/doxygen/img/FileFormatSpecChunkDiagram.jpg $(SRCDIR)/doxygen/img/ftv2node.png $(SRCDIR)/doxygen/img/ftv2pnode.png $(SRCDIR)/doxygen/img/HDFG-logo.png $(SRCDIR)/doxygen/img/IOFlow2.gif $(SRCDIR)/doxygen/img/IOFlow3.gif $(SRCDIR)/doxygen/img/IOFlow.gif $(SRCDIR)/doxygen/img/PaletteExample1.gif $(SRCDIR)/doxygen/img/Palettes.fm.anc.gif' + DOXYGEN_HTML_EXTRA_FILES='$(SRCDIR)/doxygen/hdf5_navtree_hacks.js' DOXYGEN_TAG_FILE=hdf5.tag DOXYGEN_SERVER_BASED_SEARCH=NO DOXYGEN_EXTERNAL_SEARCH=NO DOXYGEN_SEARCHENGINE_URL= DOXYGEN_STRIP_FROM_PATH='$(SRCDIR)' DOXYGEN_STRIP_FROM_INC_PATH='$(SRCDIR)' - DOXYGEN_PREDEFINED='H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD' + DOXYGEN_PREDEFINED='H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD H5_DOXYGEN_FORTRAN' DX_INIT_DOXYGEN([HDF5], [./doxygen/Doxyfile], [hdf5lib_docs]) fi diff --git a/doxygen/CMakeLists.txt b/doxygen/CMakeLists.txt index c1a2071e09..86d34a310d 100644 --- a/doxygen/CMakeLists.txt +++ b/doxygen/CMakeLists.txt @@ -7,11 +7,12 @@ project (HDF5_DOXYGEN C) if (DOXYGEN_FOUND) set (DOXYGEN_PACKAGE ${HDF5_PACKAGE_NAME}) set (DOXYGEN_VERSION_STRING ${HDF5_PACKAGE_VERSION_STRING}) + set (DOXYGEN_DIR ${HDF5_DOXYGEN_DIR}) set (DOXYGEN_INCLUDE_ALIASES_PATH ${HDF5_DOXYGEN_DIR}) set (DOXYGEN_INCLUDE_ALIASES aliases) set (DOXYGEN_VERBATIM_VARS DOXYGEN_INCLUDE_ALIASES) set (DOXYGEN_PROJECT_LOGO ${HDF5_DOXYGEN_DIR}/img/HDFG-logo.png) - set (DOXYGEN_PROJECT_BRIEF "C-API Reference") + set (DOXYGEN_PROJECT_BRIEF "API Reference") set (DOXYGEN_INPUT_DIRECTORY "${HDF5_SOURCE_DIR} ${HDF5_DOXYGEN_DIR}/dox ${HDF5_GENERATED_SOURCE_DIR}") set (DOXYGEN_OPTIMIZE_OUTPUT_FOR_C YES) set (DOXYGEN_MACRO_EXPANSION YES) @@ -28,7 +29,7 @@ if (DOXYGEN_FOUND) set (DOXYGEN_SEARCHENGINE_URL) set (DOXYGEN_STRIP_FROM_PATH ${HDF5_SOURCE_DIR}) set (DOXYGEN_STRIP_FROM_INC_PATH ${HDF5_SOURCE_DIR}) - set (DOXYGEN_PREDEFINED "H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD H5_HAVE_SUBFILING_VFD H5_HAVE_IOC_VFD") + set (DOXYGEN_PREDEFINED "H5_HAVE_DIRECT H5_HAVE_LIBHDFS H5_HAVE_MAP_API H5_HAVE_PARALLEL H5_HAVE_ROS3_VFD H5_DOXYGEN_FORTRAN H5_HAVE_SUBFILING_VFD H5_HAVE_IOC_VFD") # This configure and individual custom targets work together # Replace variables inside @@ with the current values diff --git a/doxygen/Doxyfile.in b/doxygen/Doxyfile.in index 7657fa53e0..08f554568a 100644 --- a/doxygen/Doxyfile.in +++ b/doxygen/Doxyfile.in @@ -280,13 +280,13 @@ OPTIMIZE_OUTPUT_FOR_C = YES # qualified scopes will look different, etc. # The default value is: NO. -OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_OUTPUT_JAVA = YES # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. -OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_FOR_FORTRAN = YES # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. @@ -875,7 +875,11 @@ FILE_PATTERNS = H5*public.h \ H5VLconnector.h \ H5VLconnector_passthru.h \ H5VLnative.h \ + H5Zdevelop.h \ H5version.h \ + H5*.java \ + HDF*.java \ + *.F90 \ *.dox # The RECURSIVE tag can be used to specify whether or not subdirectories should @@ -944,7 +948,7 @@ EXAMPLE_RECURSIVE = NO # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = @HDF5_DOXYGEN_DIR@/img +IMAGE_PATH = @DOXYGEN_DIR@/img # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program diff --git a/doxygen/aliases b/doxygen/aliases index 6730be5085..5ee60d5469 100644 --- a/doxygen/aliases +++ b/doxygen/aliases @@ -379,4 +379,4 @@ ALIASES += obj_info_fields="
| Header Message Name: Dataspace | |
| Header Message Type: 0x0001 | |
| Length: Varies according to the number of - dimensions, as described in the following table. | |
| Status: Required for dataset objects; - may not be repeated. | |
| Description: | -The dataspace message describes the number of dimensions (in - other words, “rank”) and size of each dimension that - the data object has. This message is only used for datasets which - have a simple, rectilinear, array-like layout; datasets requiring - a more complex layout are not yet supported. - | -
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Dimensionality | -Flags | -Reserved | -
| Reserved | -|||
Dimension #1 SizeL |
- |||
| . . . |
- |||
Dimension #n SizeL |
- |||
Dimension #1 Maximum SizeL (optional) |
- |||
| . . . |
- |||
Dimension #n Maximum SizeL (optional) |
- |||
Permutation Index #1L (optional) |
- |||
| . . . |
- |||
Permutation Index #nL (optional) |
- |||
| - | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
| Field Name | -Description | -
|---|---|
| Format of Data: See the tables below. | +|
Version
This value is used to determine the format of the - Dataspace Message. When the format of the - information in the message is changed, the version number - is incremented and can be used to determine how the - information in the object header is formatted. This - document describes version one (1) (there was no version - zero (0)). -
-Dimensionality |
-
- This value is the number of dimensions that the data - object has. - - |
- ||
| byte | +byte | +byte | +byte | +
|---|---|---|---|
Flags |
-
- This field is used to store flags to indicate the - presence of parts of this message. Bit 0 (the least - significant bit) is used to indicate that maximum - dimensions are present. Bit 1 is used to indicate that - permutation indices are present. - - |
- ||
| Version | +Dimensionality | +Flags | +Reserved | +
Dimension #n Size |
-
- This value is the current size of the dimension of the - data as stored in the file. The first dimension stored in - the list of dimensions is the slowest changing dimension - and the last dimension stored is the fastest changing - dimension. - - |
- ||
| Reserved | +|||
Dimension #n Maximum Size |
-
- This value is the maximum size of the dimension of the - data as stored in the file. This value may be the special - “unlimited” size which indicates - that the data may expand along this dimension indefinitely. - If these values are not stored, the maximum size of each - dimension is assumed to be the dimension’s current size. - - |
- ||
Dimension #1 SizeL + |
+ |||
| . . . |
+ |||
Dimension #n SizeL + |
+ |||
Dimension #1 Maximum SizeL (optional) + |
+ |||
| . . . |
+ |||
Dimension #n Maximum SizeL (optional) + |
+ |||
Permutation Index #1L (optional) + |
+ |||
| . . . |
+ |||
Permutation Index #nL (optional) + |
+ |||
Permutation Index #n
This value is the index permutation used to map - each dimension from the canonical representation to an - alternate axis for each dimension. If these values are - not stored, the first dimension stored in the list of - dimensions is the slowest changing dimension and the last - dimension stored is the fastest changing dimension. -
-| + | (Items marked with an ‘L’ in the + above table are of the size specified in “Size of + Lengths” field in the superblock.) | +
| Field Name | +Description | +
|---|---|
Version |
+
+ This value is used to determine the format of the Dataspace + Message. When the format of the information in the message is + changed, the version number is incremented and can be used to + determine how the information in the object header is formatted. + This document describes version one (1) (there was no version zero + (0)). + |
+
Dimensionality |
+
+ This value is the number of dimensions that the data object + has. + |
+
Flags |
+
+ This field is used to store flags to indicate the presence of + parts of this message. Bit 0 (the least significant bit) is used to + indicate that maximum dimensions are present. Bit 1 is used to + indicate that permutation indices are present. + |
+
Dimension #n Size |
+
+ This value is the current size of the dimension of the data + as stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Dimension #n Maximum Size |
+
+ + This value is the maximum size of the dimension of the data as + stored in the file. This value may be the special “unlimited” size which indicates + that the data may expand along this dimension indefinitely. If + these values are not stored, the maximum size of each dimension is + assumed to be the dimension’s current size. + + |
+
Permutation Index #n |
+
+ This value is the index permutation used to map each + dimension from the canonical representation to an alternate axis + for each dimension. If these values are not stored, the first + dimension stored in the list of dimensions is the slowest changing + dimension and the last dimension stored is the fastest changing + dimension. + |
+
Version 2 of the dataspace message dropped the optional
+
+
Version 2 of the dataspace message dropped the optional permutation index value support, as it was never implemented in the HDF5 Library:
-| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Dimensionality | -Flags | -Type | -
Dimension #1 SizeL |
- |||
| . . . |
- |||
Dimension #n SizeL |
- |||
Dimension #1 Maximum SizeL (optional) |
- |||
| . . . |
- |||
Dimension #n Maximum SizeL (optional) |
- |||
| - | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
| Field Name | -Description | -||
|---|---|---|---|
| Version | +Dimensionality | +Flags | +Type | +
Version |
-
- This value is used to determine the format of the - Dataspace Message. This field should be ‘2’ for version 2 - format messages. - - |
- ||
Dimension #1 SizeL + |
+ |||
| . . . |
+ |||
Dimension #n SizeL + |
+ |||
Dimension #1 Maximum SizeL (optional) + |
+ |||
| . . . |
+ |||
Dimension #n Maximum SizeL (optional) + |
+ |||
Dimensionality
This value is the number of dimensions that the data object has. -
-| + | (Items marked with an ‘L’ in the + above table are of the size specified in “Size of + Lengths” field in the superblock.) | +
Flags
This field is used to store flags to indicate the - presence of parts of this message. Bit 0 (the least - significant bit) is used to indicate that maximum - dimensions are present. -
-| Field Name | +Description | +||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Type |
-
- This field indicates the type of the dataspace: -
|
- ||||||||||
Dimensionality |
+
+ This value is the number of dimensions that the data object + has. + |
+ ||||||||||
Dimension #n Size |
-
- This value is the current size of the dimension of the - data as stored in the file. The first dimension stored in - the list of dimensions is the slowest changing dimension - and the last dimension stored is the fastest changing - dimension. - - |
- ||||||||||
Flags |
+
+ This field is used to store flags to indicate the presence of + parts of this message. Bit 0 (the least significant bit) is used to + indicate that maximum dimensions are present. + |
+ ||||||||||
Dimension #n Maximum Size |
-
- This value is the maximum size of the dimension of the - data as stored in the file. This value may be the special - “unlimited” size which indicates - that the data may expand along this dimension indefinitely. - If these values are not stored, the maximum size of each - dimension is assumed to be the dimension’s current size. - - |
- ||||||||||
Type |
+
+ This field indicates the type of the dataspace: +
| ||||||||||
0 |
+ A scalar dataspace; in other words, a dataspace + with a single, dimensionless element. + | +||||||||||
1 |
+ A simple dataspace; in other words, a dataspace + with a rank > 0 and an appropriate # of dimensions. + | +||||||||||
2 |
+ A null dataspace; in other words, a dataspace + with no elements. + | +
Dimension #n Size
This value is the current size of the dimension of the data + as stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension.
+Dimension #n Maximum Size
+ This value is the maximum size of the dimension of the data as + stored in the file. This value may be the special “unlimited” size which indicates + that the data may expand along this dimension indefinitely. If + these values are not stored, the maximum size of each dimension is + assumed to be the dimension’s current size. +
+| byte | -byte | -byte | -byte | +
|---|---|---|---|
| byte | +byte | +byte | +byte |
| Mesh Type | +|||
| Mesh Type | |||
| Logical Dimensionality | +|||
| Logical Dimensionality | |||
| byte | -byte | -byte | -byte | +
|---|---|---|---|
| byte | +byte | +byte | +byte |
| Mesh Embedding | -Coordinate System | -Structure | -Regularity | +
| Mesh Embedding | +Coordinate System | +Structure | +Regularity |
The following grid combinations are currently allowed:
-The following grid combinations are currently allowed:
+| byte | -byte | -byte | -byte | +
|---|---|---|---|
| byte | +byte | +byte | +byte |
| Embedded Dimensionality | +|||
| Embedded Dimensionality | |||
| Embedded Dimension Size #1 | +|||
| Embedded Dimension Size #1 | |||
| . . . |
+ |||
| . . . |
|||
| Embedded Dimension Size #n | +|||
| Embedded Dimension Size #n | |||
| Embedded Origin Location #1 | +|||
| Embedded Origin Location #1 | |||
| . . . |
+ |||
| . . . |
|||
| Embedded Origin Location #n | +|||
| Embedded Origin Location #n | |||
| byte | -byte | -byte | -byte | +
|---|---|---|---|
| byte | +byte | +byte | +byte |
| Logical Dimension Size #1 | +|||
| Logical Dimension Size #1 | |||
| Logical Dimension Maximum #1 | +|||
| Logical Dimension Maximum #1 | |||
| . . . |
+ |||
| . . . |
|||
| Logical Dimension Size #n | +|||
| Logical Dimension Size #n | |||
| Logical Dimension Maximum #n | +|||
| Logical Dimension Maximum #n | |||
| byte | -byte | -byte | -byte | +
|---|---|---|---|
| byte | +byte | +byte | +byte |
| # of Grid Points in Dimension #1 | +|||
| # of Grid Points in Dimension #1 | |||
| . . . |
+ |||
| . . . |
|||
| # of Grid Points in Dimension #n | +|||
| # of Grid Points in Dimension #n | |||
| Datatype of Grid Point Locations | +|||
| Datatype of Grid Point Locations | |||
| Location of Grid Points in Dimension #1 | +|||
| Location of Grid Points in Dimension #1 | |||
| . . . |
+ |||
| . . . |
|||
| Location of Grid Points in Dimension #n | +|||
| Location of Grid Points in Dimension #n | |||
| byte | -byte | -byte | -byte | +
|---|---|---|---|
| byte | +byte | +byte | +byte |
| # of Grid Points | +|||
| # of Grid Points | |||
| Datatype of Grid Point Locations | +|||
| Datatype of Grid Point Locations | |||
| Grid Point Locations . . |
+ |||
| Grid Point Locations . . |
|||
| Header Message Name: Link Info | |
| Header Message Type: 0x002 | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| Description: | -The link info message tracks variable information about the - current state of the links for a “new style” - group’s behavior. Variable information will be stored in - this message and constant information will be stored in the - Group Info message. - |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Flags | -This space inserted only to align table nicely | -|
Maximum Creation Index (8 bytes, optional) |
- |||
Fractal Heap AddressO |
- |||
Address of v2 B-tree for Name IndexO |
- |||
Address of v2 B-tree for Creation Order IndexO (optional) |
- |||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
| Field Name | -Description | -||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number for this message. This document describes - version 0. - |
- ||||||||
Flags |
- This field determines various optional aspects of the link - info message: - -
|
- ||||||||
Maximum Creation Index |
- This 64-bit value is the maximum creation order index value - stored for a link in this group. -This field is present if bit 0 of flags is set. - |
- ||||||||
Fractal Heap Address |
-
- - This is the address of the fractal heap to store dense links. - Each link stored in the fractal heap is stored as a - Link Message. - -- If there are no links in the group, or the group’s links - are stored “compactly” (as object header messages), this - value will be the undefined - address. - - |
- ||||||||
Address of v2 B-tree for Name Index |
- This is the address of the version 2 B-tree to index names of links. -If there are no links in the group, or the group’s links - are stored “compactly” (as object header messages), this - value will be the undefined - address. - - |
- ||||||||
Address of v2 B-tree for Creation Order Index |
- This is the address of the version 2 B-tree to index creation order of links. -If there are no links in the group, or the group’s links - are stored “compactly” (as object header messages), this - value will be the undefined - address. - -This field exists if bit 1 of flags is set. - |
-
| Header Message Name: Datatype | |
| Header Message Type: 0x0003 - | |
| Length: Variable | |
| Status: Required for dataset or committed - datatype (formerly named datatype) objects; may not be repeated. - | |
| Description: | -The datatype message defines the datatype for each element - of a dataset or a common datatype for sharing between multiple - datasets. A datatype can describe an atomic type like a fixed- - or floating-point type or more complex types like a C struct - (compound datatype), array (array datatype) or C++ vector - (variable-length datatype). -Datatype messages that are part of a dataset object do not - describe how elements are related to one another; the dataspace - message is used for that purpose. Datatype messages that are part of - a committed datatype (formerly named datatype) message describe - a common datatype that can be shared by multiple datasets in the - file. - |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Class and Version | -Class Bit Field, Bits 0-7 | -Class Bit Field, Bits 8-15 | -Class Bit Field, Bits 16-23 | -
| Size | -|||
Properties |
- |||
| Field Name | -Description | -||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Class and Version |
-
- The version of the datatype message and the datatype’s class - information are packed together in this field. The version - number is packed in the top 4 bits of the field and the class - is contained in the bottom 4 bits. - -The version number information is used for changes in the - format of the datatype message and is described here: -
The class of the datatype determines the format for the class - bit field and properties portion of the datatype message, which - are described below. The - following classes are currently defined: - -
|
- ||||||||||||||||||||||||||||||||||
Class Bit Fields |
-
- The information in these bit fields is specific to each datatype - class and is described below. All bits not defined for a - datatype class are set to zero. - - |
- ||||||||||||||||||||||||||||||||||
Size |
-
- The size of a datatype element in bytes. - - |
- ||||||||||||||||||||||||||||||||||
Properties |
-
- This variable-sized sequence of bytes encodes information - specific to each datatype class and is described for each class - below. If there is no property information specified for a - datatype class, the size of this field is zero bytes. - - |
-
Class specific information for Fixed-Point Numbers (Class 0):
- -| Bits | -Meaning | -
|---|---|
0 |
- Byte Order. If zero, byte order is little-endian; - otherwise, byte order is big endian. |
-
1, 2 |
- Padding type. Bit 1 is the lo_pad bit and bit 2 - is the hi_pad bit. If a datum has unused bits at either - end, then the lo_pad or hi_pad bit is copied to those - locations. |
-
3 |
- Signed. If this bit is set then the fixed-point - number is in 2’s complement form. |
-
4-23 |
- Reserved (zero). |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
| Bit Offset | -Bit Precision | -||
| Field Name | -Description | -
|---|---|
Bit Offset |
-
- The bit offset of the first significant bit of the fixed-point - value within the datatype. The bit offset specifies the number - of bits “to the right of” the value (which are set to the - lo_pad bit value). - - |
-
Bit Precision |
-
- The number of bits of precision of the fixed-point value - within the datatype. This value, combined with the datatype - element’s size and the Bit Offset field specifies the number - of bits “to the left of” the value (which are set to the - hi_pad bit value). - - |
-
Class specific information for Floating-Point Numbers (Class 1):
- -| Bits | -Meaning | -|||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0, 6 |
- Byte Order. These two non-contiguous bits specify the - “endianness” of the bytes in the datatype element. -
|
- |||||||||||||||
1, 2, 3 |
- Padding type. Bit 1 is the low bits pad type, bit 2 - is the high bits pad type, and bit 3 is the internal bits - pad type. If a datum has unused bits at either end or between - the sign bit, exponent, or mantissa, then the value of bit - 1, 2, or 3 is copied to those locations. |
- |||||||||||||||
4-5 |
- Mantissa Normalization. This 2-bit bit field specifies - how the most significant bit of the mantissa is managed. -
| Header Message Name: Link Info | +||||||||||||||
| Header Message Type: 0x002 | +||||||||||||||||
| Length: Varies | +||||||||||||||||
| Status: Optional; may not be repeated. | +||||||||||||||||
| Description: | +The link info message tracks variable information about the + current state of the links for a “new style” + group’s behavior. Variable information will be stored in this + message and constant information will be stored in the Group Info message. | -|||||||||||||||
7 |
- Reserved (zero). |
- |||||||||||||||
8-15 |
- Sign Location. This is the bit position of the sign - bit. Bits are numbered with the least significant bit zero. |
- |||||||||||||||
16-23 |
- Reserved (zero). |
- |||||||||||||||
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
| Bit Offset | -Bit Precision | -||
| Exponent Location | -Exponent Size | -Mantissa Location | -Mantissa Size | -
| Exponent Bias | -|||
| Field Name | -Description | -
|---|---|
Bit Offset |
-
- The bit offset of the first significant bit of the floating-point - value within the datatype. The bit offset specifies the number - of bits “to the right of” the value. - - |
-
Bit Precision |
-
- The number of bits of precision of the floating-point value - within the datatype. - - |
-
Exponent Location |
-
- The bit position of the exponent field. Bits are numbered with - the least significant bit number zero. - - |
-
Exponent Size |
-
- The size of the exponent field in bits. - - |
-
Mantissa Location |
-
- The bit position of the mantissa field. Bits are numbered with - the least significant bit number zero. - - |
-
Mantissa Size |
-
- The size of the mantissa field in bits. - - |
-
Exponent Bias |
-
- The bias of the exponent field. - - |
-
Class specific information for Time (Class 2):
- - -| Bits | -Meaning | -
|---|---|
0 |
- Byte Order. If zero, byte order is little-endian; - otherwise, byte order is big endian. |
-
1-23 |
- Reserved (zero). |
-
| Byte | -Byte | -
|---|---|
| Bit Precision | -|
| Field Name | -Description | -
|---|---|
Bit Precision |
-
- The number of bits of precision of the time value. - - |
-
Class specific information for Strings (Class 3):
- - -| Bits | -Meaning | -||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
- Padding type. This four-bit value determines the - type of padding to use for the string. The values are: - -
|
- ||||||||||
4-7 |
- Character Set. The character set used to - encode the string. -
|
- ||||||||||
8-23 |
- Reserved (zero). |
-
There are no properties defined for the string class. -
- - -Class specific information for bit fields (Class 4):
- -| Bits | -Meaning | -
|---|---|
0 |
- Byte Order. If zero, byte order is little-endian; - otherwise, byte order is big endian. |
-
1, 2 |
- Padding type. Bit 1 is the lo_pad type and bit 2 - is the hi_pad type. If a datum has unused bits at either - end, then the lo_pad or hi_pad bit is copied to those - locations. |
-
3-23 |
- Reserved (zero). |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
| Bit Offset | -Bit Precision | -||
| Field Name | -Description | -
|---|---|
Bit Offset |
-
- The bit offset of the first significant bit of the bit field - within the datatype. The bit offset specifies the number - of bits “to the right of” the value. - - |
-
Bit Precision |
-
- The number of bits of precision of the bit field - within the datatype. - - |
-
Class specific information for Opaque (Class 5):
- -| Bits | -Meaning | -
|---|---|
0-7 |
- Length of ASCII tag in bytes. |
-
8-23 |
- Reserved (zero). |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
ASCII Tag - |
- |||
| Field Name | -Description | -
|---|---|
ASCII Tag |
-
- This NUL-terminated string provides a description for the - opaque type. It is NUL-padded to a multiple of 8 bytes. - - |
-
Class specific information for Compound (Class 6):
- -| Bits | -Meaning | -
|---|---|
0-15 |
- Number of Members. This field contains the number - of members defined for the compound datatype. The member - definitions are listed in the Properties field of the data - type message. |
-
16-23 |
- Reserved (zero). |
-
The Properties field of a compound datatype is a list of the - member definitions of the compound datatype. The member - definitions appear one after another with no intervening bytes. - The member types are described with a (recursively) encoded datatype - message.
- -Note that the property descriptions are different for different - versions of the datatype version. Additionally note that the version - 0 datatype encoding is deprecated and has been replaced with later - encodings in versions of the HDF5 Library from the 1.4 release - onward.
- - -| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
Name |
- |||
| Byte Offset of Member | -|||
| Dimensionality | -Reserved (zero) | -||
| Dimension Permutation | -|||
| Reserved (zero) | -|||
| Dimension #1 Size (required) | -|||
| Dimension #2 Size (required) | -|||
| Dimension #3 Size (required) | -|||
| Dimension #4 Size (required) | -|||
Member Type Message |
- |||
| Field Name | -Description | -
|---|---|
Name |
-
- This NUL-terminated string provides a description for the - opaque type. It is NUL-padded to a multiple of 8 bytes. - - |
-
Byte Offset of Member |
-
- This is the byte offset of the member within the datatype. - - |
-
Dimensionality |
-
- If set to zero, this field indicates a scalar member. If set - to a value greater than zero, this field indicates that the - member is an array of values. For array members, the size of - the array is indicated by the ‘Size of Dimension n’ field in - this message. - - |
-
Dimension Permutation |
-
- This field was intended to allow an array field to have - its dimensions permuted, but this was never implemented. - This field should always be set to zero. - - |
-
Dimension #n Size |
-
- This field is the size of a dimension of the array field as - stored in the file. The first dimension stored in the list of - dimensions is the slowest changing dimension and the last - dimension stored is the fastest changing dimension. - - |
-
Member Type Message |
-
- This field is a datatype message describing the datatype of - the member. - - |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
Name |
- |||
| Byte Offset of Member | -|||
Member Type Message |
- |||
| Field Name | -Description | -
|---|---|
Name |
-
- This NUL-terminated string provides a description for the - opaque type. It is NUL-padded to a multiple of 8 bytes. - - |
-
Byte Offset of Member |
-
- This is the byte offset of the member within the datatype. - - |
-
Member Type Message |
-
- This field is a datatype message describing the datatype of - the member. - - |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
Name |
- |||
| Byte Offset of Member (variable size) | -|||
Member Type Message |
- |||
| Field Name | -Description | -
|---|---|
Name |
- This NUL-terminated string provides a description for the - opaque type. It is not NUL-padded to a multiple of 8 - bytes. |
-
Byte Offset of Member |
- This is the byte offset of the member within the datatype. - The field size is the minimum number of bytes necessary, - based on the size of the datatype element. For example, a - datatype element size of less than 256 bytes uses a 1 byte - length, a datatype element size of 256-65535 bytes uses a - 2 byte length, and so on. |
-
Member Type Message |
- This field is a datatype message describing the datatype of - the member. |
-
Class specific information for Reference (Class 7):
- -| Bits | -Meaning | -||||||||
|---|---|---|---|---|---|---|---|---|---|
0-3 |
- Type. This four-bit value contains the type of reference - described. The values defined are: - -
|
- ||||||||
4-23 |
- Reserved (zero). |
-
There are no properties defined for the reference class. -
- - -Class specific information for Enumeration (Class 8):
- -| Bits | -Meaning | -
|---|---|
0-15 |
- Number of Members. The number of name/value - pairs defined for the enumeration type. |
-
16-23 |
- Reserved (zero). |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
Base Type |
- |||
Names |
- |||
Values |
|||
| Field Name | -Description | -
|---|---|
Base Type |
-
- Each enumeration type is based on some parent type, usually an - integer. The information for that parent type is described - recursively by this field. - - |
-
Names |
-
- The name for each name/value pair. Each name is stored as a null - terminated ASCII string in a multiple of eight bytes. The names - are in no particular order. - - |
-
Values |
-
- The list of values in the same order as the names. The values - are packed (no inter-value padding) and the size of each value - is determined by the parent type. - - |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
Base Type |
- |||
Names |
- |||
Values |
- |||
| Field Name | -Description | -
|---|---|
Base Type |
-
- Each enumeration type is based on some parent type, usually an - integer. The information for that parent type is described - recursively by this field. - - |
-
Names |
-
- The name for each name/value pair. Each name is stored as a null - terminated ASCII string, not padded to a multiple of - eight bytes. The names are in no particular order. - - |
-
Values |
-
- The list of values in the same order as the names. The values - are packed (no inter-value padding) and the size of each value - is determined by the parent type. - - |
-
Class specific information for Variable-Length (Class 9):
- -| Bits | -Meaning | -||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
- Type. This four-bit value contains the type of - variable-length datatype described. The values defined are: - -
|
- ||||||||||
4-7 |
- Padding type. (variable-length string only) - This four-bit value determines the type of padding - used for variable-length strings. The values are the same - as for the string padding type, as follows: -
This value is set to zero for variable-length sequences. - - |
- ||||||||||
8-11 |
- Character Set. (variable-length string only) - This four-bit value specifies the character set - to be used for encoding the string: -
This value is set to zero for variable-length sequences. - - |
- ||||||||||
12-23 |
- Reserved (zero). |
-
| Byte | -Byte | -Byte | -Byte | +Format of Data: See the tables below. | |
|---|---|---|---|---|---|
Base Type |
- |||||
| Field Name | -Description | -
|---|---|
Base Type |
-
- Each variable-length type is based on some parent type. The - information for that parent type is described recursively by - this field. - - |
-
Class specific information for Array (Class 10):
- -There are no bit fields defined for the array class. -
- -Note that the dimension information defined in the property for this - datatype class is independent of dataspace information for a dataset. - The dimension information here describes the dimensionality of the - information within a data element (or a component of an element, if the - array datatype is nested within another datatype) and the dataspace for a - dataset describes the size and locations of the elements in a dataset. -
- - -| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
| Dimensionality | -Reserved (zero) | -||
| Dimension #1 Size | -|||
| . . . |
- |||
| Dimension #n Size | -|||
| Permutation Index #1 | -|||
| . . . |
- |||
| Permutation Index #n | -|||
Base Type |
- |||
| Field Name | -Description | -
|---|---|
Dimensionality |
-
- This value is the number of dimensions that the array has. - - |
-
Dimension #n Size |
-
- This value is the size of the dimension of the array - as stored in the file. The first dimension stored in - the list of dimensions is the slowest changing dimension - and the last dimension stored is the fastest changing - dimension. - - |
-
Permutation Index #n |
-
- This value is the index permutation used to map - each dimension from the canonical representation to an - alternate axis for each dimension. Currently, dimension - permutations are not supported, and these indices should - be set to the index position minus one. In other words, - the first dimension should be set to 0, the second dimension - should be set to 1, and so on. - - |
-
Base Type |
-
- Each array type is based on some parent type. The - information for that parent type is described recursively by - this field. - - |
-
| Byte | -Byte | -Byte | -Byte | -
|---|---|---|---|
| Dimensionality | -This space inserted only to align table nicely | -||
| Dimension #1 Size | -|||
| . . . |
- |||
| Dimension #n Size | -|||
Base Type |
- |||
| Field Name | -Description | -
|---|---|
Dimensionality |
-
- This value is the number of dimensions that the array has. - - |
-
Dimension #n Size |
-
- This value is the size of the dimension of the array - as stored in the file. The first dimension stored in - the list of dimensions is the slowest changing dimension - and the last dimension stored is the fastest changing - dimension. - - |
-
Base Type |
-
- Each array type is based on some parent type. The - information for that parent type is described recursively by - this field. - - |
-
| Header Message Name: Fill Value - (old) | |
| Header Message Type: 0x0004 | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| Description: | -The fill value message stores a single data value which - is returned to the application when an uninitialized data element - is read from a dataset. The fill value is interpreted with the - same datatype as the dataset. If no fill value message is present - then a fill value of all zero bytes is assumed. -This fill value message is deprecated in favor of the - “new” fill value message (Message Type 0x0005) and - is only written to the file for forward compatibility with - versions of the HDF5 Library before the 1.6.0 version. - Additionally, it only appears for datasets with a user-defined - fill value (as opposed to the library default fill value or an - explicitly set “undefined” fill value). - |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Size | -|||
Fill Value (optional, variable size) |
- |||
| Field Name | -Description | -
|---|---|
Size |
-
- This is the size of the Fill Value field in bytes. - - |
-
Fill Value |
-
- The fill value. The bytes of the fill value are interpreted - using the same datatype as for the dataset. - - |
-
| Header Message Name: Fill - Value | |
| Header Message Type: 0x0005 | |
| Length: Varies | |
| Status: Required for dataset objects; - may not be repeated. | |
| Description: | -The fill value message stores a single data value which is - returned to the application when an uninitialized data element - is read from a dataset. The fill value is interpreted with the - same datatype as the dataset. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Space Allocation Time | -Fill Value Write Time | -Fill Value Defined | -
| Size (optional) | -|||
Fill Value (optional, variable size) |
- |||
| Field Name | -Description | -||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the - format of the fill value message and is described here: -
|
- ||||||||||
Space Allocation Time |
-
- When the storage space for the dataset’s raw data will be - allocated. The allowed values are: -
|
- ||||||||||
Fill Value Write Time |
-
- At the time that storage space for the dataset’s raw data is - allocated, this value indicates whether the fill value should - be written to the raw data storage elements. The allowed values - are: -
|
- ||||||||||
Fill Value Defined |
-
- This value indicates if a fill value is defined for this - dataset. If this value is 0, the fill value is undefined. - If this value is 1, a fill value is defined for this dataset. - For version 2 or later of the fill value message, this value - controls the presence of the Size and Fill Value fields. - - |
- ||||||||||
Size |
-
- This is the size of the Fill Value field in bytes. This field - is not present if the Version field is greater than 1, - and the Fill Value Defined field is set to 0. - - |
- ||||||||||
Fill Value |
-
- The fill value. The bytes of the fill value are interpreted - using the same datatype as for the dataset. This field is - not present if the Version field is greater than 1, - and the Fill Value Defined field is set to 0. - - |
-
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Flags | -This space inserted only to align table nicely | -|
| Size (optional) | -|||
Fill Value (optional, variable size) |
- |||
| Field Name | -Description | -||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the - format of the fill value message and is described here: -
|
- ||||||||||||
Flags |
-
- When the storage space for the dataset’s raw data will be - allocated. The allowed values are: -
|
- ||||||||||||
Size |
-
- This is the size of the Fill Value field in bytes. This field - is not present if the Version field is greater than 1, - and the Fill Value Defined flag is set to 0. - - |
- ||||||||||||
Fill Value |
-
- The fill value. The bytes of the fill value are interpreted - using the same datatype as for the dataset. This field is - not present if the Version field is greater than 1, - and the Fill Value Defined flag is set to 0. - - |
-
| Header Message Name: Link | |
| Header Message Type: 0x0006 | |
| Length: Varies | |
| Status: Optional; may be - repeated. | |
| Description: | -This message encodes the information for a link in a - group’s object header, when the group is storing its links - “compactly”, or in the group’s fractal heap, - when the group is storing its links “densely”. -A group is storing its links compactly when the fractal heap - address in the Link Info - Message is set to the “undefined address” - value. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Flags | -Link type (optional) | -This space inserted only to align table nicely | -
Creation Order (8 bytes, optional) |
- |||
| Link Name Character Set (optional) | -Length of Link Name (variable size) | -This space inserted only to align table nicely | -|
| Link Name (variable size) | -|||
Link Information (variable size) |
- |||
| Field Name | -Description | -||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
- The version number for this message. This document describes version 1. - |
- ||||||||||||||||||||||
Flags |
- This field contains information about the link and controls - the presence of other fields below. -
|
- ||||||||||||||||||||||
Link type |
- This is the link class type and can be one of the following - values: -
This field is present if bit 3 of Flags is set. - |
- ||||||||||||||||||||||
Creation Order |
- This 64-bit value is an index of the link’s creation time within - the group. Values start at 0 when the group is created an increment - by one for each link added to the group. Removing a link from a - group does not change existing links’ creation order field. - -This field is present if bit 2 of Flags is set. - |
- ||||||||||||||||||||||
Link Name Character Set |
- This is the character set for encoding the link’s name: -
This field is present if bit 4 of Flags is set. - |
- ||||||||||||||||||||||
Length of link name |
- This is the length of the link’s name. The size of this field - depends on bits 0 and 1 of Flags. - |
- ||||||||||||||||||||||
Link name |
- This is the name of the link, non-NULL terminated. - |
- ||||||||||||||||||||||
Link information |
- The format of this field depends on the link type. -For hard links, the field is formatted as follows: - -
- For soft links, the field is formatted as follows: - -
- For external links, the field is formatted as follows: - -
- For user-defined links, the field is formatted as follows: - -
|
+ ||||||||||||||||||||||
| byte | +byte | +byte | +byte |
|---|
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| Header Message Name: External - Data Files | |
| Header Message Type: 0x0007 | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| Description: | -The external data storage message indicates that the data - for an object is stored outside the HDF5 file. The filename of - the object is stored as a Universal Resource Location (URL) of - the actual filename containing the data. An external file list - record also contains the byte offset of the start of the data - within the file and the amount of space reserved in the file - for that data. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Reserved (zero) | -||
| Allocated Slots | -Used Slots | -||
Heap AddressO |
- |||
Slot Definitions... |
- |||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
| Field Name | -Description | -||||||
|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the format of - External Data Storage Message and is described here: -
|
- ||||||
Allocated Slots |
-
- The total number of slots allocated in the message. Its value must be at least as - large as the value contained in the Used Slots field. (The current library simply - uses the number of Used Slots for this message) - |
- ||||||
Used Slots |
-
- The number of initial slots which contains valid information. - |
- ||||||
Heap Address |
-
- This is the address of a local heap which contains the names for the external - files (The local heap information can be found in Disk Format Level 1D in this - document). The name at offset zero in the heap is always the empty string. - |
- ||||||
Slot Definitions |
-
- The slot definitions are stored in order according to the array addresses they - represent. - |
-
| byte | -byte | -byte | -byte | -
|---|---|---|---|
Name Offset in Local HeapL |
- |||
Offset in External Data FileL |
- |||
Data Size in External FileL |
- |||
| - | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
Version
The version number for this message. This document describes + version 0.
+Flags
This field determines various optional aspects of the + link info message:
+| Bit | +Description | +
|---|
| Field Name | -Description | -
|---|---|
0 |
+ If set, creation order for the links is tracked. | +
1 |
+ If set, creation order for the links is indexed. | +
2-7 |
+ Reserved | +
Name Offset in Local Heap
The byte offset within the local name heap for the name
- of the file. File names are stored as a URL which has a
- protocol name, a host name, a port number, and a file
- name:
- protocol:port//host/file.
- If the protocol is omitted then “file:” is assumed. If
- the port number is omitted then a default port for that
- protocol is used. If both the protocol and the port
- number are omitted then the colon can also be omitted. If
- the double slash and host name are omitted then
- “localhost” is assumed. The file name is the only
- mandatory part, and if the leading slash is missing then
- it is relative to the application’s current working
- directory (the use of relative names is not
- recommended).
+
Maximum Creation Index
This 64-bit value is the maximum creation order index + value stored for a link in this group.
++ This field is present if bit 0 of flags is set. +
Fractal Heap Address
+ This is the address of the fractal heap to store dense links. Each + link stored in the fractal heap is stored as a Link Message.
-+ If there are no links in the group, or the group’s links are + stored “compactly” (as object header messages), this + value will be the undefined address. +
+ + -Offset in External Data File
This is the byte offset to the start of the data in the - specified file. For files that contain data for a single - dataset this will usually be zero.
-Data Size in External File
This is the total number of bytes reserved in the - specified file for raw data storage. For a file that - contains exactly one complete dataset which is not - extendable, the size will usually be the exact size of the - dataset. However, by making the size larger one allows - HDF5 to extend the dataset. The size can be set to a value - larger than the entire file since HDF5 will read zeroes - past the end of the file without failing.
-| Header Message Name: Data Storage - - Layout | |
| Header Message Type: 0x0008 | |
| Length: Varies | |
| Status: Required for datasets; may not - be repeated. | |
| Description: | -Data layout describes how the elements of a multi-dimensional
- array are stored in the HDF5 file. Three types of data layout
- are supported:
-
|
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Dimensionality | -Layout Class | -Reserved (zero) | -
| Reserved (zero) | -|||
Data AddressO (optional) |
- |||
| Dimension 0 Size | -|||
| Dimension 1 Size | -|||
| ... | -|||
| Dimension #n Size | -|||
| Dataset Element Size (optional) | -|||
| Compact Data Size (optional) | -|||
Compact Data... (variable size, optional) |
- |||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Address of v2 B-tree for Name Index
This is the address of the version 2 B-tree to index + names of links.
++ If there are no links in the group, or the group’s links are + stored “compactly” (as object header messages), this + value will be the undefined address. +
| Field Name | -Description | -||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the format of the data - layout message and is described here: -
|
- ||||||||
Dimensionality |
- An array has a fixed dimensionality. This field - specifies the number of dimension size fields later in the - message. The value stored for chunked storage is 1 greater than - the number of dimensions in the dataset’s dataspace. - For example, 2 is stored for a 1 dimensional dataset. - - |
- ||||||||
Layout Class |
- The layout class specifies the type of storage for the data - and how the other fields of the layout message are to be - interpreted. - -
|
- ||||||||
Data Address |
- For contiguous storage, this is the address of the raw - data in the file. For chunked storage this is the address - of the v1 B-tree that is used to look up the addresses of the - chunks. This field is not present for compact storage. - If the version for this message is greater than 1, the address - may have the “undefined address” value, to indicate that - storage has not yet been allocated for this array. - |
- ||||||||
Dimension #n Size |
- For contiguous and compact storage the dimensions define - the entire size of the array while for chunked storage they define - the size of a single chunk. In all cases, they are in units of - array elements (not bytes). The first dimension stored in the list - of dimensions is the slowest changing dimension and the last - dimension stored is the fastest changing dimension. - - |
- ||||||||
Dataset Element Size |
- The size of a dataset element, in bytes. This field is only - present for chunked storage. - - |
- ||||||||
Compact Data Size |
- This field is only present for compact data storage. - It contains the size of the raw data for the dataset array, in - bytes. - |
- ||||||||
Compact Data |
- This field is only present for compact data storage. - It contains the raw data for the dataset array. - |
-
Version 3 of this message re-structured the format into specific - properties that are required for each layout class.
- - -| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Layout Class | -This space inserted only to align table nicely | -|
Properties (variable size) |
- |||
| Field Name | -Description | -||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
-
- The version number information is used for changes in the format of layout message - and is described here: -
|
- ||||||||
Layout Class |
- The layout class specifies the type of storage for the data - and how the other fields of the layout message are to be - interpreted. -
|
- ||||||||
Properties |
- This variable-sized field encodes information specific to each - layout class and is described below. If there is no property - information specified for a layout class, the size of this field - is zero bytes. |
-
Class-specific information for compact layout (Class 0): (Note: The dimensionality information - is in the Dataspace message)
- - -| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Size | -This space inserted only to align table nicely | -||
Raw Data... (variable size) |
- |||
| Field Name | -Description | -
|---|---|
Size |
- This field contains the size of the raw data for the dataset - array, in bytes. - - |
-
Raw Data |
- This field contains the raw data for the dataset array. |
-
Class-specific information for contiguous layout (Class 1): (Note: The dimensionality information - is in the Dataspace message)
- - -| byte | -byte | -byte | -byte | -
|---|---|---|---|
AddressO |
- |||
SizeL |
- |||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - | Address of v2 B-tree for Creation Order Index |
+ This is the address of the version 2 B-tree to index + creation order of links. ++ If there are no links in the group, or the group’s links are + stored “compactly” (as object header messages), this + value will be the undefined address. + ++ This field exists if bit 1 of flags is set. + |
+
+
+
| - | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
| Field Name | -Description | -
|---|---|
Address |
- This is the address of the raw data in the file. - The address may have the “undefined address” value, to indicate - that storage has not yet been allocated for this array. |
-
Size |
- This field contains the size allocated to store the raw data, - in bytes. - - |
-
Class-specific information for chunked layout (Class 2):
- - -| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Dimensionality | -This space inserted only to align table nicely | -||
AddressO |
- |||
| Dimension 0 Size | -|||
| Dimension 1 Size | -|||
| ... | -|||
| Dimension #n Size | -|||
| Dataset Element Size | -|||
| Header Message Name: Datatype | +|
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
The datatype message defines the datatype for each + element of a dataset or a common datatype for sharing between + multiple datasets. A datatype can describe an atomic type like a + fixed- or floating-point type or more complex types like a C struct + (compound datatype), array (array datatype) or C++ vector + (variable-length datatype).
+Datatype messages that are part of a dataset object do not + describe how elements are related to one another; the dataspace + message is used for that purpose. Datatype messages that are part + of a committed datatype (formerly named datatype) message describe + a common datatype that can be shared by multiple datasets in the + file.
| Field Name | -Description | -||
|---|---|---|---|
| byte | +byte | +byte | +byte | +
Dimensionality |
- A chunk has a fixed dimensionality. This field specifies - the number of dimension size fields later in the message. |
- ||
| Class and Version | +Class Bit Field, Bits 0-7 | +Class Bit Field, Bits 8-15 | +Class Bit Field, Bits 16-23 | +
Address |
- This is the address of the v1 B-tree that is used to look up the - addresses of the chunks that actually store portions of the array - data. The address may have the “undefined address” value, to - indicate that storage has not yet been allocated for this array. |
- ||
| Size | +|||
Dimension #n Size |
- These values define the dimension size of a single chunk, in - units of array elements (not bytes). The first dimension stored in - the list of dimensions is the slowest changing dimension and the - last dimension stored is the fastest changing dimension. - - |
- ||
Dataset Element Size |
- The size of a dataset element, in bytes. - - |
- ||
| Header Message Name: Bogus | |
| Header Message Type: 0x0009 | |
| Length: 4 bytes | |
| Status: For testing only; should never - be stored in a valid file. | |
| Description: | -This message is used for testing the HDF5 Library’s - response to an “unknown” message type and should - never be encountered in a valid HDF5 file. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Bogus Value | -|||
| Field Name | -Description | -
|---|---|
Bogus Value |
-
- This value should always be: |
-
| Header Message Name: Group Info | |
| Header Message Type: 0x000A | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| Description: | -This message stores information for the constants defining - a “new style” group’s behavior. Constant - information will be stored in this message and variable - information will be stored in the - Link Info message. -Note: the “estimated entry” information below is - used when determining the size of the object header for the - group when it is created. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Flags | -Link Phase Change: Maximum Compact Value (optional) | -|
| Link Phase Change: Minimum Dense Value (optional) | -Estimated Number of Entries (optional) | -||
| Estimated Link Name Length of Entries (optional) | -This space inserted only to align table nicely | -||
| Field Name | -Description | -||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
- The version number for this message. This document describes version 0. - |
- ||||||||
Flags |
- This is the group information flag with the following definition: - -
|
- ||||||||
Link Phase Change: Maximum Compact Value |
- The is the maximum number of links to store “compactly” (in - the group’s object header). -This field is present if bit 0 of Flags is set. - |
- ||||||||
Link Phase Change: Minimum Dense Value |
- This is the minimum number of links to store “densely” (in - the group’s fractal heap). The fractal heap’s address is - located in the Link Info - message. -This field is present if bit 0 of Flags is set. - |
- ||||||||
Estimated Number of Entries |
- This is the estimated number of entries in groups. -If this field is not present, the default value of This field is present if bit 1 of Flags is set. - |
- ||||||||
Estimated Link Name Length of Entries |
- This is the estimated length of entry name. -If this field is not present, the default value of This field is present if bit 1 of Flags is set. - |
-
| Header Message Name: - Data Storage - Filter Pipeline | |
| Header Message Type: 0x000B | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| Description: | -This message describes the filter pipeline which should - be applied to the data stream by providing filter identification - numbers, flags, a name, and client data. -This message may be present in the object headers of both - dataset and group objects. For datasets, it specifies the - filters to apply to raw data. For groups, it specifies the - filters to apply to the group’s fractal heap. Currently, - only datasets using chunked data storage use the filter - pipeline on their raw data. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Number of Filters | -Reserved (zero) | -|
| Reserved (zero) | -|||
Filter Description List (variable size) |
- |||
| Field Name | -Description | -
|---|---|
Version |
- The version number for this message. This table - describes version 1. |
-
Number of Filters |
- The total number of filters described in this - message. The maximum possible number of filters in a - message is 32. |
-
Filter Description List |
- A description of each filter. A filter description - appears in the next table. |
-
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Filter Identification Value | -Name Length | -||
| Flags | -Number Client Data Values | -||
Name (variable size, optional) |
- |||
Client Data (variable size, optional) |
- |||
| Padding (variable size, optional) | -|||
| Field Name | -Description | -||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
-
- - This value, often referred to as a filter identifier, - is designed to be a unique identifier for the filter. - Values from zero through 32,767 are reserved for filters - supported by The HDF Group in the HDF5 Library and for - filters requested and supported by third parties. - Filters supported by The HDF Group are documented immediately - below. Information on 3rd-party filters can be found at - The HDF Group’s - - Contributions page. - -
- To request a filter identifier, please contact
- The HDF Group’s Help Desk at
-
- Values from 32768 to 65535 are reserved for non-distributed uses - (for example, internal company usage) or for application usage - when testing a feature. The HDF Group does not track or document - the use of the filters with identifiers from this range. - -- The filters currently in library version 1.8.0 are - listed below: - -
|
- ||||||||||||||||||||||||
Name Length |
- Each filter has an optional null-terminated ASCII name - and this field holds the length of the name including the - null termination padded with nulls to be a multiple of - eight. If the filter has no name then a value of zero is - stored in this field. |
- ||||||||||||||||||||||||
Flags |
- The flags indicate certain properties for a filter. The - bit values defined so far are: -
|
- ||||||||||||||||||||||||
Number of Client Data Values |
- Each filter can store integer values to control - how the filter operates. The number of entries in the - Client Data array is stored in this field. |
- ||||||||||||||||||||||||
Name |
- If the Name Length field is non-zero then it will - contain the size of this field, padded to a multiple of eight. This - field contains a null-terminated, ASCII character - string to serve as a comment/name for the filter. |
- ||||||||||||||||||||||||
Client Data |
- This is an array of four-byte integers which will be - passed to the filter function. The Client Data Number of - Values determines the number of elements in the array. |
- ||||||||||||||||||||||||
Padding |
- Four bytes of zeroes are added to the message at this - point if the Client Data Number of Values field contains - an odd number. |
-
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Number of Filters | -This space inserted only to align table nicely | -|
Filter Description List (variable size) |
- |||
| Field Name | -Description | -
|---|---|
Version |
- The version number for this message. This table - describes version 2. |
-
Number of Filters |
- The total number of filters described in this - message. The maximum possible number of filters in a - message is 32. |
-
Filter Description List |
- A description of each filter. A filter description - appears in the next table. |
-
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Filter Identification Value | -Name Length (optional) | -||
| Flags | -Number Client Data Values | -||
Name (variable size, optional) |
- |||
Client Data (variable size, optional) |
- |||
| Field Name | -Description | -||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
-
- - This value, often referred to as a filter identifier, - is designed to be a unique identifier for the filter. - Values from zero through 32,767 are reserved for filters - supported by The HDF Group in the HDF5 Library and for - filters requested and supported by third parties. - Filters supported by The HDF Group are documented immediately - below. Information on 3rd-party filters can be found at - The HDF Group’s - - Contributions page. - -
- To request a filter identifier, please contact
- The HDF Group’s Help Desk at
-
- Values from 32768 to 65535 are reserved for non-distributed uses - (for example, internal company usage) or for application usage - when testing a feature. The HDF Group does not track or document - the use of the filters with identifiers from this range. - -- The filters currently in library version 1.8.0 are - listed below: - -
|
- ||||||||||||||||||||||||
Name Length |
- Each filter has an optional null-terminated ASCII name - and this field holds the length of the name including the - null termination padded with nulls to be a multiple of - eight. If the filter has no name then a value of zero is - stored in this field. -Filters with IDs less than 256 (in other words, filters - that are defined in this format documentation) do not store - the Name Length or Name fields. - - |
- ||||||||||||||||||||||||
Flags |
- The flags indicate certain properties for a filter. The - bit values defined so far are: -
|
- ||||||||||||||||||||||||
Number of Client Data Values |
- Each filter can store integer values to control - how the filter operates. The number of entries in the - Client Data array is stored in this field. |
- ||||||||||||||||||||||||
Name |
- If the Name Length field is non-zero then it will - contain the size of this field, not padded to a multiple - of eight. This field contains a non-null-terminated, - ASCII character string to serve as a comment/name for the filter. - -Filters that are defined in this format documentation - such as deflate and shuffle do not store the Name - Length or Name fields. - - |
- ||||||||||||||||||||||||
Client Data |
- This is an array of four-byte integers which will be - passed to the filter function. The Client Data Number of - Values determines the number of elements in the array. - |
-
| Header Message Name: Attribute | |
| Header Message Type: 0x000C | |
| Length: Varies | |
| Status: Optional; may be - repeated. | |
| Description: | -The Attribute message is used to store objects - in the HDF5 file which are used as attributes, or - “metadata” about the current object. An attribute - is a small dataset; it has a name, a datatype, a dataspace, and - raw data. Since attributes are stored in the object header, they - should be relatively small (in other words, less than 64KB). - They can be associated with any type of object which has an - object header (groups, datasets, or committed (named) - datatypes). -In 1.8.x versions of the library, attributes can be larger - than 64KB. See the - - “Special Issues” section of the Attributes chapter - in the HDF5 User’s Guide for more information. -Note: Attributes on an object must have unique names: - the HDF5 Library currently enforces this by causing the - creation of an attribute with a duplicate name to fail. - Attributes on different objects may have the same name, - however. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Reserved (zero) | -Name Size | -|
| Datatype Size | -Dataspace Size | -||
Name (variable size) |
- |||
Datatype (variable size) |
- |||
Dataspace (variable size) |
- |||
Data (variable size) |
- |||
| Field Name | -Description | -||||||
|---|---|---|---|---|---|---|---|
Version |
- The version number information is used for changes in the format of the - attribute message and is described here: -
|
- ||||||
Name Size |
- The length of the attribute name in bytes including the - null terminator. Note that the Name field below may - contain additional padding not represented by this - field. |
- ||||||
Datatype Size |
- The length of the datatype description in the Datatype - field below. Note that the Datatype field may contain - additional padding not represented by this field. |
- ||||||
Dataspace Size |
- The length of the dataspace description in the Dataspace - field below. Note that the Dataspace field may contain - additional padding not represented by this field. |
- ||||||
Name |
- The null-terminated attribute name. This field is - padded with additional null characters to make it a - multiple of eight bytes. |
- ||||||
Datatype |
- The datatype description follows the same format as - described for the datatype object header message. This - field is padded with additional zero bytes to make it a - multiple of eight bytes. |
- ||||||
Dataspace |
- The dataspace description follows the same format as - described for the dataspace object header message. This - field is padded with additional zero bytes to make it a - multiple of eight bytes. |
- ||||||
Data |
- The raw data for the attribute. The size is determined - from the datatype and dataspace descriptions. This - field is not padded with additional bytes. |
-
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Flags | -Name Size | -|
| Datatype Size | -Dataspace Size | -||
Name (variable size) |
- |||
Datatype (variable size) |
- |||
Dataspace (variable size) |
- |||
Data (variable size) |
- |||
| Field Name | -Description | -||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
- The version number information is used for changes in the - format of the attribute message and is described here: +
+
|
- Flags |
- This bit field contains extra information about - interpreting the attribute message: - -
|
- Name Size |
- The length of the attribute name in bytes including the - null terminator. |
- Datatype Size |
- The length of the datatype description in the Datatype - field below. |
- Dataspace Size |
- The length of the dataspace description in the Dataspace - field below. |
- Name |
- The null-terminated attribute name. This field is not - padded with additional bytes. |
- Datatype |
- The datatype description follows the same format as - described for the datatype object header message. - -If the - Flag field indicates this attribute’s datatype is - shared, this field will contain a “shared message” encoding - instead of the datatype encoding. - -This field is not padded with additional bytes. - - |
- Dataspace |
- The dataspace description follows the same format as - described for the dataspace object header message. - -If the - Flag field indicates this attribute’s dataspace is - shared, this field will contain a “shared message” encoding - instead of the dataspace encoding. - -This field is not padded with additional bytes. - |
- Data |
- The raw data for the attribute. The size is determined - from the datatype and dataspace descriptions. - -This field is not padded with additional zero bytes. - - |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Flags | -Name Size | -|
| Datatype Size | -Dataspace Size | -||
| Name Character Set Encoding | -This space inserted only to align table nicely | -||
Name (variable size) |
- |||
Datatype (variable size) |
- |||
Dataspace (variable size) |
- |||
Data (variable size) |
- |||
| Field Name | -Description | -||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
- The version number information is used for changes in the - format of the attribute message and is described here: + The class of the datatype determines the format for the class + bit field and properties portion of the datatype message, which are + described below. The following classes are currently defined:
|
- ||||||||||
0 |
+ Fixed-Point | +||||||||||
Flags |
- This bit field contains extra information about - interpreting the attribute message: + | ||||||||||
1 |
+ Floating-Point | +
| Bit | -Description | -
|---|---|
2 |
+ Time | +
0 |
- If set, datatype is shared. | -
3 |
+ String | +
1 |
- If set, dataspace is shared. | -
4Name Size
The length of the attribute name in bytes including the - null terminator.
5Datatype Size
The length of the datatype description in the Datatype - field below.
6Dataspace Size
The length of the dataspace description in the Dataspace - field below.
7Name Character Set Encoding
The character set encoding for the attribute’s name: -
| Value | -Description | -
|---|---|
8 |
+ Enumerated | +
0 |
- ASCII character set encoding - | -
9 |
+ Variable-Length | +
1 |
- UTF-8 character set encoding - | -
10Name
The null-terminated attribute name. This field is not - padded with additional bytes.
Datatype
The datatype description follows the same format as - described for the datatype object header message. -
-If the - Flag field indicates this attribute’s datatype is - shared, this field will contain a “shared message” encoding - instead of the datatype encoding. -
-This field is not padded with additional bytes. -
-Dataspace
The dataspace description follows the same format as - described for the dataspace object header message. -
-If the - Flag field indicates this attribute’s dataspace is - shared, this field will contain a “shared message” encoding - instead of the dataspace encoding. -
-This field is not padded with additional bytes.
-Data
The raw data for the attribute. The size is determined - from the datatype and dataspace descriptions. -
-This field is not padded with additional zero bytes. -
-| Header Message Name: Object - Comment | |
| Header Message Type: 0x000D | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| Description: | -The object comment is designed to be a short description of
- an object. An object comment is a sequence of non-zero
- (\0) ASCII characters with no other formatting
- included by the library. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
Comment (variable size) |
- |||
| Field Name | -Description | -
|---|---|
Name |
- A null terminated ASCII character string. |
-
| Header Message Name: Object - Modification Time (Old) | |
| Header Message Type: 0x000E | |
| Length: Fixed | |
| Status: Optional; may not be - repeated. | |
| Description: | -The object modification date and time is a timestamp - which indicates (using ISO-8601 date and time format) the last - modification of an object. The time is updated when any object - header message changes according to the system clock where the - change was posted. All fields of this message should be - interpreted as coordinated universal time (UTC). -This modification time message is deprecated in favor of - the “new” Object - Modification Time message and is no longer written to the - file in versions of the HDF5 Library after the 1.6.0 - version. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Year | -|||
| Month | -Day of Month | -||
| Hour | -Minute | -||
| Second | -Reserved | -||
| Field Name | -Description | -
|---|---|
Year |
- The four-digit year as an ASCII string. For example,
- |
-
Month |
- The month number as a two digit ASCII string where
- January is |
-
Day of Month |
- The day number within the month as a two digit ASCII
- string. The first day of the month is |
-
Hour |
- The hour of the day as a two digit ASCII string where
- midnight is |
-
Minute |
- The minute of the hour as a two digit ASCII string where
- the first minute of the hour is |
-
Second |
- The second of the minute as a two digit ASCII string
- where the first second of the minute is |
-
Reserved |
- This field is reserved and should always be zero. |
-
| Header Message Name: Shared Message - Table | |
| Header Message Type: 0x000F | |
| Length: Fixed | |
| Status: Optional; may not be - repeated. | |
| Description: | -This message is used to locate the table of shared object - header message (SOHM) indexes. Each index consists of information - to find the shared messages from either the heap or object header. - This message is only found in the superblock - extension. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -This space inserted only to align table nicely | -||
Shared Object Header Message Table AddressO |
- |||
| Number of Indices | -This space inserted only to align table nicely | -||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
Class Bit Fields
The information in these bit fields is specific to each + datatype class and is described below. All bits not defined for a + datatype class are set to zero.
+Size
The size of a datatype element in bytes.
+| Field Name | -Description | -
|---|---|
Properties |
+
+ This variable-sized sequence of bytes encodes information + specific to each datatype class and is described for each class + below. If there is no property information specified for a datatype + class, the size of this field is zero bytes. + |
+
Version |
- The version number for this message. This document describes version 0. |
-
Shared Object Header Message Table Address
This field is the address of the master table for shared - object header message indexes.
-Number of Indices
This field is the number of indices in the master table. -
Class specific information for Fixed-Point Numbers (Class 0):
- -| Bits | +Meaning | +
|---|---|
0 |
+ + Byte Order. If zero, byte order is little-endian; otherwise, + byte order is big endian. + |
+
1, 2 |
+ + Padding type. Bit 1 is the lo_pad bit and bit 2 is the + hi_pad bit. If a datum has unused bits at either end, then the + lo_pad or hi_pad bit is copied to those locations. + |
+
3 |
+ + Signed. If this bit is set then the fixed-point number is in + 2’s complement form. + |
+
4-23 |
+ Reserved (zero). |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
| Bit Offset | +Bit Precision | +||
| Field Name | +Description | +
|---|---|
Bit Offset |
+
+ The bit offset of the first significant bit of the + fixed-point value within the datatype. The bit offset specifies the + number of bits “to the right of” the value (which are + set to the lo_pad bit value). + |
+
Bit Precision |
+
+ The number of bits of precision of the fixed-point value + within the datatype. This value, combined with the datatype + element’s size and the Bit Offset field specifies the number + of bits “to the left of” the value (which are set to + the hi_pad bit value). + |
+
Class specific information for Floating-Point Numbers (Class 1):
+ +| Bits | +Meaning | +|||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0, 6 |
+ + Byte Order. These two non-contiguous bits specify the + “endianness” of the bytes in the datatype element. + +
|
+ |||||||||||||||
1, 2, 3 |
+ + Padding type. Bit 1 is the low bits pad type, bit 2 is the + high bits pad type, and bit 3 is the internal bits pad type. If a + datum has unused bits at either end or between the sign bit, + exponent, or mantissa, then the value of bit 1, 2, or 3 is copied + to those locations. + |
+ |||||||||||||||
4-5 |
+ + Mantissa Normalization. This 2-bit bit field specifies how + the most significant bit of the mantissa is managed. + +
|
+ |||||||||||||||
7 |
+ Reserved (zero). |
+ |||||||||||||||
8-15 |
+ + Sign Location. This is the bit position of the sign bit. + Bits are numbered with the least significant bit zero. + |
+ |||||||||||||||
16-23 |
+ Reserved (zero). |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
| Bit Offset | +Bit Precision | +||
| Exponent Location | +Exponent Size | +Mantissa Location | +Mantissa Size | +
| Exponent Bias | +|||
| Field Name | +Description | +
|---|---|
Bit Offset |
+
+ The bit offset of the first significant bit of the + floating-point value within the datatype. The bit offset specifies + the number of bits “to the right of” the value. + |
+
Bit Precision |
+
+ The number of bits of precision of the floating-point value + within the datatype. + |
+
Exponent Location |
+
+ The bit position of the exponent field. Bits are numbered + with the least significant bit number zero. + |
+
Exponent Size |
+
+ The size of the exponent field in bits. + |
+
Mantissa Location |
+
+ The bit position of the mantissa field. Bits are numbered + with the least significant bit number zero. + |
+
Mantissa Size |
+
+ The size of the mantissa field in bits. + |
+
Exponent Bias |
+
+ The bias of the exponent field. + |
+
Class specific information for Time (Class 2):
+ + +| Bits | +Meaning | +
|---|---|
0 |
+ + Byte Order. If zero, byte order is little-endian; otherwise, + byte order is big endian. + |
+
1-23 |
+ Reserved (zero). |
+
| Byte | +Byte | +
|---|---|
| Bit Precision | +|
| Field Name | +Description | +
|---|---|
Bit Precision |
+
+ The number of bits of precision of the time value. + |
+
Class specific information for Strings (Class 3):
+ + +| Bits | +Meaning | +||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
+ + Padding type. This four-bit value determines the type of + padding to use for the string. The values are: + + +
|
+ ||||||||||
4-7 |
+ + Character Set. The character set used to encode the string. + +
|
+ ||||||||||
8-23 |
+ Reserved (zero). |
+
There are no properties defined for the string class.
+ + +Class specific information for bit fields (Class 4):
+ +| Bits | +Meaning | +
|---|---|
0 |
+ + Byte Order. If zero, byte order is little-endian; otherwise, + byte order is big endian. + |
+
1, 2 |
+ + Padding type. Bit 1 is the lo_pad type and bit 2 is the + hi_pad type. If a datum has unused bits at either end, then the + lo_pad or hi_pad bit is copied to those locations. + |
+
3-23 |
+ Reserved (zero). |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
| Bit Offset | +Bit Precision | +||
| Field Name | +Description | +
|---|---|
Bit Offset |
+
+ The bit offset of the first significant bit of the bit field + within the datatype. The bit offset specifies the number of bits + “to the right of” the value. + |
+
Bit Precision |
+
+ The number of bits of precision of the bit field within the + datatype. + |
+
Class specific information for Opaque (Class 5):
+ +| Bits | +Meaning | +
|---|---|
0-7 |
+ Length of ASCII tag in bytes. |
+
8-23 |
+ Reserved (zero). |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
ASCII Tag |
+ |||
| Field Name | +Description | +
|---|---|
ASCII Tag |
+
+ This NUL-terminated string provides a description for the + opaque type. It is NUL-padded to a multiple of 8 bytes. + |
+
Class specific information for Compound (Class 6):
+ +| Bits | +Meaning | +
|---|---|
0-15 |
+ + Number of Members. This field contains the number of members + defined for the compound datatype. The member definitions are + listed in the Properties field of the data type message. + |
+
16-23 |
+ Reserved (zero). |
+
The Properties field of a compound datatype is a list of the + member definitions of the compound datatype. The member definitions + appear one after another with no intervening bytes. The member types + are described with a (recursively) encoded datatype message.
+ +Note that the property descriptions are different for different + versions of the datatype version. Additionally note that the version 0 + datatype encoding is deprecated and has been replaced with later + encodings in versions of the HDF5 Library from the 1.4 release onward.
+ + +| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
Name + |
+ |||
| Byte Offset of Member | +|||
| Dimensionality | +Reserved (zero) | +||
| Dimension Permutation | +|||
| Reserved (zero) | +|||
| Dimension #1 Size (required) | +|||
| Dimension #2 Size (required) | +|||
| Dimension #3 Size (required) | +|||
| Dimension #4 Size (required) | +|||
Member Type Message + |
+ |||
| Field Name | +Description | +
|---|---|
Name |
+
+ This NUL-terminated string provides a description for the + opaque type. It is NUL-padded to a multiple of 8 bytes. + |
+
Byte Offset of Member |
+
+ This is the byte offset of the member within the datatype. + |
+
Dimensionality |
+
+ If set to zero, this field indicates a scalar member. If set + to a value greater than zero, this field indicates that the member + is an array of values. For array members, the size of the array is + indicated by the ‘Size of Dimension n’ field in this + message. + |
+
Dimension Permutation |
+
+ This field was intended to allow an array field to have its + dimensions permuted, but this was never implemented. This field + should always be set to zero. + |
+
Dimension #n Size |
+
+ This field is the size of a dimension of the array field as + stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Member Type Message |
+
+ This field is a datatype message describing the datatype of + the member. + |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
Name + |
+ |||
| Byte Offset of Member | +|||
Member Type Message + |
+ |||
| Field Name | +Description | +
|---|---|
Name |
+
+ This NUL-terminated string provides a description for the + opaque type. It is NUL-padded to a multiple of 8 bytes. + |
+
Byte Offset of Member |
+
+ This is the byte offset of the member within the datatype. + |
+
Member Type Message |
+
+ This field is a datatype message describing the datatype of + the member. + |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
Name + |
+ |||
| Byte Offset of Member (variable size) | +|||
Member Type Message + |
+ |||
| Field Name | +Description | +
|---|---|
Name |
+ + This NUL-terminated string provides a description for the opaque + type. It is not NUL-padded to a multiple of 8 bytes. + |
+
Byte Offset of Member |
+ This is the byte offset of the member within the + datatype. The field size is the minimum number of bytes necessary, + based on the size of the datatype element. For example, a datatype + element size of less than 256 bytes uses a 1 byte length, a + datatype element size of 256-65535 bytes uses a 2 byte length, and + so on. |
+
Member Type Message |
+ This field is a datatype message describing the + datatype of the member. |
+
Class specific information for Reference (Class 7):
+ +| Bits | +Meaning | +||||||||
|---|---|---|---|---|---|---|---|---|---|
0-3 |
+ + Type. This four-bit value contains the type of reference + described. The values defined are: + + +
|
+ ||||||||
4-23 |
+ Reserved (zero). |
+
There are no properties defined for the reference class.
+ + +Class specific information for Enumeration (Class 8):
+ +| Bits | +Meaning | +
|---|---|
0-15 |
+ + Number of Members. The number of name/value pairs defined + for the enumeration type. + |
+
16-23 |
+ Reserved (zero). |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
Base Type + |
+ |||
Names + |
+ |||
Values + |
+ |||
| Field Name | +Description | +
|---|---|
Base Type |
+
+ Each enumeration type is based on some parent type, usually + an integer. The information for that parent type is described + recursively by this field. + |
+
Names |
+
+ The name for each name/value pair. Each name is stored as a + null terminated ASCII string in a multiple of eight bytes. The + names are in no particular order. + |
+
Values |
+
+ The list of values in the same order as the names. The values + are packed (no inter-value padding) and the size of each value is + determined by the parent type. + |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
Base Type + |
+ |||
Names + |
+ |||
Values + |
+ |||
| Field Name | +Description | +
|---|---|
Base Type |
+
+ Each enumeration type is based on some parent type, usually + an integer. The information for that parent type is described + recursively by this field. + |
+
Names |
+
+ + The name for each name/value pair. Each name is stored as a null + terminated ASCII string, not padded to a multiple of eight + bytes. The names are in no particular order. + + |
+
Values |
+
+ The list of values in the same order as the names. The values + are packed (no inter-value padding) and the size of each value is + determined by the parent type. + |
+
Class specific information for Variable-Length (Class 9):
+ +| Bits | +Meaning | +||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 |
+ + Type. This four-bit value contains the type of + variable-length datatype described. The values defined are: + + +
|
+ ||||||||||
4-7 |
+ + Padding type. (variable-length string only) This four-bit + value determines the type of padding used for variable-length + strings. The values are the same as for the string padding type, as + follows: + +
This value is set to zero for variable-length sequences. |
+ ||||||||||
8-11 |
+ + Character Set. (variable-length string only) This four-bit + value specifies the character set to be used for encoding the + string: + +
This value is set to zero for variable-length sequences. |
+ ||||||||||
12-23 |
+ Reserved (zero). |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
Base Type + |
+ |||
| Field Name | +Description | +
|---|---|
Base Type |
+
+ Each variable-length type is based on some parent type. The + information for that parent type is described recursively by this + field. + |
+
Class specific information for Array (Class 10):
+ +There are no bit fields defined for the array class.
+ +Note that the dimension information defined in the property for + this datatype class is independent of dataspace information for a + dataset. The dimension information here describes the dimensionality of + the information within a data element (or a component of an element, if + the array datatype is nested within another datatype) and the dataspace + for a dataset describes the size and locations of the elements in a + dataset.
+ + +| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
| Dimensionality | +Reserved (zero) | +||
| Dimension #1 Size | +|||
| . . . |
+ |||
| Dimension #n Size | +|||
| Permutation Index #1 | +|||
| . . . |
+ |||
| Permutation Index #n | +|||
Base Type + |
+ |||
| Field Name | +Description | +
|---|---|
Dimensionality |
+
+ This value is the number of dimensions that the array has. + |
+
Dimension #n Size |
+
+ This value is the size of the dimension of the array as + stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Permutation Index #n |
+
+ This value is the index permutation used to map each + dimension from the canonical representation to an alternate axis + for each dimension. Currently, dimension permutations are not + supported, and these indices should be set to the index position + minus one. In other words, the first dimension should be set to 0, + the second dimension should be set to 1, and so on. + |
+
Base Type |
+
+ Each array type is based on some parent type. The information + for that parent type is described recursively by this field. + |
+
| Byte | +Byte | +Byte | +Byte | +
|---|---|---|---|
| Dimensionality | +This space inserted + only to align table nicely | +||
| Dimension #1 Size | +|||
| . . . |
+ |||
| Dimension #n Size | +|||
Base Type + |
+ |||
| Field Name | +Description | +
|---|---|
Dimensionality |
+
+ This value is the number of dimensions that the array has. + |
+
Dimension #n Size |
+
+ This value is the size of the dimension of the array as + stored in the file. The first dimension stored in the list of + dimensions is the slowest changing dimension and the last dimension + stored is the fastest changing dimension. + |
+
Base Type |
+
+ Each array type is based on some parent type. The information + for that parent type is described recursively by this field. + |
+
| Header Message Name: Object Header - Continuation | |
| Header Message Type: 0x0010 | |
| Length: Fixed | |
| Status: Optional; may be - repeated. | |
| Description: | -The object header continuation is the location in the file - of a block containing more header messages for the current data - object. This can be used when header blocks become too large or - are likely to change over time. |
| Format of Data: See the tables - below. | |
The fill value message stores a single data value + which is returned to the application when an uninitialized data + element is read from a dataset. The fill value is interpreted with + the same datatype as the dataset. If no fill value message is + present then a fill value of all zero bytes is assumed.
+This fill value message is deprecated in favor of the + “new” fill value message (Message Type 0x0005) and is + only written to the file for forward compatibility with versions of + the HDF5 Library before the 1.6.0 version. Additionally, it only + appears for datasets with a user-defined fill value (as opposed to + the library default fill value or an explicitly set + “undefined” fill value).
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Size | +|||
Fill Value (optional, variable + size) + |
+ |||
| Field Name | +Description | +
|---|---|
Size |
+
+ This is the size of the Fill Value field in bytes. + |
+
Fill Value |
+
+ The fill value. The bytes of the fill value are interpreted + using the same datatype as for the dataset. + |
+
| Header Message Name: Fill Value | +|
| Header Message Type: 0x0005 | +|
| Length: Varies | +|
| Status: Required for dataset objects; may + not be repeated. | +|
| Description: | +The fill value message stores a single data value which is + returned to the application when an uninitialized data element is + read from a dataset. The fill value is interpreted with the same + datatype as the dataset. | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Space Allocation Time | +Fill Value Write Time | +Fill Value Defined | +
| Size (optional) | +|||
Fill Value (optional, variable + size) + |
+ |||
| Field Name | +Description | +||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of the fill value message and is described here: +
|
+ ||||||||||
Space Allocation Time |
+
+ When the storage space for the dataset’s raw data will + be allocated. The allowed values are: +
|
+ ||||||||||
Fill Value Write Time |
+
+ At the time that storage space for the dataset’s raw + data is allocated, this value indicates whether the fill value + should be written to the raw data storage elements. The allowed + values are: +
|
+ ||||||||||
Fill Value Defined |
+
+ This value indicates if a fill value is defined for this + dataset. If this value is 0, the fill value is undefined. If this + value is 1, a fill value is defined for this dataset. For version 2 + or later of the fill value message, this value controls the + presence of the Size and Fill Value fields. + |
+ ||||||||||
Size |
+
+ This is the size of the Fill Value field in bytes. This field + is not present if the Version field is greater than 1, and the Fill + Value Defined field is set to 0. + |
+ ||||||||||
Fill Value |
+
+ The fill value. The bytes of the fill value are interpreted + using the same datatype as for the dataset. This field is not + present if the Version field is greater than 1, and the Fill Value + Defined field is set to 0. + |
+
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Flags | +This space inserted + only to align table nicely | +|
| Size (optional) | +|||
Fill Value (optional, variable + size) + |
+ |||
| Field Name | +Description | +||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of the fill value message and is described here: +
|
+ ||||||||||||
Flags |
+
+ When the storage space for the dataset’s raw data will + be allocated. The allowed values are: +
|
+ ||||||||||||
Size |
+
+ This is the size of the Fill Value field in bytes. This field + is not present if the Version field is greater than 1, and the Fill + Value Defined flag is set to 0. + |
+ ||||||||||||
Fill Value |
+
+ The fill value. The bytes of the fill value are interpreted + using the same datatype as for the dataset. This field is not + present if the Version field is greater than 1, and the Fill Value + Defined flag is set to 0. + |
+
| Header Message Name: Link | +|
| Header Message Type: 0x0006 | +|
| Length: Varies | +|
| Status: Optional; may be repeated. | +|
| Description: | +This message encodes the information for a link in a + group’s object header, when the group is storing its links + “compactly”, or in the group’s fractal heap, when + the group is storing its links “densely”. ++ A group is storing its links compactly when the fractal heap + address in the Link Info + Message is set to the “undefined address” value. + |
+
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Flags | +Link type (optional) | +This space inserted only to align + table nicely | +
Creation Order (8 bytes, + optional) + |
+ |||
| Link Name Character Set (optional) | +Length of Link Name (variable size) | +This space inserted + only to align table nicely | +|
| Link Name (variable size) | +|||
Link Information (variable size) + |
+ |||
| Field Name | +Description | +||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+ The version number for this message. This document + describes version 1. |
+ ||||||||||||||||||||||
Flags |
+ This field contains information about the link and + controls the presence of other fields below. +
|
+ ||||||||||||||||||||||
Link type |
+ This is the link class type and can be one of the + following values: +
+ This field is present if bit 3 of Flags is set. + |
+ ||||||||||||||||||||||
Creation Order |
+ This 64-bit value is an index of the link’s + creation time within the group. Values start at 0 when the group is + created an increment by one for each link added to the group. + Removing a link from a group does not change existing links’ + creation order field. ++ This field is present if bit 2 of Flags is set. + |
+ ||||||||||||||||||||||
Link Name Character Set |
+ This is the character set for encoding the + link’s name: +
+ This field is present if bit 4 of Flags is set. + |
+ ||||||||||||||||||||||
Length of link name |
+ + This is the length of the link’s name. The size of this field + depends on bits 0 and 1 of Flags. + |
+ ||||||||||||||||||||||
Link name |
+ This is the name of the link, non-NULL terminated. |
+ ||||||||||||||||||||||
Link information |
+ + The format of this field depends on the link type. + ++ For hard links, the field is formatted as follows: + + +
+ For soft links, the field is formatted as follows: + + +
+ For external links, the field is formatted as follows: + + +
+ For user-defined links, the field is formatted as follows: + + +
|
+
| Header Message Name: External Data Files | +|
| Header Message Type: 0x0007 | +|
| Length: Varies | +|
| Status: Optional; may not be repeated. | +|
| Description: | +The external data storage message indicates that the data + for an object is stored outside the HDF5 file. The filename of the + object is stored as a Universal Resource Location (URL) of the + actual filename containing the data. An external file list record + also contains the byte offset of the start of the data within the + file and the amount of space reserved in the file for that data. | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Reserved (zero) | +||
| Allocated Slots | +Used Slots | +||
Heap AddressO + |
+ |||
Slot Definitions... + |
+ |||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| Field Name | +Description | +||||||
|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of External Data Storage Message and is described here: +
|
+ ||||||
Allocated Slots |
+
+ The total number of slots allocated in the message. Its value + must be at least as large as the value contained in the Used Slots + field. (The current library simply uses the number of Used Slots + for this message) + |
+ ||||||
Used Slots |
+
+ The number of initial slots which contains valid information. + |
+ ||||||
Heap Address |
+
+ This is the address of a local heap which contains the names + for the external files (The local heap information can be found in + Disk Format Level 1D in this document). The name at offset zero in + the heap is always the empty string. + |
+ ||||||
Slot Definitions |
+
+ The slot definitions are stored in order according to the + array addresses they represent. + |
+
| byte | +byte | +byte | +byte | +
|---|---|---|---|
Name Offset in Local HeapL + |
+ |||
Offset in External Data FileL + |
+ |||
Data Size in External FileL + |
+ |||
| + | (Items marked with an ‘L’ in the + above table are of the size specified in “Size of + Lengths” field in the superblock.) | +
| Field Name | +Description | +
|---|---|
Name Offset in Local Heap |
+
+
+ The byte offset within the local name heap for the name of the
+ file. File names are stored as a URL which has a protocol name, a
+ host name, a port number, and a file name:
+ |
+
Offset in External Data File |
+
+ This is the byte offset to the start of the data in the + specified file. For files that contain data for a single dataset + this will usually be zero. + |
+
Data Size in External File |
+
+ This is the total number of bytes reserved in the specified + file for raw data storage. For a file that contains exactly one + complete dataset which is not extendable, the size will usually be + the exact size of the dataset. However, by making the size larger + one allows HDF5 to extend the dataset. The size can be set to a + value larger than the entire file since HDF5 will read zeroes past + the end of the file without failing. + |
+
| Header Message Name: Data Storage - + Layout | +|
| Header Message Type: 0x0008 | +|
| Length: Varies | +|
| Status: Required for datasets; may not be + repeated. | +|
| Description: | +Data layout describes how the elements of a
+ multi-dimensional array are stored in the HDF5 file. Three types of
+ data layout are supported:
+
|
+
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Dimensionality | +Layout Class | +Reserved (zero) | +
| Reserved (zero) | +|||
Data AddressO (optional) + |
+ |||
| Dimension 0 Size | +|||
| Dimension 1 Size | +|||
| ... | +|||
| Dimension #n Size | +|||
| Dataset Element Size (optional) | +|||
| Compact Data Size (optional) | +|||
Compact Data... (variable size, + optional) + |
+ |||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| Field Name | +Description | +||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of the data layout message and is described here: +
|
+ ||||||||
Dimensionality |
+ An array has a fixed dimensionality. This field + specifies the number of dimension size fields later in the message. + The value stored for chunked storage is 1 greater than the number + of dimensions in the dataset’s dataspace. For example, 2 is + stored for a 1 dimensional dataset. |
+ ||||||||
Layout Class |
+ The layout class specifies the type of storage for + the data and how the other fields of the layout message are to be + interpreted. +
|
+ ||||||||
Data Address |
+ For contiguous storage, this is the address of the + raw data in the file. For chunked storage this is the address of + the v1 B-tree that is used to look up the addresses of the chunks. + This field is not present for compact storage. If the version for + this message is greater than 1, the address may have the + “undefined address” value, to indicate that storage has + not yet been allocated for this array. |
+ ||||||||
Dimension #n Size |
+ For contiguous and compact storage the dimensions + define the entire size of the array while for chunked storage they + define the size of a single chunk. In all cases, they are in units + of array elements (not bytes). The first dimension stored in the + list of dimensions is the slowest changing dimension and the last + dimension stored is the fastest changing dimension. |
+ ||||||||
Dataset Element Size |
+ The size of a dataset element, in bytes. This field + is only present for chunked storage. |
+ ||||||||
Compact Data Size |
+ This field is only present for compact data storage. + It contains the size of the raw data for the dataset array, in + bytes. |
+ ||||||||
Compact Data |
+ This field is only present for compact data storage. + It contains the raw data for the dataset array. |
+
Version 3 of this message re-structured the format into specific + properties that are required for each layout class.
+ + +| byte | -byte | -byte | -byte | +byte | +byte | +byte | +byte |
|---|---|---|---|---|---|---|---|
OffsetO |
+ Version | +Layout Class | +This space inserted + only to align table nicely | ||||
LengthL |
+ Properties (variable size) + |
||||||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
| - | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
| Field Name | -Description | -
|---|---|
Offset |
- This value is the address in the file where the - header continuation block is located. |
-
Length |
- This value is the length in bytes of the header continuation - block in the file. |
-
The format of the header continuation block that this message points - to depends on the version of the object header that the message is - contained within. -
- -- Continuation blocks for version 1 object headers have no special - formatting information; they are merely a list of object header - message info sequences (type, size, flags, reserved bytes and data - for each message sequence). See the description - of Version 1 Data Object Header Prefix. -
- -Continuation blocks for version 2 object headers do have - special formatting information as described here - (see also the description of - Version 2 Data Object Header Prefix.): -
-| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Signature | -|||
| Header Message Type #1 | -Size of Header Message Data #1 | -Header Message #1 Flags | -|
| Header Message #1 Creation Order (optional) | -This space inserted only to align table nicely | -||
Header Message Data #1 |
- |||
| . . . |
- |||
| Header Message Type #n | -Size of Header Message Data #n | -Header Message #n Flags | -|
| Header Message #n Creation Order (optional) | -This space inserted only to align table nicely | -||
Header Message Data #n |
- |||
| Gap (optional, variable size) | -|||
| Checksum | -|||
| Field Name | -Description | -
|---|---|
Signature |
-
- The ASCII character string “ |
-
Header Message #n Type |
-
- Same format as version 1 of the object header, described above. - |
-
Size of Header Message #n Data |
-
- Same format as version 1 of the object header, described above. - |
-
Header Message #n Flags |
-
- Same format as version 1 of the object header, described above. - |
-
Header Message #n Creation Order |
-
- This field stores the order that a message of a given type - was created in. -This field is present if bit 2 of flags is set. - |
-
Header Message #n Data |
-
- Same format as version 1 of the object header, described above. - |
-
Gap |
-
- A gap in an object header chunk is inferred by the end of the - messages for the chunk before the beginning of the chunk’s - checksum. Gaps are always smaller than the size of an - object header message prefix (message type + message size + - message flags). -Gaps are formed when a message (typically an attribute message) - in an earlier chunk is deleted and a message from a later - chunk that does not quite fit into the free space is moved - into the earlier chunk. - |
-
Checksum |
-
- This is the checksum for the object header chunk. - - |
-
| Field Name | +Description | +||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
+
+ The version number information is used for changes in the + format of layout message and is described here: +
|
+ ||||||||
Layout Class |
+ The layout class specifies the type of storage for + the data and how the other fields of the layout message are to be + interpreted. +
|
+ ||||||||
Properties |
+ This variable-sized field encodes information + specific to each layout class and is described below. If there is + no property information specified for a layout class, the size of + this field is zero bytes. |
+
Class-specific information for compact layout (Class 0): (Note: + The dimensionality information is in the Dataspace message)
+ + +| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Size | +This space inserted + only to align table nicely | +||
Raw Data... (variable size) + |
+ |||
| Field Name | +Description | +
|---|---|
Size |
+ This field contains the size of the raw data for the + dataset array, in bytes. |
+
Raw Data |
+ This field contains the raw data for the dataset + array. |
+
Class-specific information for contiguous layout (Class 1): + (Note: The dimensionality information is in the Dataspace message)
+ + +| byte | +byte | +byte | +byte | +
|---|---|---|---|
AddressO + |
+ |||
SizeL + |
+ |||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| + | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
| Field Name | +Description | +
|---|---|
Address |
+ This is the address of the raw data in the file. The + address may have the “undefined address” value, to + indicate that storage has not yet been allocated for this array. |
+
Size |
+ This field contains the size allocated to store the + raw data, in bytes. |
+
Class-specific information for chunked layout (Class 2):
+ + +| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Dimensionality | +This space inserted + only to align table nicely | +||
AddressO + |
+ |||
| Dimension 0 Size | +|||
| Dimension 1 Size | +|||
| ... | +|||
| Dimension #n Size | +|||
| Dataset Element Size | +|||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| Field Name | +Description | +
|---|---|
Dimensionality |
+ A chunk has a fixed dimensionality. This field + specifies the number of dimension size fields later in the message. |
+
Address |
+ This is the address of the v1 B-tree that is used to + look up the addresses of the chunks that actually store portions of + the array data. The address may have the “undefined + address” value, to indicate that storage has not yet been + allocated for this array. |
+
Dimension #n Size |
+ These values define the dimension size of a single + chunk, in units of array elements (not bytes). The first dimension + stored in the list of dimensions is the slowest changing dimension + and the last dimension stored is the fastest changing dimension. |
+
Dataset Element Size |
+ The size of a dataset element, in bytes. |
+
| Header Message Name: Symbol Table - Message | |
| Header Message Type: 0x0011 | |
| Length: Fixed | |
| Status: Required for - “old style” groups; may not be repeated. | |
| Description: | -Each “old style” group has a v1 B-tree and a - local heap for storing symbol table entries, which are located - with this message. |
| Format of data: See the tables - below. | |
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Bogus Value | +|||
| Field Name | +Description | +
|---|---|
Bogus Value |
+
+
+ This value should always be:
+ |
+
| Header Message Name: Group Info | +|
| Header Message Type: 0x000A | +|
| Length: Varies | +|
| Status: Optional; may not be repeated. | +|
| Description: | ++ This message stores information for the constants defining a + “new style” group’s behavior. Constant + information will be stored in this message and variable information + will be stored in the Link Info + message. + +Note: the “estimated entry” information below is + used when determining the size of the object header for the group + when it is created. |
+
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Flags | +Link Phase Change: Maximum Compact Value (optional) | +|
| Link Phase Change: Minimum Dense Value (optional) | +Estimated Number of Entries (optional) | +||
| Estimated Link Name Length of Entries (optional) | +This space inserted + only to align table nicely | +||
| Field Name | +Description | +||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+ ||||||||
Flags |
+ This is the group information flag with the following + definition: +
|
+ ||||||||
Link Phase Change: Maximum Compact Value |
+ The is the maximum number of links to store + “compactly” (in the group’s object header). ++ This field is present if bit 0 of Flags is set. + |
+ ||||||||
Link Phase Change: Minimum Dense Value |
+ + This is the minimum number of links to store “densely” + (in the group’s fractal heap). The fractal heap’s + address is located in the Link Info + message. + ++ This field is present if bit 0 of Flags is set. + |
+ ||||||||
Estimated Number of Entries |
+ This is the estimated number of entries in groups. +
+ If this field is not present, the default value of
+ + This field is present if bit 1 of Flags is set. + |
+ ||||||||
Estimated Link Name Length of Entries |
+ This is the estimated length of entry name. +
+ If this field is not present, the default value of
+ + This field is present if bit 1 of Flags is set. + |
+
| Header Message Name: Data Storage - + Filter Pipeline | +|
| Header Message Type: 0x000B | +|
| Length: Varies | +|
| Status: Optional; may not be repeated. | +|
| Description: | +This message describes the filter pipeline which + should be applied to the data stream by providing filter + identification numbers, flags, a name, and client data. +This message may be present in the object headers of both + dataset and group objects. For datasets, it specifies the filters + to apply to raw data. For groups, it specifies the filters to apply + to the group’s fractal heap. Currently, only datasets using + chunked data storage use the filter pipeline on their raw data. |
+
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Number of Filters | +Reserved (zero) | +|
| Reserved (zero) | +|||
Filter Description List (variable + size) + |
+ |||
| Field Name | +Description | +
|---|---|
Version |
+ The version number for this message. This table + describes version 1. |
+
Number of Filters |
+ The total number of filters described in this + message. The maximum possible number of filters in a message is 32. |
+
Filter Description List |
+ A description of each filter. A filter description + appears in the next table. |
+
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Filter Identification Value | +Name Length | +||
| Flags | +Number Client Data Values | +||
Name (variable size, optional) + |
+ |||
Client Data (variable size, + optional) + |
+ |||
| Padding (variable size, optional) | +|||
| Field Name | +Description | +||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
+
+ + This value, often referred to as a filter identifier, is designed + to be a unique identifier for the filter. Values from zero through + 32,767 are reserved for filters supported by The HDF Group in the + HDF5 Library and for filters requested and supported by third + parties. Filters supported by The HDF Group are documented + immediately below. Information on 3rd-party filters can be found at + The HDF Group’s + Contributions page. + + +
+ To request a filter identifier, please contact The HDF
+ Group’s Help Desk at
Values from 32768 to 65535 are reserved for non-distributed + uses (for example, internal company usage) or for application usage + when testing a feature. The HDF Group does not track or document + the use of the filters with identifiers from this range. + +The filters currently in library version 1.8.0 are listed + below: +
|
+ ||||||||||||||||||||||||
Name Length |
+ Each filter has an optional null-terminated ASCII + name and this field holds the length of the name including the null + termination padded with nulls to be a multiple of eight. If the + filter has no name then a value of zero is stored in this field. |
+ ||||||||||||||||||||||||
Flags |
+ The flags indicate certain properties for a filter. + The bit values defined so far are: +
|
+ ||||||||||||||||||||||||
Number of Client Data Values |
+ + Each filter can store integer values to control how the filter + operates. The number of entries in the Client Data array + is stored in this field. + |
+ ||||||||||||||||||||||||
Name |
+ + If the Name Length field is non-zero then it will contain + the size of this field, padded to a multiple of eight. This field + contains a null-terminated, ASCII character string to serve as a + comment/name for the filter. + |
+ ||||||||||||||||||||||||
Client Data |
+ + This is an array of four-byte integers which will be passed to the + filter function. The Client Data Number of Values + determines the number of elements in the array. + |
+ ||||||||||||||||||||||||
Padding |
+ Four bytes of zeroes are added to the message at this + point if the Client Data Number of Values field contains an odd + number. |
+
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Number of Filters | +This space inserted + only to align table nicely | +|
Filter Description List (variable + size) + |
+ |||
| Field Name | +Description | +
|---|---|
Version |
+ The version number for this message. This table + describes version 2. |
+
Number of Filters |
+ The total number of filters described in this + message. The maximum possible number of filters in a message is 32. |
+
Filter Description List |
+ A description of each filter. A filter description + appears in the next table. |
+
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Filter Identification Value | +Name Length (optional) | +||
| Flags | +Number Client Data Values | +||
Name (variable size, optional) + |
+ |||
Client Data (variable size, + optional) + |
+ |||
| Field Name | +Description | +||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filter Identification Value |
+
+ + This value, often referred to as a filter identifier, is designed + to be a unique identifier for the filter. Values from zero through + 32,767 are reserved for filters supported by The HDF Group in the + HDF5 Library and for filters requested and supported by third + parties. Filters supported by The HDF Group are documented + immediately below. Information on 3rd-party filters can be found at + The HDF Group’s + Contributions page. + + +
+ To request a filter identifier, please contact The HDF
+ Group’s Help Desk at
Values from 32768 to 65535 are reserved for non-distributed + uses (for example, internal company usage) or for application usage + when testing a feature. The HDF Group does not track or document + the use of the filters with identifiers from this range. + +The filters currently in library version 1.8.0 are listed + below: +
|
+ ||||||||||||||||||||||||
Name Length |
+ Each filter has an optional null-terminated ASCII + name and this field holds the length of the name including the null + termination padded with nulls to be a multiple of eight. If the + filter has no name then a value of zero is stored in this field. ++ Filters with IDs less than 256 (in other words, filters that are + defined in this format documentation) do not store the Name + Length or Name fields. + |
+ ||||||||||||||||||||||||
Flags |
+ The flags indicate certain properties for a filter. + The bit values defined so far are: +
|
+ ||||||||||||||||||||||||
Number of Client Data Values |
+ + Each filter can store integer values to control how the filter + operates. The number of entries in the Client Data array + is stored in this field. + |
+ ||||||||||||||||||||||||
Name |
+ + If the Name Length field is non-zero then it will contain + the size of this field, not padded to a multiple of eight. + This field contains a non-null-terminated, ASCII character + string to serve as a comment/name for the filter. + ++ Filters that are defined in this format documentation such as + deflate and shuffle do not store the Name Length or Name + fields. + |
+ ||||||||||||||||||||||||
Client Data |
+ + This is an array of four-byte integers which will be passed to the + filter function. The Client Data Number of Values + determines the number of elements in the array. + |
+
| Header Message Name: Attribute | +|
| Header Message Type: 0x000C | +|
| Length: Varies | +|
| Status: Optional; may be repeated. | +|
| Description: | ++ The Attribute message is used to store objects in the HDF5 + file which are used as attributes, or “metadata” about + the current object. An attribute is a small dataset; it has a name, + a datatype, a dataspace, and raw data. Since attributes are stored + in the object header, they should be relatively small (in other + words, less than 64KB). They can be associated with any type of + object which has an object header (groups, datasets, or committed + (named) datatypes). + ++ In 1.8.x versions of the library, attributes can be larger than + 64KB. See the + “Special Issues” section of the Attributes chapter in + the HDF5 User Guide for more information. + +Note: Attributes on an object must have unique names: the + HDF5 Library currently enforces this by causing the creation of an + attribute with a duplicate name to fail. Attributes on different + objects may have the same name, however. |
+
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Reserved (zero) | +Name Size | +|
| Datatype Size | +Dataspace Size | +||
Name (variable size) + |
+ |||
Datatype (variable size) + |
+ |||
Dataspace (variable size) + |
+ |||
Data (variable size) + |
+ |||
| Field Name | +Description | +||||||
|---|---|---|---|---|---|---|---|
Version |
+ The version number information is used for changes in + the format of the attribute message and is described here: +
|
+ ||||||
Name Size |
+ + The length of the attribute name in bytes including the null + terminator. Note that the Name field below may contain + additional padding not represented by this field. + |
+ ||||||
Datatype Size |
+ + The length of the datatype description in the Datatype + field below. Note that the Datatype field may contain + additional padding not represented by this field. + |
+ ||||||
Dataspace Size |
+ + The length of the dataspace description in the Dataspace + field below. Note that the Dataspace field may contain + additional padding not represented by this field. + |
+ ||||||
Name |
+ The null-terminated attribute name. This field is + padded with additional null characters to make it a multiple of + eight bytes. |
+ ||||||
Datatype |
+ The datatype description follows the same format as + described for the datatype object header message. This field is + padded with additional zero bytes to make it a multiple of eight + bytes. |
+ ||||||
Dataspace |
+ The dataspace description follows the same format as + described for the dataspace object header message. This field is + padded with additional zero bytes to make it a multiple of eight + bytes. |
+ ||||||
Data |
+ + The raw data for the attribute. The size is determined from the + datatype and dataspace descriptions. This field is not + padded with additional bytes. + |
+
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Flags | +Name Size | +|
| Datatype Size | +Dataspace Size | +||
Name (variable size) + |
+ |||
Datatype (variable size) + |
+ |||
Dataspace (variable size) + |
+ |||
Data (variable size) + |
+ |||
| Field Name | +Description | +||||||
|---|---|---|---|---|---|---|---|
Version |
+ The version number information is used for changes in + the format of the attribute message and is described here: +
|
+ ||||||
Flags |
+ This bit field contains extra information about + interpreting the attribute message: +
|
+ ||||||
Name Size |
+ The length of the attribute name in bytes including + the null terminator. |
+ ||||||
Datatype Size |
+ + The length of the datatype description in the Datatype + field below. + |
+ ||||||
Dataspace Size |
+ + The length of the dataspace description in the Dataspace + field below. + |
+ ||||||
Name |
+ + The null-terminated attribute name. This field is not + padded with additional bytes. + |
+ ||||||
Datatype |
+ The datatype description follows the same format as + described for the datatype object header message. ++ If the Flag field indicates this attribute’s + datatype is shared, this field will contain a “shared + message” encoding instead of the datatype encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Dataspace |
+ The dataspace description follows the same format as + described for the dataspace object header message. ++ If the Flag field indicates this attribute’s + dataspace is shared, this field will contain a “shared + message” encoding instead of the dataspace encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Data |
+ The raw data for the attribute. The size is + determined from the datatype and dataspace descriptions. ++ This field is not padded with additional zero bytes. + |
+
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Flags | +Name Size | +|
| Datatype Size | +Dataspace Size | +||
| Name Character Set Encoding | +This space inserted + only to align table nicely | +||
Name (variable size) + |
+ |||
Datatype (variable size) + |
+ |||
Dataspace (variable size) + |
+ |||
Data (variable size) + |
+ |||
| Field Name | +Description | +||||||
|---|---|---|---|---|---|---|---|
Version |
+ The version number information is used for changes in + the format of the attribute message and is described here: +
|
+ ||||||
Flags |
+ This bit field contains extra information about + interpreting the attribute message: +
|
+ ||||||
Name Size |
+ The length of the attribute name in bytes including + the null terminator. |
+ ||||||
Datatype Size |
+ + The length of the datatype description in the Datatype + field below. + |
+ ||||||
Dataspace Size |
+ + The length of the dataspace description in the Dataspace + field below. + |
+ ||||||
Name Character Set Encoding |
+ The character set encoding for the attribute’s + name: +
|
+ ||||||
Name |
+ + The null-terminated attribute name. This field is not + padded with additional bytes. + |
+ ||||||
Datatype |
+ The datatype description follows the same format as + described for the datatype object header message. ++ If the Flag field indicates this attribute’s + datatype is shared, this field will contain a “shared + message” encoding instead of the datatype encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Dataspace |
+ The dataspace description follows the same format as + described for the dataspace object header message. ++ If the Flag field indicates this attribute’s + dataspace is shared, this field will contain a “shared + message” encoding instead of the dataspace encoding. + ++ This field is not padded with additional bytes. + |
+ ||||||
Data |
+ The raw data for the attribute. The size is + determined from the datatype and dataspace descriptions. ++ This field is not padded with additional zero bytes. + |
+
| Header Message Name: Object Comment | +|
| Header Message Type: 0x000D | +|
| Length: Varies | +|
| Status: Optional; may not be repeated. | +|
| Description: | +The object comment is designed to be a short description of
+ an object. An object comment is a sequence of non-zero (\0)
+ ASCII characters with no other formatting included by the library.
+ |
+
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
Comment (variable size) + |
+ |||
| Field Name | +Description | +
|---|---|
Name |
+ A null terminated ASCII character string. |
+
| Header Message Name: Object Modification + Time (Old) | +|
| Header Message Type: 0x000E | +|
| Length: Fixed | +|
| Status: Optional; may not be repeated. | +|
| Description: | +The object modification date and time is a timestamp + which indicates (using ISO-8601 date and time format) the last + modification of an object. The time is updated when any object + header message changes according to the system clock where the + change was posted. All fields of this message should be interpreted + as coordinated universal time (UTC). ++ This modification time message is deprecated in favor of the + “new” Object + Modification Time message and is no longer written to the file in + versions of the HDF5 Library after the 1.6.0 version. + |
+
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Year | +|||
| Month | +Day of Month | +||
| Hour | +Minute | +||
| Second | +Reserved | +||
| Field Name | +Description | +
|---|---|
Year |
+
+ The four-digit year as an ASCII string. For example,
+ |
+
Month |
+
+ The month number as a two digit ASCII string where January is
+ |
+
Day of Month |
+
+ The day number within the month as a two digit ASCII string. The
+ first day of the month is
+ |
+
Hour |
+
+ The hour of the day as a two digit ASCII string where midnight is
+ |
+
Minute |
+
+ The minute of the hour as a two digit ASCII string where the first
+ minute of the hour is
+ |
+
Second |
+
+ The second of the minute as a two digit ASCII string where the
+ first second of the minute is
+ |
+
Reserved |
+ This field is reserved and should always be zero. |
+
| Header Message Name: Shared Message Table | +|
| Header Message Type: 0x000F | +|
| Length: Fixed | +|
| Status: Optional; may not be repeated. | +|
| Description: | +This message is used to locate the table of shared object + header message (SOHM) indexes. Each index consists of information to + find the shared messages from either the heap or object header. This + message is only found in the superblock extension. + | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +This space inserted + only to align table nicely | +||
Shared Object Header Message Table + AddressO + |
+ |||
| Number of Indices | +This space inserted + only to align table nicely | +||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| Field Name | +Description | +
|---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+
Shared Object Header Message Table Address |
+ This field is the address of the master table for + shared object header message indexes. |
+
Number of Indices |
+ This field is the number of indices in the master + table. |
+
| Header Message Name: Object Header + Continuation | +|
| Header Message Type: 0x0010 | +|
| Length: Fixed | +|
| Status: Optional; may be repeated. | +|
| Description: | +The object header continuation is the location in the file + of a block containing more header messages for the current data + object. This can be used when header blocks become too large or are + likely to change over time. | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
OffsetO + |
+ |||
LengthL + |
+ |||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| + | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
| Field Name | +Description | +
|---|---|
Offset |
+ This value is the address in the file where the + header continuation block is located. |
+
Length |
+ This value is the length in bytes of the header + continuation block in the file. |
+
The format of the header continuation block that this message + points to depends on the version of the object header that the message + is contained within.
+ ++ Continuation blocks for version 1 object headers have no special + formatting information; they are merely a list of object header message + info sequences (type, size, flags, reserved bytes and data for each + message sequence). See the description of Version 1 Data Object Header Prefix. +
+ ++ Continuation blocks for version 2 object headers do have + special formatting information as described here (see also the + description of Version 2 Data + Object Header Prefix.): +
+| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Signature | +|||
| Header Message Type #1 | +Size of Header Message Data #1 | +Header Message #1 Flags | +|
| Header Message #1 Creation Order (optional) | +This space inserted + only to align table nicely | +||
Header Message Data #1 + |
+ |||
| . . . |
+ |||
| Header Message Type #n | +Size of Header Message Data #n | +Header Message #n Flags | +|
| Header Message #n Creation Order (optional) | +This space inserted + only to align table nicely | +||
Header Message Data #n + |
+ |||
| Gap (optional, variable size) | +|||
| Checksum | +|||
| Field Name | +Description | +
|---|---|
Signature |
+
+
+ The ASCII character string “
+ |
+
Header Message #n Type |
+
+ Same format as version 1 of the object header, described + above. + |
+
Size of Header Message #n Data |
+
+ Same format as version 1 of the object header, described + above. + |
+
Header Message #n Flags |
+
+ Same format as version 1 of the object header, described + above. + |
+
Header Message #n Creation Order |
+
+ This field stores the order that a message of a given type + was created in. ++ This field is present if bit 2 of flags is set. + + |
+
Header Message #n Data |
+
+ Same format as version 1 of the object header, described + above. + |
+
Gap |
+
+ A gap in an object header chunk is inferred by the end of the + messages for the chunk before the beginning of the chunk’s + checksum. Gaps are always smaller than the size of an object header + message prefix (message type + message size + message flags). +Gaps are formed when a message (typically an attribute + message) in an earlier chunk is deleted and a message from a later + chunk that does not quite fit into the free space is moved into the + earlier chunk. + |
+
Checksum |
+
+ This is the checksum for the object header chunk. + |
+
| Header Message Name: Symbol Table Message | +|
| Header Message Type: 0x0011 | +|
| Length: Fixed | +|
| Status: Required for “old + style” groups; may not be repeated. | +|
| Description: | +Each “old style” group has a v1 B-tree and a + local heap for storing symbol table entries, which are located with + this message. | +
| Format of data: See the tables below. | +|
| byte | -byte | -byte | -byte | +byte | +byte | +byte | +byte |
|---|---|---|---|---|---|---|---|
v1 B-tree AddressO |
+ v1 B-tree AddressO + |
||||||
Local Heap AddressO |
+ Local Heap AddressO + |
||||||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
| Field Name | -Description | +Field Name | +Description |
|---|---|---|---|
v1 B-tree Address |
- This value is the address of the v1 B-tree containing the - symbol table entries for the group. |
+ v1 B-tree Address |
+ This value is the address of the v1 B-tree containing + the symbol table entries for the group. |
Local Heap Address |
- This value is the address of the local heap containing - the link names for the symbol table entries for the group. |
+ Local Heap Address |
+ This value is the address of the local heap + containing the link names for the symbol table entries for the + group. |
| Header Message Name: Object - Modification Time | |
| Header Message Type: 0x0012 | |
| Length: Fixed | |
| Status: Optional; may not be - repeated. | |
| Description: | -The object modification time is a timestamp which indicates - the time of the last modification of an object. The time is - updated when any object header message changes according to - the system clock where the change was posted. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Reserved (zero) | -||
| Seconds After UNIX Epoch | -|||
| Field Name | -Description | -||||||
|---|---|---|---|---|---|---|---|
Version |
- The version number is used for changes in the format of Object Modification Time - and is described here: -
|
- ||||||
Seconds After UNIX Epoch |
- A 32-bit unsigned integer value that stores the number of - seconds since 0 hours, 0 minutes, 0 seconds, January 1, 1970, - Coordinated Universal Time. |
-
| Header Message Name: B-tree - ‘K’ Values | |
| Header Message Type: 0x0013 | |
| Length: Fixed | |
| Status: Optional; may not be - repeated. | |
| Description: | -This message retrieves non-default ‘K’ values - for internal and leaf nodes of a group or indexed storage v1 - B-trees. This message is only found in the superblock - extension. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Indexed Storage Internal Node K | -This space inserted only to align table nicely | -|
| Group Internal Node K | -Group Leaf Node K | -||
| Field Name | -Description | -
|---|---|
Version |
- The version number for this message. This document describes - version 0. - |
-
Indexed Storage Internal Node K |
- This is the node ‘K’ value for each internal node of an - indexed storage v1 B-tree. See the description of this field - in version 0 and 1 of the superblock as well the section on - v1 B-trees. - - |
-
Group Internal Node K |
- This is the node ‘K’ value for each internal node of a group - v1 B-tree. See the description of this field in version 0 and - 1 of the superblock as well as the section on v1 B-trees. - - |
-
Group Leaf Node K |
- This is the node ‘K’ value for each leaf node of a group v1 - B-tree. See the description of this field in version 0 and 1 - of the superblock as well as the section on v1 B-trees. - - |
-
| Header Message Name: Driver - Info | |
| Header Message Type: 0x0014 | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| - Description: | -This message contains information needed by the file driver - to reopen a file. This message is only found in the - superblock extension: see the - “Disk Format: Level 0C - Superblock Extension” - section for more information. For more information on the fields - in the driver info message, see the - “Disk Format : Level 0B - File Driver Info” - section; those who use the multi and family file drivers will - find this section particularly helpful. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -This space inserted only to align table nicely | -||
Driver Identification |
- |||
| Driver Information Size | -This space inserted only to align table nicely | -||
Driver Information (variable size) |
- |||
| Field Name | -Description | -
|---|---|
Version |
- The version number for this message. This document describes - version 0. - |
-
Driver Identification |
- This is an eight-byte ASCII string without null termination which - identifies the driver. - - |
-
Driver Information Size |
- The size in bytes of the Driver Information field of this - message. - |
-
Driver Information |
- Driver information is stored in a format defined by the file driver. - |
-
| Header Message Name: Attribute - Info | |
| Header Message Type: 0x0015 | |
| Length: Varies | |
| Status: Optional; may not be - repeated. | |
| Description: | -This message stores information about the attributes on an - object, such as the maximum creation index for the attributes - created and the location of the attribute storage when the - attributes are stored “densely”. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Flags | -Maximum Creation Index (optional) | -|
Fractal Heap AddressO |
- |||
Attribute Name v2 B-tree AddressO |
- |||
Attribute Creation Order v2 B-tree AddressO (optional) |
- |||
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - |
| Field Name | -Description | -||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
- The version number for this message. This document describes - version 0. - |
- ||||||||
Flags |
- This is the attribute index information flag with the - following definition: - -
|
- ||||||||
Maximum Creation Index |
- The is the maximum creation order index value for the - attributes on the object. -This field is present if bit 0 of Flags is set. - |
- ||||||||
Fractal Heap Address |
- This is the address of the fractal heap to store dense - attributes. - |
- ||||||||
Attribute Name v2 B-tree Address |
- This is the address of the version 2 B-tree to index the - names of densely stored attributes. - |
- ||||||||
Attribute Creation Order v2 B-tree Address |
- This is the address of the version 2 B-tree to index the - creation order of densely stored attributes. -This field is present if bit 1 of Flags is set. - |
-
| Header Message Name: Object Reference - Count | |
| Header Message Type: 0x0016 | |
| Length: Fixed | |
| Status: Optional; may not be - repeated. | |
| Description: | -This message stores the number of hard links (in groups or - objects) pointing to an object: in other words, its - reference count. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -This space inserted only to align table nicely | -||
| Reference count | -|||
| Field Name | -Description | -
|---|---|
Version |
- The version number for this message. This document describes - version 0. - |
-
Reference Count |
- The unsigned 32-bit integer is the reference count for the - object. This message is only present in “version 2” - (or later) object headers, and if not present those object - header versions, the reference count for the object is assumed - to be 1. - |
-
| Header Message Name: File Space - Info | |
| Header Message Type: 0x0018 | |
| Length: Fixed | |
| Status: Optional; may not be - repeated. | |
| - Description: | -This message stores the file space management strategy (see - description below) that the library uses in handling file space - request for the file. It also contains the free-space section - threshold used by the library’s free-space managers for - the file. If the strategy is 1, this message also contains the - addresses of the file’s free-space managers which track - free space for each type of file space allocation. There are - six basic types of file space allocation: superblock, B-tree, - raw data, global heap, local heap, and object header. See the - description of Free-space - Manager as well the description of allocation types in - Appendix B. |
| Format of Data: See the tables - below. | |
| byte | -byte | -byte | -byte | -
|---|---|---|---|
| Version | -Strategy | -ThresholdL | -|
| Super-block Free-space Manager AddressO | -|||
| B-tree Free-space Manager AddressO | -|||
| Raw Data Free-space Manager AddressO | -|||
| Global Heap Free-space Manager AddressO | -|||
| Local Heap Free-space Manager AddressO | -|||
| Object Header Free-space Manager AddressO | -|||
| Header Message Name: Object Modification + Time | +|
| - | - (Items marked with an ‘O’ in the above table are of the size - specified in “Size of Offsets” field in the superblock.) - | Header Message Type: 0x0012 | +
| - | - (Items marked with an ‘L’ in the above table are of the size - specified in “Size of Lengths” field in the superblock.) - |
| Field Name | -Description | -||||||
|---|---|---|---|---|---|---|---|
| byte | +byte | +byte | +byte | +||||
Version |
- This is the version number of this message. This document describes - version 0. - |
- ||||||
| Version | +Reserved (zero) | +||||||
Strategy |
- This is the file space management strategy for the file. - There are four types of strategies: -
| ||||||
1 |
- With this strategy, the HDF5 Library’s free-space managers track the
- free space that results from the manipulation of HDF5 objects
- in the HDF5 file. The free space information is saved when the
- file is closed, and reloaded when the file is reopened.
- - When space is needed for file metadata or raw data, - the HDF5 Library first requests space from the library’s free-space - managers. If the request is not satisfied, the library requests space - from the aggregators. If the request is still not satisfied, - the library requests space from the virtual file driver. - That is, the library will use all of the mechanisms for allocating - space. - |
- ||||||
| Field Name | +Description | +||||||
|---|---|---|---|---|---|---|---|
2 |
- This is the HDF5 Library’s default file space management strategy.
- With this strategy, the library’s free-space managers track the free space
- that results from the manipulation of HDF5 objects in the HDF5 file.
- The free space information is NOT saved when the file is closed and
- the free space that exists upon file closing becomes unaccounted
- space in the file.
- - As with strategy #1, the library will try all of the mechanisms - for allocating space. When space is needed for file metadata or - raw data, the library first requests space from the free-space - managers. If the request is not satisfied, the library requests - space from the aggregators. If the request is still not satisfied, - the library requests space from the virtual file driver. - |
- ||||||
Version |
+ The version number is used for changes in the format + of Object Modification Time and is described here: +
|
- ||||||
0 |
+ Never used. | +||||||
Threshold |
- This is the free-space section threshold. - The library’s free-space managers will track only - free-space sections with size greater than or equal to - threshold. The default is to track free-space - sections of all sizes. - |
- ||||||
Superblock Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_SUPER allocation type. - - |
- ||||||
1 |
+ Used by Version 1.6.1 and after of the library to encode + time. In this version, the time is the seconds after Epoch. | +
B-tree Free-space Manager Address
This is the address of the free-space manager for - H5FD_MEM_BTREE allocation type. -
-Seconds After UNIX Epoch
A 32-bit unsigned integer value that stores the + number of seconds since 0 hours, 0 minutes, 0 seconds, January 1, + 1970, Coordinated Universal Time.
Raw Data Free-space Manager Address
This is the address of the free-space manager for - H5FD_MEM_DRAW allocation type. -
-Global Heap Free-space Manager Address
This is the address of the free-space manager for - H5FD_MEM_GHEAP allocation type. -
-| Header Message Name: B-tree + ‘K’ Values | +|
| Header Message Type: 0x0013 | +|
| Length: Fixed | +|
| Status: Optional; may not be repeated. | +|
| Description: | +This message retrieves non-default ‘K’ values + for internal and leaf nodes of a group or indexed storage v1 + B-trees. This message is only found in the superblock + extension. + | +
| Format of Data: See the tables below. | +|
Local Heap Free-space Manager Address
This is the address of the free-space manager for - H5FD_MEM_LHEAP allocation type. -
-Object Header Free-space Manager Address |
- This is the address of the free-space manager for - H5FD_MEM_OHDR allocation type. - - |
-
| Field Name | +Description | +
|---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+
Indexed Storage Internal Node K |
+ This is the node ‘K’ value for each + internal node of an indexed storage v1 B-tree. See the description + of this field in version 0 and 1 of the superblock as well the + section on v1 B-trees. |
+
Group Internal Node K |
+ This is the node ‘K’ value for each + internal node of a group v1 B-tree. See the description of this + field in version 0 and 1 of the superblock as well as the section + on v1 B-trees. |
+
Group Leaf Node K |
+ This is the node ‘K’ value for each leaf + node of a group v1 B-tree. See the description of this field in + version 0 and 1 of the superblock as well as the section on v1 + B-trees. |
+
| Header Message Name: Driver Info | +|
| Header Message Type: 0x0014 | +|
| Length: Varies | +|
| Status: Optional; may not be repeated. | +|
| Description: | +This message contains information needed by the file driver + to reopen a file. This message is only found in the + superblock extension: see the + “Disk Format: Level 0C - Superblock Extension” section + for more information. For more information on the fields in the + driver info message, see the “Disk + Format : Level 0B - File Driver Info” section; those who use + the multi and family file drivers will find this section + particularly helpful. + | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +This space inserted + only to align table nicely | +||
Driver Identification |
+ |||
| Driver Information Size | +This space inserted + only to align table nicely | +||
+ Driver Information (variable size) + + |
+ |||
| Field Name | +Description | +
|---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+
Driver Identification |
+ This is an eight-byte ASCII string without null + termination which identifies the driver. |
+
Driver Information Size |
+ + The size in bytes of the Driver Information field of this + message. + |
+
Driver Information |
+ Driver information is stored in a format defined by + the file driver. |
+
| Header Message Name: Attribute Info | +|
| Header Message Type: 0x0015 | +|
| Length: Varies | +|
| Status: Optional; may not be repeated. | +|
| Description: | +This message stores information about the attributes on an + object, such as the maximum creation index for the attributes + created and the location of the attribute storage when the + attributes are stored “densely”. | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Flags | +Maximum Creation Index (optional) | +|
Fractal Heap AddressO + |
+ |||
Attribute Name v2 B-tree AddressO + |
+ |||
Attribute Creation Order v2 B-tree + AddressO (optional) + |
+ |||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| Field Name | +Description | +||||||||
|---|---|---|---|---|---|---|---|---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+ ||||||||
Flags |
+ This is the attribute index information flag with the + following definition: +
|
+ ||||||||
Maximum Creation Index |
+ The is the maximum creation order index value for the + attributes on the object. ++ This field is present if bit 0 of Flags is set. + |
+ ||||||||
Fractal Heap Address |
+ This is the address of the fractal heap to store + dense attributes. |
+ ||||||||
Attribute Name v2 B-tree Address |
+ This is the address of the version 2 B-tree to index + the names of densely stored attributes. |
+ ||||||||
Attribute Creation Order v2 B-tree Address |
+ This is the address of the version 2 B-tree to index + the creation order of densely stored attributes. ++ This field is present if bit 1 of Flags is set. + |
+
| Header Message Name: Object Reference + Count | +|
| Header Message Type: 0x0016 | +|
| Length: Fixed | +|
| Status: Optional; may not be repeated. | +|
| Description: | +This message stores the number of hard links (in groups or + objects) pointing to an object: in other words, its reference + count. + | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +This space inserted + only to align table nicely | +||
| Reference count | +|||
| Field Name | +Description | +
|---|---|
Version |
+ The version number for this message. This document + describes version 0. |
+
Reference Count |
+ The unsigned 32-bit integer is the reference count + for the object. This message is only present in “version + 2” (or later) object headers, and if not present those object + header versions, the reference count for the object is assumed to + be 1. |
+
| Header Message Name: File Space Info | +|
| Header Message Type: 0x0018 | +|
| Length: Fixed | +|
| Status: Optional; may not be repeated. | +|
| Description: | +This message stores the file space management strategy (see + description below) that the library uses in handling file space + request for the file. It also contains the free-space section + threshold used by the library’s free-space managers for the + file. If the strategy is 1, this message also contains the addresses + of the file’s free-space managers which track free space for + each type of file space allocation. There are six basic types of + file space allocation: superblock, B-tree, raw data, global heap, + local heap, and object header. See the description of Free-space Manager as well the + description of allocation types in Appendix + B. + | +
| Format of Data: See the tables below. | +|
| byte | +byte | +byte | +byte | +
|---|---|---|---|
| Version | +Strategy | +ThresholdL | +|
| Super-block Free-space Manager AddressO | +|||
| B-tree Free-space Manager AddressO | +|||
| Raw Data Free-space Manager AddressO | +|||
| Global Heap Free-space Manager AddressO | +|||
| Local Heap Free-space Manager AddressO | +|||
| Object Header Free-space Manager AddressO | +|||
| + | (Items marked with an ‘O’ in the + above table are of the size specified in “Size of + Offsets” field in the superblock.) | +
| + | (Items marked with an ‘L’ in the above table are + of the size specified in “Size of Lengths” field in the + superblock.) | +
| Field Name | +Description | +||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
+ This is the version number of this message. This + document describes version 0. |
+ ||||||||||
Strategy |
+ This is the file space management strategy for the + file. There are four types of strategies: +
|
+ ||||||||||
Threshold |
+ + This is the free-space section threshold. The library’s + free-space managers will track only free-space sections with size + greater than or equal to threshold. The default is to + track free-space sections of all sizes. + |
+ ||||||||||
Superblock Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_SUPER allocation type. |
+ ||||||||||
B-tree Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_BTREE allocation type. |
+ ||||||||||
Raw Data Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_DRAW allocation type. |
+ ||||||||||
Global Heap Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_GHEAP allocation type. |
+ ||||||||||
Local Heap Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_LHEAP allocation type. |
+ ||||||||||
Object Header Free-space Manager Address |
+ This is the address of the free-space manager for + H5FD_MEM_OHDR allocation type. |
+
The data for an object is stored separately from its header - information in the file and may not actually be located in the HDF5 file - itself if the header indicates that the data is stored externally. The - information for each record in the object is stored according to the - dimensionality of the object (indicated in the dataspace header message). - Multi-dimensional array data is stored in C order; in other words, the - “last” dimension changes fastest.
+ information in the file and may not actually be located in the HDF5 + file itself if the header indicates that the data is stored externally. + The information for each record in the object is stored according to + the dimensionality of the object (indicated in the dataspace header + message). Multi-dimensional array data is stored in C order; in other + words, the “last” dimension changes fastest. -Data whose elements are composed of atomic datatypes are stored in IEEE - format, unless they are specifically defined as being stored in a different - machine format with the architecture-type information from the datatype - header message. This means that each architecture will need to [potentially] - byte-swap data values into the internal representation for that particular - machine.
+Data whose elements are composed of atomic datatypes are stored + in IEEE format, unless they are specifically defined as being stored in + a different machine format with the architecture-type information from + the datatype header message. This means that each architecture will + need to [potentially] byte-swap data values into the internal + representation for that particular machine.
-Data with a variable-length datatype is stored in the global heap - of the HDF5 file. Global heap identifiers are stored in the - data object storage.
+Data with a variable-length datatype is stored in the global heap + of the HDF5 file. Global heap identifiers are stored in the data object + storage.
-Data whose elements are composed of reference datatypes are stored in - several different ways depending on the particular reference type involved. - Object pointers are just stored as the offset of the object header being - pointed to with the size of the pointer being the same number of bytes as - offsets in the file.
+Data whose elements are composed of reference datatypes are + stored in several different ways depending on the particular reference + type involved. Object pointers are just stored as the offset of the + object header being pointed to with the size of the pointer being the + same number of bytes as offsets in the file.
Dataset region references are stored as a heap-ID which points to -the following information within the file-heap: an offset of the object -pointed to, number-type information (same format as header message), -dimensionality information (same format as header message), sub-set start -and end information (in other words, a coordinate location for each), -and field start and end names (in other words, a [pointer to the] string -indicating the first field included and a [pointer to the] string name -for the last field).
+ the following information within the file-heap: an offset of the object + pointed to, number-type information (same format as header message), + dimensionality information (same format as header message), sub-set + start and end information (in other words, a coordinate location for + each), and field start and end names (in other words, a [pointer to + the] string indicating the first field included and a [pointer to the] + string name for the last field). -Data of a compound datatype is stored as a contiguous stream of the items - in the structure, with each item formatted according to its datatype.
+Data of a compound datatype is stored as a contiguous stream of + the items in the structure, with each item formatted according to its + datatype.
Definitions of various terms used in this document are included in -this section.
+Definitions of various terms used in this document are included + in this section.
-| Term | -Definition | -
|---|---|
| Term | +Definition | +
| Undefined Address | -The undefined
- address for a file is a file address with all bits
- set: in other words, 0xffff...ff. |
-
| Undefined Address | +The undefined address for a
+ file is a file address with all bits set: in other words, 0xffff...ff.
+ |
+
| Unlimited Size | -The unlimited size
- for a size is a value with all bits set: in other words,
- 0xffff...ff. |
-
| Unlimited Size | +The unlimited size for a size is
+ a value with all bits set: in other words, 0xffff...ff.
+ |
+
There are six basic types of file memory allocation as follows: -
-| Basic Allocation Type | -Description | -
|---|
| Basic Allocation Type | +Description | +
|---|---|
| H5FD_MEM_SUPER | -File memory allocated for Superblock. | -
| H5FD_MEM_SUPER | +File memory allocated for Superblock. | +
| H5FD_MEM_BTREE | -File memory allocated for B-tree. | -
| H5FD_MEM_BTREE | +File memory allocated for B-tree. | +
| H5FD_MEM_DRAW | -File memory allocated for raw data. | -
| H5FD_MEM_DRAW | +File memory allocated for raw data. | +
| H5FD_MEM_GHEAP | -File memory allocated for Global Heap. | -
| H5FD_MEM_GHEAP | +File memory allocated for Global Heap. | +
| H5FD_MEM_LHEAP | -File memory allocated for Local Heap. | -
| H5FD_MEM_LHEAP | +File memory allocated for Local Heap. | +
| H5FD_MEM_OHDR | -File memory allocated for Object Header. | -
There are other file memory allocation types that are mapped to the -above six basic allocation types because they are similar in nature. -The mapping is listed in the following table: -
+There are other file memory allocation types that are mapped to + the above six basic allocation types because they are similar in + nature. The mapping is listed in the following table:
-| Basic Allocation Type | -Mapping of Allocation Types to Basic Allocation Types | -
|---|
| Basic Allocation Type | +Mapping of Allocation Types to Basic Allocation Types | +
|---|---|
| H5FD_MEM_SUPER | -none | -
| H5FD_MEM_SUPER | +none | +
| H5FD_MEM_BTREE | -H5FD_MEM_SOHM_INDEX | -
| H5FD_MEM_BTREE | +H5FD_MEM_SOHM_INDEX | +
| H5FD_MEM_DRAW | -H5FD_MEM_FHEAP_HUGE_OBJ | -
| H5FD_MEM_DRAW | +H5FD_MEM_FHEAP_HUGE_OBJ | +
| H5FD_MEM_GHEAP | -none | -
| H5FD_MEM_GHEAP | +none | +
| H5FD_MEM_LHEAP | -H5FD_MEM_FHEAP_DBLOCK, H5FD_MEM_FSPACE_SINFO | -
| H5FD_MEM_LHEAP | +H5FD_MEM_FHEAP_DBLOCK, H5FD_MEM_FSPACE_SINFO | +
| H5FD_MEM_OHDR | -H5FD_MEM_FHEAP_HDR, H5FD_MEM_FHEAP_IBLOCK, H5FD_MEM_FSPACE_HDR, H5FD_MEM_SOHM_TABLE | -
Allocation types that are mapped to basic allocation types are described below: -
+Allocation types that are mapped to basic allocation types are + described below:
-| Allocation Type | -Description | -
|---|
| Allocation Type | +Description | +
|---|---|
| H5FD_MEM_FHEAP_HDR | -File memory allocated for Fractal Heap Header. | -
| H5FD_MEM_FHEAP_HDR | +File memory allocated for Fractal Heap Header. | +
| H5FD_MEM_FHEAP_DBLOCK | -File memory allocated for Fractal Heap Direct Blocks. | -
| H5FD_MEM_FHEAP_DBLOCK | +File memory allocated for Fractal Heap Direct + Blocks. | +
| H5FD_MEM_FHEAP_IBLOCK | -File memory allocated for Fractal Heap Indirect Blocks. | -
| H5FD_MEM_FHEAP_IBLOCK | +File memory allocated for Fractal Heap Indirect + Blocks. | +
| H5FD_MEM_FHEAP_HUGE_OBJ | -File memory allocated for huge objects in the fractal heap. | -
| H5FD_MEM_FHEAP_HUGE_OBJ | +File memory allocated for huge objects in the fractal heap. | +
| H5FD_MEM_FSPACE_HDR | -File memory allocated for Free-space Manager Header. | -
| H5FD_MEM_FSPACE_HDR | +File memory allocated for Free-space Manager + Header. | +
| H5FD_MEM_FSPACE_SINFO | -File memory allocated for Free-space Section List of the free-space manager. | -
| H5FD_MEM_SOHM_TABLE | -File memory allocated for Shared Object Header Message Table. | -
| H5FD_MEM_SOHM_INDEX | -File memory allocated for Shared Message Record List. | -