Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2025-11-11 The HDF5 Field Guide

- Main Page
- Getting started
- User Guide
- Reference Manual
- Cookbook
- Technical Notes
- RFCs
- Specifications
- Glossary
- Full-Text Search
- About

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions
H5FDdevelop.h File Reference
`#include "H5FDpublic.h"`

## Data Structures
struct | H5FD_class_t
struct | H5FD_free_t
struct | H5FD_t

## Macros
#define | H5FD_CLASS_VERSION 0x01 /* File driver struct version */
#define | H5FD_FLMAP_DEFAULT
#define | H5FD_FLMAP_DICHOTOMY
#define | H5FD_FLMAP_SINGLE
#define | H5FD_MEM_EARRAY_DBLK_PAGE H5FD_MEM_LHEAP
#define | H5FD_MEM_EARRAY_DBLOCK H5FD_MEM_LHEAP
#define | H5FD_MEM_EARRAY_HDR H5FD_MEM_OHDR
#define | H5FD_MEM_EARRAY_IBLOCK H5FD_MEM_OHDR
#define | H5FD_MEM_EARRAY_SBLOCK H5FD_MEM_BTREE
#define | H5FD_MEM_FARRAY_DBLK_PAGE H5FD_MEM_LHEAP
#define | H5FD_MEM_FARRAY_DBLOCK H5FD_MEM_LHEAP
#define | H5FD_MEM_FARRAY_HDR H5FD_MEM_OHDR
#define | H5FD_MEM_FHEAP_DBLOCK H5FD_MEM_LHEAP
#define | H5FD_MEM_FHEAP_HDR H5FD_MEM_OHDR
#define | H5FD_MEM_FHEAP_HUGE_OBJ H5FD_MEM_DRAW
#define | H5FD_MEM_FHEAP_IBLOCK H5FD_MEM_OHDR
#define | H5FD_MEM_FSPACE_HDR H5FD_MEM_OHDR
#define | H5FD_MEM_FSPACE_SINFO H5FD_MEM_LHEAP
#define | H5FD_MEM_SOHM_INDEX H5FD_MEM_BTREE
#define | H5FD_MEM_SOHM_TABLE H5FD_MEM_OHDR

## Typedefs
typedef hid_t(* | H5FD_init_t) (void)

## Functions
haddr_t | H5FDalloc (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size)
herr_t | H5FDclose (H5FD_t *file)
int | H5FDcmp (const H5FD_t *f1, const H5FD_t *f2)
herr_t | H5FDctl (H5FD_t *file, uint64_t op_code, uint64_t flags, const void *input, void **output)
herr_t | H5FDdelete (const char *name, hid_t fapl_id)
herr_t | H5FDflush (H5FD_t *file, hid_t dxpl_id, bool closing)
herr_t | H5FDfree (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size)
haddr_t | H5FDget_eoa (H5FD_t *file, H5FD_mem_t type)
haddr_t | H5FDget_eof (H5FD_t *file, H5FD_mem_t type)
herr_t | H5FDget_vfd_handle (H5FD_t *file, hid_t fapl, void **file_handle)
htri_t | H5FDis_driver_registered_by_name (const char *driver_name)
htri_t | H5FDis_driver_registered_by_value (H5FD_class_value_t driver_value)
herr_t | H5FDlock (H5FD_t *file, bool rw)
H5FD_t * | H5FDopen (const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
herr_t | H5FDquery (const H5FD_t *f, unsigned long *flags)
herr_t | H5FDread (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, size_t size, void *buf)
herr_t | H5FDread_from_selection (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, uint32_t count, hid_t mem_space_ids[], hid_t file_space_ids[], haddr_t offsets[], size_t element_sizes[], void *bufs[])
herr_t | H5FDread_selection (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, uint32_t count, hid_t mem_spaces[], hid_t file_spaces[], haddr_t offsets[], size_t element_sizes[], void *bufs[])
herr_t | H5FDread_vector (H5FD_t *file, hid_t dxpl_id, uint32_t count, H5FD_mem_t types[], haddr_t addrs[], size_t sizes[], void *bufs[])
herr_t | H5FDread_vector_from_selection (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, uint32_t count, hid_t mem_spaces[], hid_t file_spaces[], haddr_t offsets[], size_t element_sizes[], void *bufs[])
hid_t | H5FDregister (const H5FD_class_t *cls)
herr_t | H5FDset_eoa (H5FD_t *file, H5FD_mem_t type, haddr_t eoa)
herr_t | H5FDtruncate (H5FD_t *file, hid_t dxpl_id, bool closing)
herr_t | H5FDunlock (H5FD_t *file)
herr_t | H5FDunregister (hid_t driver_id)
herr_t | H5FDwrite (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, size_t size, const void *buf)
herr_t | H5FDwrite_from_selection (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, uint32_t count, hid_t mem_space_ids[], hid_t file_space_ids[], haddr_t offsets[], size_t element_sizes[], const void *bufs[])
herr_t | H5FDwrite_selection (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, uint32_t count, hid_t mem_spaces[], hid_t file_spaces[], haddr_t offsets[], size_t element_sizes[], const void *bufs[])
herr_t | H5FDwrite_vector (H5FD_t *file, hid_t dxpl_id, uint32_t count, H5FD_mem_t types[], haddr_t addrs[], size_t sizes[], const void *bufs[])
herr_t | H5FDwrite_vector_from_selection (H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, uint32_t count, hid_t mem_spaces[], hid_t file_spaces[], haddr_t offsets[], size_t element_sizes[], const void *bufs[])

## Macro Definition Documentation

## ◆ H5FD_CLASS_VERSION

#define H5FD_CLASS_VERSION 0x01 /* File driver struct version */

Version of the file driver struct, H5FD_class_t

## ◆ H5FD_FLMAP_DEFAULT

#define H5FD_FLMAP_DEFAULT

Value:
{ \
H5FD_MEM_DEFAULT, /*default*/ \
H5FD_MEM_DEFAULT, /*super*/ \
H5FD_MEM_DEFAULT, /*btree*/ \
H5FD_MEM_DEFAULT, /*draw*/ \
H5FD_MEM_DEFAULT, /*gheap*/ \
H5FD_MEM_DEFAULT, /*lheap*/ \
H5FD_MEM_DEFAULT /*ohdr*/ \
}
H5FD_MEM_DEFAULT
@ H5FD_MEM_DEFAULT
Definition H5Fpublic.h:146

The default free list map which causes each request type to use it's own free-list.

## ◆ H5FD_FLMAP_DICHOTOMY

#define H5FD_FLMAP_DICHOTOMY

Value:
{ \
H5FD_MEM_SUPER, /*default*/ \
H5FD_MEM_SUPER, /*super*/ \
H5FD_MEM_SUPER, /*btree*/ \
H5FD_MEM_DRAW, /*draw*/ \
H5FD_MEM_DRAW, /*gheap*/ \
H5FD_MEM_SUPER, /*lheap*/ \
H5FD_MEM_SUPER /*ohdr*/ \
}
H5FD_MEM_DRAW
@ H5FD_MEM_DRAW
Definition H5Fpublic.h:153
H5FD_MEM_SUPER
@ H5FD_MEM_SUPER
Definition H5Fpublic.h:151

A free-list map which segregates requests into ‘raw’ or ‘meta’ data pools.

## ◆ H5FD_FLMAP_SINGLE

#define H5FD_FLMAP_SINGLE

Value:
{ \
H5FD_MEM_SUPER, /*default*/ \
H5FD_MEM_SUPER, /*super*/ \
H5FD_MEM_SUPER, /*btree*/ \
H5FD_MEM_SUPER, /*draw*/ \
H5FD_MEM_SUPER, /*gheap*/ \
H5FD_MEM_SUPER, /*lheap*/ \
H5FD_MEM_SUPER /*ohdr*/ \
}

A free-list map which maps all types of allocation requests to a single free list. This is useful for drivers that don't really care about keeping different requests segregated in the underlying file and which want to make most efficient reuse of freed memory. The use of the H5FD_MEM_SUPER free list is arbitrary.

## ◆ H5FD_MEM_EARRAY_DBLK_PAGE

#define H5FD_MEM_EARRAY_DBLK_PAGE H5FD_MEM_LHEAP

Extensible array data block & page; it is mapped to 'lheap' type file memory because it is similar enough to local heap info.

Since
  1.10.0

## ◆ H5FD_MEM_EARRAY_DBLOCK

#define H5FD_MEM_EARRAY_DBLOCK H5FD_MEM_LHEAP

Extensible array data block; it is mapped to 'lheap' type file memory because it is similar enough to local heap info.

Since
  1.10.0

## ◆ H5FD_MEM_EARRAY_HDR

#define H5FD_MEM_EARRAY_HDR H5FD_MEM_OHDR

Extensible array header block; it is mapped to 'ohdr' type file memory to benefit from their similarity.

Since
  1.10.0

## ◆ H5FD_MEM_EARRAY_IBLOCK

#define H5FD_MEM_EARRAY_IBLOCK H5FD_MEM_OHDR

Extensible array index block; it is mapped to 'ohdr' type file memory because these index blocks are similar to extensible array header blocks.

Since
  1.10.0

## ◆ H5FD_MEM_EARRAY_SBLOCK

#define H5FD_MEM_EARRAY_SBLOCK H5FD_MEM_BTREE

Extensible array super block; it is mappend to 'btree' type file memory because the indices are similar enough to B-tree nodes.

Since
  1.10.0

## ◆ H5FD_MEM_FARRAY_DBLK_PAGE

#define H5FD_MEM_FARRAY_DBLK_PAGE H5FD_MEM_LHEAP

Fixed array data block & page; it is mapped to 'lheap' type file memory because it is similar enough to local heap info.

Since
  1.10.0

## ◆ H5FD_MEM_FARRAY_DBLOCK

#define H5FD_MEM_FARRAY_DBLOCK H5FD_MEM_LHEAP

Fixed array data block; it is mapped to 'lheap' type file memory because it is similar enough to local heap info.

Since
  1.10.0

## ◆ H5FD_MEM_FARRAY_HDR

#define H5FD_MEM_FARRAY_HDR H5FD_MEM_OHDR

Fixed array header block; it is mapped to 'ohdr' type file memory to benefit their similarity.

Since
  1.10.0

## ◆ H5FD_MEM_FHEAP_DBLOCK

#define H5FD_MEM_FHEAP_DBLOCK H5FD_MEM_LHEAP

Fractal heap direct block; it is mapped to 'lheap' type file memory, because the fractal heap direct blocks will be replacing local heaps.

## ◆ H5FD_MEM_FHEAP_HDR

#define H5FD_MEM_FHEAP_HDR H5FD_MEM_OHDR

Fractal heap header block; it is mapped to 'ohdr' type file memory to benefit from their similarity.

## ◆ H5FD_MEM_FHEAP_HUGE_OBJ

#define H5FD_MEM_FHEAP_HUGE_OBJ H5FD_MEM_DRAW

Fractal heap 'huge' object; it is mapped to 'draw' type file memory because the fractal heap 'huge' objects represent large objects that are directly stored in the file.

## ◆ H5FD_MEM_FHEAP_IBLOCK

#define H5FD_MEM_FHEAP_IBLOCK H5FD_MEM_OHDR

Fractal heap indirect block; it is mapped to 'ohdr' type file memory because the indirect blocks are similar to fractal heap header blocks.

## ◆ H5FD_MEM_FSPACE_HDR

#define H5FD_MEM_FSPACE_HDR H5FD_MEM_OHDR

Free space header blocks; it is mapped to 'ohdr' type file memory to benefit from their similarity.

## ◆ H5FD_MEM_FSPACE_SINFO

#define H5FD_MEM_FSPACE_SINFO H5FD_MEM_LHEAP

Free space serialized section; it is mapped to 'lheap' type file memory because it is similar enough to local heap info.

## ◆ H5FD_MEM_SOHM_INDEX

#define H5FD_MEM_SOHM_INDEX H5FD_MEM_BTREE

Shared object header message index; it is mapped to 'btree' type file memory because the indices are similar enough to B-tree nodes.

## ◆ H5FD_MEM_SOHM_TABLE

#define H5FD_MEM_SOHM_TABLE H5FD_MEM_OHDR

Shared object header message master table; it is mapped to 'ohdr' type file memory to benefit from their similarity.

## Typedef Documentation

## ◆ H5FD_init_t

typedef hid_t(* H5FD_init_t) (void)

## Function Documentation

## ◆ H5FDalloc()

haddr_t H5FDalloc | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | hsize_t | size )

## ◆ H5FDclose()

herr_t H5FDclose | ( | H5FD_t * | file | ) |

## ◆ H5FDcmp()

int H5FDcmp | ( | const H5FD_t * | f1,
|  | const H5FD_t * | f2 )

## ◆ H5FDctl()

herr_t H5FDctl | ( | H5FD_t * | file,
|  | uint64_t | op_code,
|  | uint64_t | flags,
|  | const void * | input,
|  | void ** | output )

## ◆ H5FDdelete()

herr_t H5FDdelete | ( | const char * | name,
|  | hid_t | fapl_id )

## ◆ H5FDflush()

herr_t H5FDflush | ( | H5FD_t * | file,
|  | hid_t | dxpl_id,
|  | bool | closing )

## ◆ H5FDfree()

herr_t H5FDfree | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | haddr_t | addr,
|  | hsize_t | size )

## ◆ H5FDget_eoa()

haddr_t H5FDget_eoa | ( | H5FD_t * | file,
|  | H5FD_mem_t | type )

## ◆ H5FDget_eof()

haddr_t H5FDget_eof | ( | H5FD_t * | file,
|  | H5FD_mem_t | type )

## ◆ H5FDget_vfd_handle()

herr_t H5FDget_vfd_handle | ( | H5FD_t * | file,
|  | hid_t | fapl,
|  | void ** | file_handle )

## ◆ H5FDis_driver_registered_by_name()

htri_t H5FDis_driver_registered_by_name | ( | const char * | driver_name | ) |

## ◆ H5FDis_driver_registered_by_value()

htri_t H5FDis_driver_registered_by_value | ( | H5FD_class_value_t | driver_value | ) |

## ◆ H5FDlock()

herr_t H5FDlock | ( | H5FD_t * | file,
|  | bool | rw )

## ◆ H5FDopen()

H5FD_t * H5FDopen | ( | const char * | name,
|  | unsigned | flags,
|  | hid_t | fapl_id,
|  | haddr_t | maxaddr )

## ◆ H5FDquery()

herr_t H5FDquery | ( | const H5FD_t * | f,
|  | unsigned long * | flags )

## ◆ H5FDread()

herr_t H5FDread | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | haddr_t | addr,
|  | size_t | size,
|  | void * | buf )

## ◆ H5FDread_from_selection()

herr_t H5FDread_from_selection | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | hid_t | mem_space_ids[],
|  | hid_t | file_space_ids[],
|  | haddr_t | offsets[],
|  | size_t | element_sizes[],
|  | void * | bufs[] )

## ◆ H5FDread_selection()

herr_t H5FDread_selection | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | hid_t | mem_spaces[],
|  | hid_t | file_spaces[],
|  | haddr_t | offsets[],
|  | size_t | element_sizes[],
|  | void * | bufs[] )

## ◆ H5FDread_vector()

herr_t H5FDread_vector | ( | H5FD_t * | file,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | H5FD_mem_t | types[],
|  | haddr_t | addrs[],
|  | size_t | sizes[],
|  | void * | bufs[] )

## ◆ H5FDread_vector_from_selection()

herr_t H5FDread_vector_from_selection | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | hid_t | mem_spaces[],
|  | hid_t | file_spaces[],
|  | haddr_t | offsets[],
|  | size_t | element_sizes[],
|  | void * | bufs[] )

## ◆ H5FDregister()

hid_t H5FDregister | ( | const H5FD_class_t * | cls | ) |

## ◆ H5FDset_eoa()

herr_t H5FDset_eoa | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | haddr_t | eoa )

## ◆ H5FDtruncate()

herr_t H5FDtruncate | ( | H5FD_t * | file,
|  | hid_t | dxpl_id,
|  | bool | closing )

## ◆ H5FDunlock()

herr_t H5FDunlock | ( | H5FD_t * | file | ) |

## ◆ H5FDunregister()

herr_t H5FDunregister | ( | hid_t | driver_id | ) |

## ◆ H5FDwrite()

herr_t H5FDwrite | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | haddr_t | addr,
|  | size_t | size,
|  | const void * | buf )

## ◆ H5FDwrite_from_selection()

herr_t H5FDwrite_from_selection | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | hid_t | mem_space_ids[],
|  | hid_t | file_space_ids[],
|  | haddr_t | offsets[],
|  | size_t | element_sizes[],
|  | const void * | bufs[] )

## ◆ H5FDwrite_selection()

herr_t H5FDwrite_selection | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | hid_t | mem_spaces[],
|  | hid_t | file_spaces[],
|  | haddr_t | offsets[],
|  | size_t | element_sizes[],
|  | const void * | bufs[] )

## ◆ H5FDwrite_vector()

herr_t H5FDwrite_vector | ( | H5FD_t * | file,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | H5FD_mem_t | types[],
|  | haddr_t | addrs[],
|  | size_t | sizes[],
|  | const void * | bufs[] )

## ◆ H5FDwrite_vector_from_selection()

herr_t H5FDwrite_vector_from_selection | ( | H5FD_t * | file,
|  | H5FD_mem_t | type,
|  | hid_t | dxpl_id,
|  | uint32_t | count,
|  | hid_t | mem_spaces[],
|  | hid_t | file_spaces[],
|  | haddr_t | offsets[],
|  | size_t | element_sizes[],
|  | const void * | bufs[] )