hdf5 1.8.13 → 1.8.14
raw patch · 25 files changed
+806/−1229 lines, 25 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Bindings.HDF5.Raw.H5F: H5F_info_t :: HSize_t -> HSize_t -> H5_ih_info_t -> H5F_info_t
- Bindings.HDF5.Raw.H5F: [h5f_info_t'sohm'hdr_size] :: H5F_info_t -> HSize_t
- Bindings.HDF5.Raw.H5F: [h5f_info_t'sohm'msgs_info] :: H5F_info_t -> H5_ih_info_t
- Bindings.HDF5.Raw.H5F: [h5f_info_t'super_ext_size] :: H5F_info_t -> HSize_t
- Bindings.HDF5.Raw.H5F: data H5F_info_t
- Bindings.HDF5.Raw.H5F: h5f_MPIO_DEBUG_KEY :: String
- Bindings.HDF5.Raw.H5F: h5f_get_mpi_atomicity :: HId_t -> Out HBool_t -> IO HErr_t
- Bindings.HDF5.Raw.H5F: h5f_set_mpi_atomicity :: HId_t -> HBool_t -> IO HErr_t
- Bindings.HDF5.Raw.H5F: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5F.H5F_info_t
- Bindings.HDF5.Raw.H5F: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5F.H5F_info_t
- Bindings.HDF5.Raw.H5F: instance GHC.Show.Show Bindings.HDF5.Raw.H5F.H5F_info_t
- Bindings.HDF5.Raw.H5F: p'H5F_info_t'sohm'hdr_size :: Ptr H5F_info_t -> Ptr HSize_t
- Bindings.HDF5.Raw.H5F: p'H5F_info_t'sohm'msgs_info :: Ptr H5F_info_t -> Ptr H5_ih_info_t
- Bindings.HDF5.Raw.H5F: p'H5F_info_t'super_ext_size :: Ptr H5F_info_t -> Ptr HSize_t
- Bindings.HDF5.Raw.H5F: p_H5Fget_mpi_atomicity :: FunPtr (HId_t -> Out HBool_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5F: p_H5Fset_mpi_atomicity :: FunPtr (HId_t -> HBool_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5L: H5L_info_t :: H5L_type_t -> HBool_t -> Int64 -> H5T_cset_t -> HAddr_t -> CSize -> H5L_info_t
- Bindings.HDF5.Raw.H5L: [h5l_info_t'corder] :: H5L_info_t -> Int64
- Bindings.HDF5.Raw.H5L: [h5l_info_t'corder_valid] :: H5L_info_t -> HBool_t
- Bindings.HDF5.Raw.H5L: [h5l_info_t'cset] :: H5L_info_t -> H5T_cset_t
- Bindings.HDF5.Raw.H5L: [h5l_info_t'type] :: H5L_info_t -> H5L_type_t
- Bindings.HDF5.Raw.H5L: [h5l_info_t'u'address] :: H5L_info_t -> HAddr_t
- Bindings.HDF5.Raw.H5L: [h5l_info_t'u'val_size] :: H5L_info_t -> CSize
- Bindings.HDF5.Raw.H5L: data H5L_info_t
- Bindings.HDF5.Raw.H5L: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5L.H5L_info_t
- Bindings.HDF5.Raw.H5L: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5L.H5L_info_t
- Bindings.HDF5.Raw.H5L: instance GHC.Show.Show Bindings.HDF5.Raw.H5L.H5L_info_t
- Bindings.HDF5.Raw.H5L: p'H5L_info_t'corder :: Ptr H5L_info_t -> Ptr Int64
- Bindings.HDF5.Raw.H5L: p'H5L_info_t'corder_valid :: Ptr H5L_info_t -> Ptr HBool_t
- Bindings.HDF5.Raw.H5L: p'H5L_info_t'cset :: Ptr H5L_info_t -> Ptr H5T_cset_t
- Bindings.HDF5.Raw.H5L: p'H5L_info_t'type :: Ptr H5L_info_t -> Ptr H5L_type_t
- Bindings.HDF5.Raw.H5L: p'H5L_info_t'u'address :: Ptr H5L_info_t -> Ptr HAddr_t
- Bindings.HDF5.Raw.H5L: p'H5L_info_t'u'val_size :: Ptr H5L_info_t -> Ptr CSize
- Bindings.HDF5.Raw.H5L: p_H5Lget_info :: FunPtr (HId_t -> CString -> Out H5L_info_t -> HId_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5L: p_H5Lget_info_by_idx :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info_t -> HId_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5L: p_H5Literate :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> IO HErr_t)
- Bindings.HDF5.Raw.H5L: p_H5Literate_by_name :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5L: p_H5Lvisit :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> IO HErr_t)
- Bindings.HDF5.Raw.H5L: p_H5Lvisit_by_name :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5L: u_H5L_info_t'u'address :: H5L_info_t -> HAddr_t -> IO H5L_info_t
- Bindings.HDF5.Raw.H5L: u_H5L_info_t'u'val_size :: H5L_info_t -> CSize -> IO H5L_info_t
- Bindings.HDF5.Raw.H5O: H5O_info_t :: CULong -> HAddr_t -> H5O_type_t -> CUInt -> CTime -> CTime -> CTime -> CTime -> HSize_t -> H5O_hdr_info_t -> H5_ih_info_t -> H5_ih_info_t -> H5O_info_t
- Bindings.HDF5.Raw.H5O: [h5o_info_t'addr] :: H5O_info_t -> HAddr_t
- Bindings.HDF5.Raw.H5O: [h5o_info_t'atime] :: H5O_info_t -> CTime
- Bindings.HDF5.Raw.H5O: [h5o_info_t'btime] :: H5O_info_t -> CTime
- Bindings.HDF5.Raw.H5O: [h5o_info_t'ctime] :: H5O_info_t -> CTime
- Bindings.HDF5.Raw.H5O: [h5o_info_t'fileno] :: H5O_info_t -> CULong
- Bindings.HDF5.Raw.H5O: [h5o_info_t'hdr] :: H5O_info_t -> H5O_hdr_info_t
- Bindings.HDF5.Raw.H5O: [h5o_info_t'meta_size'attr] :: H5O_info_t -> H5_ih_info_t
- Bindings.HDF5.Raw.H5O: [h5o_info_t'meta_size'obj] :: H5O_info_t -> H5_ih_info_t
- Bindings.HDF5.Raw.H5O: [h5o_info_t'mtime] :: H5O_info_t -> CTime
- Bindings.HDF5.Raw.H5O: [h5o_info_t'num_attrs] :: H5O_info_t -> HSize_t
- Bindings.HDF5.Raw.H5O: [h5o_info_t'rc] :: H5O_info_t -> CUInt
- Bindings.HDF5.Raw.H5O: [h5o_info_t'type] :: H5O_info_t -> H5O_type_t
- Bindings.HDF5.Raw.H5O: data H5O_info_t
- Bindings.HDF5.Raw.H5O: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5O.H5O_info_t
- Bindings.HDF5.Raw.H5O: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5O.H5O_info_t
- Bindings.HDF5.Raw.H5O: instance GHC.Show.Show Bindings.HDF5.Raw.H5O.H5O_info_t
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'addr :: Ptr H5O_info_t -> Ptr HAddr_t
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'atime :: Ptr H5O_info_t -> Ptr CTime
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'btime :: Ptr H5O_info_t -> Ptr CTime
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'ctime :: Ptr H5O_info_t -> Ptr CTime
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'fileno :: Ptr H5O_info_t -> Ptr CULong
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'hdr :: Ptr H5O_info_t -> Ptr H5O_hdr_info_t
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'meta_size'attr :: Ptr H5O_info_t -> Ptr H5_ih_info_t
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'meta_size'obj :: Ptr H5O_info_t -> Ptr H5_ih_info_t
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'mtime :: Ptr H5O_info_t -> Ptr CTime
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'num_attrs :: Ptr H5O_info_t -> Ptr HSize_t
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'rc :: Ptr H5O_info_t -> Ptr CUInt
- Bindings.HDF5.Raw.H5O: p'H5O_info_t'type :: Ptr H5O_info_t -> Ptr H5O_type_t
- Bindings.HDF5.Raw.H5O: p_H5Oget_info :: FunPtr (HId_t -> Out H5O_info_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5O: p_H5Oget_info_by_idx :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info_t -> HId_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5O: p_H5Oget_info_by_name :: FunPtr (HId_t -> CString -> Out H5O_info_t -> HId_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5O: p_H5Ovisit :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> IO HErr_t)
- Bindings.HDF5.Raw.H5O: p_H5Ovisit_by_name :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> HId_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: h5p_encode :: HId_t -> In a -> Out CSize -> IO HErr_t
- Bindings.HDF5.Raw.H5P: h5p_get_all_coll_metadata_ops :: HId_t -> Out HBool_t -> IO HErr_t
- Bindings.HDF5.Raw.H5P: h5p_get_coll_metadata_write :: HId_t -> Out HBool_t -> IO HErr_t
- Bindings.HDF5.Raw.H5P: h5p_get_mpio_actual_chunk_opt_mode :: HId_t -> Out H5D_mpio_actual_chunk_opt_mode_t -> IO HErr_t
- Bindings.HDF5.Raw.H5P: h5p_get_mpio_actual_io_mode :: HId_t -> Out H5D_mpio_actual_io_mode_t -> IO HErr_t
- Bindings.HDF5.Raw.H5P: h5p_get_mpio_no_collective_cause :: HId_t -> Out Word32 -> Out Word32 -> IO HErr_t
- Bindings.HDF5.Raw.H5P: h5p_set_all_coll_metadata_ops :: HId_t -> HBool_t -> IO HErr_t
- Bindings.HDF5.Raw.H5P: h5p_set_coll_metadata_write :: HId_t -> HBool_t -> IO HErr_t
- Bindings.HDF5.Raw.H5P: p_H5Pencode :: FunPtr (HId_t -> In a -> Out CSize -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: p_H5Pget_all_coll_metadata_ops :: FunPtr (HId_t -> Out HBool_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: p_H5Pget_coll_metadata_write :: FunPtr (HId_t -> Out HBool_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: p_H5Pget_mpio_actual_chunk_opt_mode :: FunPtr (HId_t -> Out H5D_mpio_actual_chunk_opt_mode_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: p_H5Pget_mpio_actual_io_mode :: FunPtr (HId_t -> Out H5D_mpio_actual_io_mode_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: p_H5Pget_mpio_no_collective_cause :: FunPtr (HId_t -> Out Word32 -> Out Word32 -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: p_H5Pset_all_coll_metadata_ops :: FunPtr (HId_t -> HBool_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5P: p_H5Pset_coll_metadata_write :: FunPtr (HId_t -> HBool_t -> IO HErr_t)
- Bindings.HDF5.Raw.H5S: p_H5Sencode :: FunPtr (HId_t -> OutArray CChar -> InOut CSize -> IO HErr_t)
+ Bindings.HDF5.Raw.H5F: H5F_info2_t :: CUInt -> HSize_t -> HSize_t -> CUInt -> HSize_t -> HSize_t -> CUInt -> HSize_t -> H5_ih_info_t -> H5F_info2_t
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'free'meta_size] :: H5F_info2_t -> HSize_t
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'free'tot_space] :: H5F_info2_t -> HSize_t
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'free'version] :: H5F_info2_t -> CUInt
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'sohm'hdr_size] :: H5F_info2_t -> HSize_t
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'sohm'msgs_info] :: H5F_info2_t -> H5_ih_info_t
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'sohm'version] :: H5F_info2_t -> CUInt
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'super'super_ext_size] :: H5F_info2_t -> HSize_t
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'super'super_size] :: H5F_info2_t -> HSize_t
+ Bindings.HDF5.Raw.H5F: [h5f_info2_t'super'version] :: H5F_info2_t -> CUInt
+ Bindings.HDF5.Raw.H5F: data H5F_info2_t
+ Bindings.HDF5.Raw.H5F: h5f_get_info2 :: HId_t -> Out H5F_info2_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5F: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5F.H5F_info2_t
+ Bindings.HDF5.Raw.H5F: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5F.H5F_info2_t
+ Bindings.HDF5.Raw.H5F: instance GHC.Show.Show Bindings.HDF5.Raw.H5F.H5F_info2_t
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'free'meta_size :: Ptr H5F_info2_t -> Ptr HSize_t
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'free'tot_space :: Ptr H5F_info2_t -> Ptr HSize_t
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'free'version :: Ptr H5F_info2_t -> Ptr CUInt
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'sohm'hdr_size :: Ptr H5F_info2_t -> Ptr HSize_t
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'sohm'msgs_info :: Ptr H5F_info2_t -> Ptr H5_ih_info_t
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'sohm'version :: Ptr H5F_info2_t -> Ptr CUInt
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'super'super_ext_size :: Ptr H5F_info2_t -> Ptr HSize_t
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'super'super_size :: Ptr H5F_info2_t -> Ptr HSize_t
+ Bindings.HDF5.Raw.H5F: p'H5F_info2_t'super'version :: Ptr H5F_info2_t -> Ptr CUInt
+ Bindings.HDF5.Raw.H5F: p_H5Fget_info2 :: FunPtr (HId_t -> Out H5F_info2_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5F: type H5F_info_t = H5F_info1_t
+ Bindings.HDF5.Raw.H5FD: h5fd_FEAT_DIRTY_DRVRINFO_LOAD :: Num a => a
+ Bindings.HDF5.Raw.H5L: H5L_info1_t :: H5L_type_t -> HBool_t -> Int64 -> H5T_cset_t -> HAddr_t -> CSize -> H5L_info1_t
+ Bindings.HDF5.Raw.H5L: H5L_info2_t :: H5L_type_t -> HBool_t -> Int64 -> H5T_cset_t -> H5O_token_t -> CSize -> H5L_info2_t
+ Bindings.HDF5.Raw.H5L: [h5l_info1_t'corder] :: H5L_info1_t -> Int64
+ Bindings.HDF5.Raw.H5L: [h5l_info1_t'corder_valid] :: H5L_info1_t -> HBool_t
+ Bindings.HDF5.Raw.H5L: [h5l_info1_t'cset] :: H5L_info1_t -> H5T_cset_t
+ Bindings.HDF5.Raw.H5L: [h5l_info1_t'type] :: H5L_info1_t -> H5L_type_t
+ Bindings.HDF5.Raw.H5L: [h5l_info1_t'u'address] :: H5L_info1_t -> HAddr_t
+ Bindings.HDF5.Raw.H5L: [h5l_info1_t'u'val_size] :: H5L_info1_t -> CSize
+ Bindings.HDF5.Raw.H5L: [h5l_info2_t'corder] :: H5L_info2_t -> Int64
+ Bindings.HDF5.Raw.H5L: [h5l_info2_t'corder_valid] :: H5L_info2_t -> HBool_t
+ Bindings.HDF5.Raw.H5L: [h5l_info2_t'cset] :: H5L_info2_t -> H5T_cset_t
+ Bindings.HDF5.Raw.H5L: [h5l_info2_t'type] :: H5L_info2_t -> H5L_type_t
+ Bindings.HDF5.Raw.H5L: [h5l_info2_t'u'token] :: H5L_info2_t -> H5O_token_t
+ Bindings.HDF5.Raw.H5L: [h5l_info2_t'u'val_size] :: H5L_info2_t -> CSize
+ Bindings.HDF5.Raw.H5L: data H5L_info1_t
+ Bindings.HDF5.Raw.H5L: data H5L_info2_t
+ Bindings.HDF5.Raw.H5L: h5l_get_info1 :: HId_t -> CString -> Out H5L_info1_t -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_get_info2 :: HId_t -> CString -> Out H5L_info2_t -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_get_info_by_idx1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info1_t -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_get_info_by_idx2 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info2_t -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_iterate1 :: HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate1_t a -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_iterate2 :: HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate2_t a -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_iterate_by_name1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate1_t a -> InOut a -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_iterate_by_name2 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate2_t a -> InOut a -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_visit1 :: HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate1_t a -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_visit2 :: HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate2_t a -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_visit_by_name1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate1_t a -> InOut a -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: h5l_visit_by_name2 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate2_t a -> InOut a -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5L.H5L_info1_t
+ Bindings.HDF5.Raw.H5L: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5L.H5L_info2_t
+ Bindings.HDF5.Raw.H5L: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5L.H5L_info1_t
+ Bindings.HDF5.Raw.H5L: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5L.H5L_info2_t
+ Bindings.HDF5.Raw.H5L: instance GHC.Show.Show Bindings.HDF5.Raw.H5L.H5L_info1_t
+ Bindings.HDF5.Raw.H5L: instance GHC.Show.Show Bindings.HDF5.Raw.H5L.H5L_info2_t
+ Bindings.HDF5.Raw.H5L: mk'H5L_iterate1_t :: (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t) -> IO (FunPtr (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t))
+ Bindings.HDF5.Raw.H5L: mk'H5L_iterate2_t :: (HId_t -> CString -> In H5L_info2_t -> InOut a -> IO HErr_t) -> IO (FunPtr (HId_t -> CString -> In H5L_info2_t -> InOut a -> IO HErr_t))
+ Bindings.HDF5.Raw.H5L: mk'H5L_iterate_t :: (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t) -> IO (FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t))
+ Bindings.HDF5.Raw.H5L: p'H5L_info1_t'corder :: Ptr H5L_info1_t -> Ptr Int64
+ Bindings.HDF5.Raw.H5L: p'H5L_info1_t'corder_valid :: Ptr H5L_info1_t -> Ptr HBool_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info1_t'cset :: Ptr H5L_info1_t -> Ptr H5T_cset_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info1_t'type :: Ptr H5L_info1_t -> Ptr H5L_type_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info1_t'u'address :: Ptr H5L_info1_t -> Ptr HAddr_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info1_t'u'val_size :: Ptr H5L_info1_t -> Ptr CSize
+ Bindings.HDF5.Raw.H5L: p'H5L_info2_t'corder :: Ptr H5L_info2_t -> Ptr Int64
+ Bindings.HDF5.Raw.H5L: p'H5L_info2_t'corder_valid :: Ptr H5L_info2_t -> Ptr HBool_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info2_t'cset :: Ptr H5L_info2_t -> Ptr H5T_cset_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info2_t'type :: Ptr H5L_info2_t -> Ptr H5L_type_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info2_t'u'token :: Ptr H5L_info2_t -> Ptr H5O_token_t
+ Bindings.HDF5.Raw.H5L: p'H5L_info2_t'u'val_size :: Ptr H5L_info2_t -> Ptr CSize
+ Bindings.HDF5.Raw.H5L: p_H5Lget_info1 :: FunPtr (HId_t -> CString -> Out H5L_info1_t -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Lget_info2 :: FunPtr (HId_t -> CString -> Out H5L_info2_t -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Lget_info_by_idx1 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info1_t -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Lget_info_by_idx2 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info2_t -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Literate1 :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate1_t a -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Literate2 :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate2_t a -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Literate_by_name1 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate1_t a -> InOut a -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Literate_by_name2 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate2_t a -> InOut a -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Lvisit1 :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate1_t a -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Lvisit2 :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate2_t a -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Lvisit_by_name1 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate1_t a -> InOut a -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: p_H5Lvisit_by_name2 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate2_t a -> InOut a -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_info_t = H5L_info1_t
+ Bindings.HDF5.Raw.H5L: type H5L_iterate1_t a = FunPtr HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: type H5L_iterate2_t a = FunPtr HId_t -> CString -> In H5L_info2_t -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5L: u_H5L_info1_t'u'address :: H5L_info1_t -> HAddr_t -> IO H5L_info1_t
+ Bindings.HDF5.Raw.H5L: u_H5L_info1_t'u'val_size :: H5L_info1_t -> CSize -> IO H5L_info1_t
+ Bindings.HDF5.Raw.H5L: u_H5L_info2_t'u'token :: H5L_info2_t -> H5O_token_t -> IO H5L_info2_t
+ Bindings.HDF5.Raw.H5L: u_H5L_info2_t'u'val_size :: H5L_info2_t -> CSize -> IO H5L_info2_t
+ Bindings.HDF5.Raw.H5O: H5O_info1_t :: CULong -> HAddr_t -> H5O_type_t -> CUInt -> CTime -> CTime -> CTime -> CTime -> HSize_t -> H5O_hdr_info_t -> H5_ih_info_t -> H5_ih_info_t -> H5O_info1_t
+ Bindings.HDF5.Raw.H5O: H5O_info2_t :: CULong -> H5O_token_t -> H5O_type_t -> CUInt -> CTime -> CTime -> CTime -> CTime -> HSize_t -> H5O_info2_t
+ Bindings.HDF5.Raw.H5O: H5O_token_t :: CUChar -> H5O_token_t
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'addr] :: H5O_info1_t -> HAddr_t
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'atime] :: H5O_info1_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'btime] :: H5O_info1_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'ctime] :: H5O_info1_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'fileno] :: H5O_info1_t -> CULong
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'hdr] :: H5O_info1_t -> H5O_hdr_info_t
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'meta_size'attr] :: H5O_info1_t -> H5_ih_info_t
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'meta_size'obj] :: H5O_info1_t -> H5_ih_info_t
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'mtime] :: H5O_info1_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'num_attrs] :: H5O_info1_t -> HSize_t
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'rc] :: H5O_info1_t -> CUInt
+ Bindings.HDF5.Raw.H5O: [h5o_info1_t'type] :: H5O_info1_t -> H5O_type_t
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'atime] :: H5O_info2_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'btime] :: H5O_info2_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'ctime] :: H5O_info2_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'fileno] :: H5O_info2_t -> CULong
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'mtime] :: H5O_info2_t -> CTime
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'num_attrs] :: H5O_info2_t -> HSize_t
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'rc] :: H5O_info2_t -> CUInt
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'token] :: H5O_info2_t -> H5O_token_t
+ Bindings.HDF5.Raw.H5O: [h5o_info2_t'type] :: H5O_info2_t -> H5O_type_t
+ Bindings.HDF5.Raw.H5O: [h5o_token_t'__data] :: H5O_token_t -> CUChar
+ Bindings.HDF5.Raw.H5O: data H5O_info1_t
+ Bindings.HDF5.Raw.H5O: data H5O_info2_t
+ Bindings.HDF5.Raw.H5O: data H5O_token_t
+ Bindings.HDF5.Raw.H5O: h5o_INFO_ALL :: Num a => a
+ Bindings.HDF5.Raw.H5O: h5o_INFO_BASIC :: Num a => a
+ Bindings.HDF5.Raw.H5O: h5o_INFO_HDR :: Num a => a
+ Bindings.HDF5.Raw.H5O: h5o_INFO_META_SIZE :: Num a => a
+ Bindings.HDF5.Raw.H5O: h5o_INFO_NUM_ATTRS :: Num a => a
+ Bindings.HDF5.Raw.H5O: h5o_INFO_TIME :: Num a => a
+ Bindings.HDF5.Raw.H5O: h5o_get_info1 :: HId_t -> Out H5O_info1_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_get_info2 :: HId_t -> Out H5O_info1_t -> CUInt -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_get_info_by_idx1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info1_t -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_get_info_by_idx2 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info1_t -> CUInt -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_get_info_by_name1 :: HId_t -> CString -> Out H5O_info1_t -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_get_info_by_name2 :: HId_t -> CString -> Out H5O_info1_t -> CUInt -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_visit1 :: HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_visit2 :: HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> CUInt -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_visit_by_name1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: h5o_visit_by_name2 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> CUInt -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5O.H5O_info1_t
+ Bindings.HDF5.Raw.H5O: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5O.H5O_info2_t
+ Bindings.HDF5.Raw.H5O: instance Foreign.Storable.Storable Bindings.HDF5.Raw.H5O.H5O_token_t
+ Bindings.HDF5.Raw.H5O: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5O.H5O_info1_t
+ Bindings.HDF5.Raw.H5O: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5O.H5O_info2_t
+ Bindings.HDF5.Raw.H5O: instance GHC.Classes.Eq Bindings.HDF5.Raw.H5O.H5O_token_t
+ Bindings.HDF5.Raw.H5O: instance GHC.Show.Show Bindings.HDF5.Raw.H5O.H5O_info1_t
+ Bindings.HDF5.Raw.H5O: instance GHC.Show.Show Bindings.HDF5.Raw.H5O.H5O_info2_t
+ Bindings.HDF5.Raw.H5O: instance GHC.Show.Show Bindings.HDF5.Raw.H5O.H5O_token_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'addr :: Ptr H5O_info1_t -> Ptr HAddr_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'atime :: Ptr H5O_info1_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'btime :: Ptr H5O_info1_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'ctime :: Ptr H5O_info1_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'fileno :: Ptr H5O_info1_t -> Ptr CULong
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'hdr :: Ptr H5O_info1_t -> Ptr H5O_hdr_info_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'meta_size'attr :: Ptr H5O_info1_t -> Ptr H5_ih_info_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'meta_size'obj :: Ptr H5O_info1_t -> Ptr H5_ih_info_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'mtime :: Ptr H5O_info1_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'num_attrs :: Ptr H5O_info1_t -> Ptr HSize_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'rc :: Ptr H5O_info1_t -> Ptr CUInt
+ Bindings.HDF5.Raw.H5O: p'H5O_info1_t'type :: Ptr H5O_info1_t -> Ptr H5O_type_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'atime :: Ptr H5O_info2_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'btime :: Ptr H5O_info2_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'ctime :: Ptr H5O_info2_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'fileno :: Ptr H5O_info2_t -> Ptr CULong
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'mtime :: Ptr H5O_info2_t -> Ptr CTime
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'num_attrs :: Ptr H5O_info2_t -> Ptr HSize_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'rc :: Ptr H5O_info2_t -> Ptr CUInt
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'token :: Ptr H5O_info2_t -> Ptr H5O_token_t
+ Bindings.HDF5.Raw.H5O: p'H5O_info2_t'type :: Ptr H5O_info2_t -> Ptr H5O_type_t
+ Bindings.HDF5.Raw.H5O: p'H5O_token_t'__data :: Ptr H5O_token_t -> Ptr CUChar
+ Bindings.HDF5.Raw.H5O: p_H5Oget_info1 :: FunPtr (HId_t -> Out H5O_info1_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Oget_info2 :: FunPtr (HId_t -> Out H5O_info1_t -> CUInt -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Oget_info_by_idx1 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info1_t -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Oget_info_by_idx2 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info1_t -> CUInt -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Oget_info_by_name1 :: FunPtr (HId_t -> CString -> Out H5O_info1_t -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Oget_info_by_name2 :: FunPtr (HId_t -> CString -> Out H5O_info1_t -> CUInt -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Ovisit1 :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Ovisit2 :: FunPtr (HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> CUInt -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Ovisit_by_name1 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: p_H5Ovisit_by_name2 :: FunPtr (HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate1_t a -> InOut a -> CUInt -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: type H5O_info_t = H5O_info1_t
+ Bindings.HDF5.Raw.H5O: type H5O_iterate1_t a = FunPtr HId_t -> CString -> In H5O_info1_t -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5O: type H5O_iterate2_t a = FunPtr HId_t -> CString -> In H5O_info2_t -> InOut a -> IO HErr_t
+ Bindings.HDF5.Raw.H5P: h5p_encode2 :: HId_t -> In a -> Out CSize -> IO HErr_t
+ Bindings.HDF5.Raw.H5P: p_H5Pencode2 :: FunPtr (HId_t -> In a -> Out CSize -> IO HErr_t)
+ Bindings.HDF5.Raw.H5R: h5r_dereference :: HId_t -> H5R_type_t -> In a -> IO HId_t
+ Bindings.HDF5.Raw.H5S: h5s_encode1 :: HId_t -> OutArray CChar -> InOut CSize -> IO HErr_t
+ Bindings.HDF5.Raw.H5S: h5s_encode2 :: HId_t -> OutArray CChar -> InOut CSize -> HId_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5S: p_H5Sencode1 :: FunPtr (HId_t -> OutArray CChar -> InOut CSize -> IO HErr_t)
+ Bindings.HDF5.Raw.H5S: p_H5Sencode2 :: FunPtr (HId_t -> OutArray CChar -> InOut CSize -> HId_t -> IO HErr_t)
- Bindings.HDF5.PropertyList: newtype () => Tagged (s :: k) b
+ Bindings.HDF5.PropertyList: newtype Tagged (s :: k) b
- Bindings.HDF5.Raw.H5A: type H5A_operator1_t a = FunPtr (HId_t -> CString -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5A: type H5A_operator1_t a = FunPtr HId_t -> CString -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5A: type H5A_operator2_t a = FunPtr (HId_t -> CString -> In H5A_info_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5A: type H5A_operator2_t a = FunPtr HId_t -> CString -> In H5A_info_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5D: type H5D_append_cb_t a = FunPtr (HId_t -> Out HSize_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5D: type H5D_append_cb_t a = FunPtr HId_t -> Out HSize_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5D: type H5D_gather_func_t a b = FunPtr (InArray a -> CSize -> InOut b -> IO HErr_t)
+ Bindings.HDF5.Raw.H5D: type H5D_gather_func_t a b = FunPtr InArray a -> CSize -> InOut b -> IO HErr_t
- Bindings.HDF5.Raw.H5D: type H5D_operator_t a b = FunPtr (InOut a -> HId_t -> CUInt -> InArray HSize_t -> InOut b -> IO HErr_t)
+ Bindings.HDF5.Raw.H5D: type H5D_operator_t a b = FunPtr InOut a -> HId_t -> CUInt -> InArray HSize_t -> InOut b -> IO HErr_t
- Bindings.HDF5.Raw.H5D: type H5D_scatter_func_t a b = FunPtr (Out (Ptr a) -> Out CSize -> InOut b -> IO HErr_t)
+ Bindings.HDF5.Raw.H5D: type H5D_scatter_func_t a b = FunPtr Out Ptr a -> Out CSize -> InOut b -> IO HErr_t
- Bindings.HDF5.Raw.H5E: type H5E_auto1_t a = FunPtr (InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5E: type H5E_auto1_t a = FunPtr InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5E: type H5E_auto2_t a = FunPtr (HId_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5E: type H5E_auto2_t a = FunPtr HId_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5E: type H5E_walk1_t a = FunPtr (CInt -> In H5E_error1_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5E: type H5E_walk1_t a = FunPtr CInt -> In H5E_error1_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5E: type H5E_walk2_t a = FunPtr (CUInt -> In H5E_error2_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5E: type H5E_walk2_t a = FunPtr CUInt -> In H5E_error2_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5F: h5f_get_info :: HId_t -> Out H5F_info_t -> IO HErr_t
+ Bindings.HDF5.Raw.H5F: h5f_get_info :: HId_t -> Out H5F_info1_t -> IO HErr_t
- Bindings.HDF5.Raw.H5F: type H5F_flush_cb_t a = FunPtr (HId_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5F: type H5F_flush_cb_t a = FunPtr HId_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5G: type H5G_iterate_t a = FunPtr (HId_t -> CString -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5G: type H5G_iterate_t a = FunPtr HId_t -> CString -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5I: type H5I_free_t a = FunPtr (In a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5I: type H5I_free_t a = FunPtr In a -> IO HErr_t
- Bindings.HDF5.Raw.H5I: type H5I_search_func_t a = FunPtr (In a -> HId_t -> In a -> IO CInt)
+ Bindings.HDF5.Raw.H5I: type H5I_search_func_t a = FunPtr In a -> HId_t -> In a -> IO CInt
- Bindings.HDF5.Raw.H5L: type H5L_copy_func_t a = FunPtr (CString -> HId_t -> Ptr a -> CSize -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_copy_func_t a = FunPtr CString -> HId_t -> Ptr a -> CSize -> IO HErr_t
- Bindings.HDF5.Raw.H5L: type H5L_create_func_t a = FunPtr (CString -> HId_t -> Ptr a -> CSize -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_create_func_t a = FunPtr CString -> HId_t -> Ptr a -> CSize -> HId_t -> IO HErr_t
- Bindings.HDF5.Raw.H5L: type H5L_delete_func_t a = FunPtr (CString -> HId_t -> Ptr a -> CSize -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_delete_func_t a = FunPtr CString -> HId_t -> Ptr a -> CSize -> IO HErr_t
- Bindings.HDF5.Raw.H5L: type H5L_elink_traverse_t a = FunPtr (CString -> CString -> CString -> CString -> Ptr CUInt -> HId_t -> Ptr a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_elink_traverse_t a = FunPtr CString -> CString -> CString -> CString -> Ptr CUInt -> HId_t -> Ptr a -> IO HErr_t
- Bindings.HDF5.Raw.H5L: type H5L_iterate_t a = FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_iterate_t a = FunPtr HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5L: type H5L_move_func_t a = FunPtr (CString -> HId_t -> Ptr a -> CSize -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_move_func_t a = FunPtr CString -> HId_t -> Ptr a -> CSize -> IO HErr_t
- Bindings.HDF5.Raw.H5L: type H5L_query_func_t a b = FunPtr (CString -> Ptr a -> CSize -> Out b -> CSize -> IO CSSize)
+ Bindings.HDF5.Raw.H5L: type H5L_query_func_t a b = FunPtr CString -> Ptr a -> CSize -> Out b -> CSize -> IO CSSize
- Bindings.HDF5.Raw.H5L: type H5L_traverse_func_t a = FunPtr (CString -> HId_t -> Ptr a -> CSize -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5L: type H5L_traverse_func_t a = FunPtr CString -> HId_t -> Ptr a -> CSize -> HId_t -> IO HErr_t
- Bindings.HDF5.Raw.H5MM: type H5MM_allocate_t info mem = FunPtr (CSize -> Ptr info -> IO (Ptr mem))
+ Bindings.HDF5.Raw.H5MM: type H5MM_allocate_t info mem = FunPtr CSize -> Ptr info -> IO Ptr mem
- Bindings.HDF5.Raw.H5MM: type H5MM_free_t info mem = FunPtr (Ptr mem -> Ptr info -> IO ())
+ Bindings.HDF5.Raw.H5MM: type H5MM_free_t info mem = FunPtr Ptr mem -> Ptr info -> IO ()
- Bindings.HDF5.Raw.H5O: type H5O_iterate_t a = FunPtr (HId_t -> CString -> In H5O_info_t -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5O: type H5O_iterate_t a = FunPtr HId_t -> CString -> In H5O_info_t -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5O: type H5O_mcdt_search_cb_t a = FunPtr (InOut a -> IO H5O_mcdt_search_ret_t)
+ Bindings.HDF5.Raw.H5O: type H5O_mcdt_search_cb_t a = FunPtr InOut a -> IO H5O_mcdt_search_ret_t
- Bindings.HDF5.Raw.H5P: type H5P_cls_close_func_t a = FunPtr (HId_t -> Ptr a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_cls_close_func_t a = FunPtr HId_t -> Ptr a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_cls_copy_func_t a = FunPtr (HId_t -> HId_t -> Ptr a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_cls_copy_func_t a = FunPtr HId_t -> HId_t -> Ptr a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_cls_create_func_t a = FunPtr (HId_t -> Ptr a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_cls_create_func_t a = FunPtr HId_t -> Ptr a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_iterate_t a = FunPtr (HId_t -> CString -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_iterate_t a = FunPtr HId_t -> CString -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_prp_close_func_t a = FunPtr (CString -> CSize -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_close_func_t a = FunPtr CString -> CSize -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_prp_compare_func_t a = FunPtr (In a -> In a -> CSize -> IO CInt)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_compare_func_t a = FunPtr In a -> In a -> CSize -> IO CInt
- Bindings.HDF5.Raw.H5P: type H5P_prp_copy_func_t a = FunPtr (CString -> CSize -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_copy_func_t a = FunPtr CString -> CSize -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_prp_create_func_t a = FunPtr (CString -> CSize -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_create_func_t a = FunPtr CString -> CSize -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_prp_decode_func_t a b = FunPtr (In a -> Out b)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_decode_func_t a b = FunPtr In a -> Out b
- Bindings.HDF5.Raw.H5P: type H5P_prp_delete_func_t a = FunPtr (HId_t -> CString -> CSize -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_delete_func_t a = FunPtr HId_t -> CString -> CSize -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_prp_encode_func_t a b = FunPtr (In a -> Out b -> Out CSize)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_encode_func_t a b = FunPtr In a -> Out b -> Out CSize
- Bindings.HDF5.Raw.H5P: type H5P_prp_get_func_t a = FunPtr (HId_t -> CString -> CSize -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_get_func_t a = FunPtr HId_t -> CString -> CSize -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5P: type H5P_prp_set_func_t a = FunPtr (HId_t -> CString -> CSize -> InOut a -> IO HErr_t)
+ Bindings.HDF5.Raw.H5P: type H5P_prp_set_func_t a = FunPtr HId_t -> CString -> CSize -> InOut a -> IO HErr_t
- Bindings.HDF5.Raw.H5T: type H5T_conv_except_func_t a userData = FunPtr (H5T_conv_except_t -> HId_t -> HId_t -> In a -> In a -> InOut userData -> IO H5T_conv_ret_t)
+ Bindings.HDF5.Raw.H5T: type H5T_conv_except_func_t a userData = FunPtr H5T_conv_except_t -> HId_t -> HId_t -> In a -> In a -> InOut userData -> IO H5T_conv_ret_t
- Bindings.HDF5.Raw.H5T: type H5T_conv_t a b conversionData = FunPtr (HId_t -> HId_t -> Ptr (H5T_cdata_t conversionData) -> CSize -> CSize -> CSize -> InOutArray a -> InArray b -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5T: type H5T_conv_t a b conversionData = FunPtr HId_t -> HId_t -> Ptr H5T_cdata_t conversionData -> CSize -> CSize -> CSize -> InOutArray a -> InArray b -> HId_t -> IO HErr_t
- Bindings.HDF5.Raw.H5Z: type H5Z_can_apply_func_t = FunPtr (HId_t -> HId_t -> HId_t -> IO HTri_t)
+ Bindings.HDF5.Raw.H5Z: type H5Z_can_apply_func_t = FunPtr HId_t -> HId_t -> HId_t -> IO HTri_t
- Bindings.HDF5.Raw.H5Z: type H5Z_filter_func_t a b = FunPtr (H5Z_filter_t -> InOutArray a -> CSize -> InOut b -> IO H5Z_cb_return_t)
+ Bindings.HDF5.Raw.H5Z: type H5Z_filter_func_t a b = FunPtr H5Z_filter_t -> InOutArray a -> CSize -> InOut b -> IO H5Z_cb_return_t
- Bindings.HDF5.Raw.H5Z: type H5Z_func_t a = FunPtr (CUInt -> CSize -> InArray CUInt -> CSize -> InOut CSize -> InOut (Ptr a) -> IO CSize)
+ Bindings.HDF5.Raw.H5Z: type H5Z_func_t a = FunPtr CUInt -> CSize -> InArray CUInt -> CSize -> InOut CSize -> InOut Ptr a -> IO CSize
- Bindings.HDF5.Raw.H5Z: type H5Z_set_local_func_t = FunPtr (HId_t -> HId_t -> HId_t -> IO HErr_t)
+ Bindings.HDF5.Raw.H5Z: type H5Z_set_local_func_t = FunPtr HId_t -> HId_t -> HId_t -> IO HErr_t
- Foreign.Ptr.Conventions: class WrappedPtr p
+ Foreign.Ptr.Conventions: class WrappedPtr (p :: Type -> Type)
Files
- Changelog.md +6/−0
- cbits/H5E_inline.c +0/−13
- hdf5.cabal +2/−1
- include/util.h +2/−17
- src/Bindings/HDF5/Dataspace.hsc +1/−1
- src/Bindings/HDF5/ErrorCodes.hsc +0/−6
- src/Bindings/HDF5/File.hsc +4/−10
- src/Bindings/HDF5/Link.hsc +18/−96
- src/Bindings/HDF5/Raw/H5.hsc +0/−4
- src/Bindings/HDF5/Raw/H5AC.hsc +0/−10
- src/Bindings/HDF5/Raw/H5D.hsc +36/−80
- src/Bindings/HDF5/Raw/H5E.hsc +0/−18
- src/Bindings/HDF5/Raw/H5F.hsc +84/−192
- src/Bindings/HDF5/Raw/H5FD.hsc +39/−155
- src/Bindings/HDF5/Raw/H5FD/MPI.hsc +0/−13
- src/Bindings/HDF5/Raw/H5G.hsc +1/−4
- src/Bindings/HDF5/Raw/H5I.hsc +0/−10
- src/Bindings/HDF5/Raw/H5L.hsc +212/−150
- src/Bindings/HDF5/Raw/H5O.hsc +236/−234
- src/Bindings/HDF5/Raw/H5P.hsc +87/−161
- src/Bindings/HDF5/Raw/H5R.hsc +42/−22
- src/Bindings/HDF5/Raw/H5S.hsc +33/−21
- src/Bindings/HDF5/Raw/H5T.hsc +1/−6
- test/Spec/Group.hs +1/−4
- test/Spec/Util.hs +1/−1
Changelog.md view
@@ -1,3 +1,9 @@+1.8.14 [2025-01-15]+------++* build with H5_USE_18_API+* fix compilation with hdf5 from 1.10.0 to 1.14.5+ 1.8.13 [2024-09-18] ------
cbits/H5E_inline.c view
@@ -11,9 +11,7 @@ BC_INLINE_(H5E_FILE, hid_t) BC_INLINE_(H5E_SOHM, hid_t) BC_INLINE_(H5E_SYM, hid_t)-#if H5_VERSION_GE(1,8,11) BC_INLINE_(H5E_PLUGIN, hid_t)-#endif /* H5_VERSION_GE */ BC_INLINE_(H5E_VFL, hid_t) BC_INLINE_(H5E_INTERNAL, hid_t) BC_INLINE_(H5E_BTREE, hid_t)@@ -26,9 +24,6 @@ BC_INLINE_(H5E_RS, hid_t) BC_INLINE_(H5E_HEAP, hid_t) BC_INLINE_(H5E_OHDR, hid_t)-#if !H5_VERSION_GE(1,8,14)-BC_INLINE_(H5E_ATOM, hid_t)-#endif BC_INLINE_(H5E_ATTR, hid_t) BC_INLINE_(H5E_NONE_MAJOR, hid_t) BC_INLINE_(H5E_IO, hid_t)@@ -74,9 +69,7 @@ BC_INLINE_(H5E_CANTSET, hid_t) BC_INLINE_(H5E_DUPCLASS, hid_t) -#if H5_VERSION_GE(1,8,9) BC_INLINE_(H5E_SETDISALLOWED, hid_t)-#endif BC_INLINE_(H5E_CANTMERGE, hid_t) BC_INLINE_(H5E_CANTREVIVE, hid_t)@@ -108,9 +101,7 @@ BC_INLINE_(H5E_NONE_MINOR, hid_t) -#if H5_VERSION_GE(1,8,11) BC_INLINE_(H5E_OPENERROR, hid_t)-#endif BC_INLINE_(H5E_FILEEXISTS, hid_t) BC_INLINE_(H5E_FILEOPEN, hid_t)@@ -121,10 +112,6 @@ BC_INLINE_(H5E_BADFILE, hid_t) BC_INLINE_(H5E_TRUNCATED, hid_t) BC_INLINE_(H5E_MOUNT, hid_t)--#if !H5_VERSION_GE(1,8,14)-BC_INLINE_(H5E_BADATOM, hid_t)-#endif BC_INLINE_(H5E_BADGROUP, hid_t) BC_INLINE_(H5E_CANTREGISTER, hid_t) BC_INLINE_(H5E_CANTINC, hid_t)
hdf5.cabal view
@@ -1,5 +1,5 @@ name: hdf5-version: 1.8.13+version: 1.8.14 stability: provisional cabal-version: >= 1.10@@ -106,6 +106,7 @@ , cbits/H5P_inline.c , cbits/H5T_inline.c + cc-options: -DH5_USE_18_API include-dirs: include build-depends: base >= 3 && < 5,
include/util.h view
@@ -14,21 +14,6 @@ #include <H5public.h> #include <string.h> -// These version-check macros were introduced in HDF5 1.8.7-#ifndef H5_VERSION_GE-#define H5_VERSION_GE(a,b,c) \- ((H5_VERS_MAJOR > a) || (H5_VERS_MAJOR == a && ( \- H5_VERS_MINOR > b || (H5_VERS_MINOR == b && \- H5_VERS_RELEASE >= c))))-#endif--#ifndef H5_VERSION_LE-#define H5_VERSION_LE(a,b,c) \- ((H5_VERS_MAJOR < a) || (H5_VERS_MAJOR == a && ( \- H5_VERS_MINOR < b || (H5_VERS_MINOR == b && \- H5_VERS_RELEASE <= c))))-#endif- #define signed(t) ((t)(-1) < 0) #define floating(t) ((t)(int)(t) 1.4 == (t) 1.4) #define nbitsof(t) (sizeof(t) * 8)@@ -44,11 +29,11 @@ char *mapstrn(char *s, unsigned n, int (*f)(int)) { unsigned i; char *t = dupstr(s);- + for (i = 0; i < n && t[i] != '\0'; i++) { t[i] = f(t[i]); }- + return t; }
src/Bindings/HDF5/Dataspace.hsc view
@@ -141,7 +141,7 @@ withOutByteString $ \buf bufSz -> withInOut_ bufSz $ \ioBufSz -> withErrorCheck_ $- h5s_encode space_id buf ioBufSz+ h5s_encode1 space_id buf ioBufSz decodeDataspace :: BS.ByteString -> IO Dataspace decodeDataspace bs = BS.unsafeUseAsCString bs $ \buf ->
src/Bindings/HDF5/ErrorCodes.hsc view
@@ -103,9 +103,6 @@ , (Just RS, h5e_RS) , (Just Heap, h5e_HEAP) , (Just OHDR, h5e_OHDR)-#if !H5_VERSION_GE(1,8,14)- , (Just Atom, h5e_ATOM)-#endif , (Just Attr, h5e_ATTR) , (Just IO, h5e_IO) , (Just SList, h5e_SLIST)@@ -432,9 +429,6 @@ , (Just BadFile, h5e_BADFILE) , (Just Truncated, h5e_TRUNCATED) , (Just Mount, h5e_MOUNT)-#if !H5_VERSION_GE(1,8,14)- , (Just BadAtom, h5e_BADATOM)-#endif , (Just BadGroup, h5e_BADGROUP) , (Just CantRegister, h5e_CANTREGISTER) , (Just CantInc, h5e_CANTINC)
src/Bindings/HDF5/File.hsc view
@@ -242,21 +242,15 @@ , sohmMsgsInfo :: !IH_Info } deriving (Eq, Ord, Read, Show) -readFileInfo :: H5F_info_t -> FileInfo-#if H5Fget_info_vers == 1-readFileInfo (H5F_info_t a b (H5_ih_info_t c d)) = FileInfo (HSize a) (HSize b) (IH_Info (HSize c) (HSize d))-#elif H5Fget_info_vers == 2-readFileInfo (H5F_info_t _superVersion _superSize superExtSize' _freeVersion _metaSize _totSpace _sohmVersion sohmHdrSize' (H5_ih_info_t c d)) = FileInfo (HSize superExtSize') (HSize sohmHdrSize') (IH_Info (HSize c) (HSize d))-#else-#error unknown H5Fget_info_vers-#endif+readFileInfo1 :: H5F_info1_t -> FileInfo+readFileInfo1 (H5F_info1_t a b (H5_ih_info_t c d)) = FileInfo (HSize a) (HSize b) (IH_Info (HSize c) (HSize d)) getFileInfo :: Object obj => obj -> IO FileInfo getFileInfo obj =- fmap readFileInfo $+ fmap readFileInfo1 $ withOut_ $ \info -> withErrorCheck $- h5f_get_info (hid obj) info+ h5f_get_info1 (hid obj) info getFileIntent :: File -> IO [AccFlags] getFileIntent (File file_id) =
src/Bindings/HDF5/Link.hsc view
@@ -65,7 +65,6 @@ import Bindings.HDF5.PropertyList.LAPL import Bindings.HDF5.PropertyList.LCPL import Bindings.HDF5.Raw.H5-import Bindings.HDF5.Raw.H5I import Bindings.HDF5.Raw.H5L import Bindings.HDF5.Raw.H5P import Bindings.HDF5.Raw.Util@@ -165,9 +164,11 @@ , linkValSize :: CSize } deriving (Eq, Ord, Read, Show) -#if H5_VERSION_GE(1,12,0)+#if defined(H5Lget_info_vers) -readLinkInfo :: H5L_info1_t -> LinkInfo+# if H5Lget_info_vers == 1++readLinkInfo :: H5L_info_t -> LinkInfo readLinkInfo i = LinkInfo { linkType = linkTypeFromCode (h5l_info1_t'type i) , linkCOrderValid = hboolToBool (h5l_info1_t'corder_valid i)@@ -176,91 +177,18 @@ , linkValSize = h5l_info1_t'u'val_size i } -getLinkInfo :: Location loc => loc -> BS.ByteString -> Maybe LAPL -> IO LinkInfo-getLinkInfo loc name lapl =- fmap readLinkInfo $- withOut_ $ \info ->- withErrorCheck_ $- BS.useAsCString name $ \cname ->- h5l_get_info1 (hid loc) cname info (maybe h5p_DEFAULT hid lapl)--getSymLinkVal :: Location loc => loc -> BS.ByteString -> Maybe LAPL -> IO BS.ByteString-getSymLinkVal loc name mb_lapl =- BS.useAsCString name $ \cname -> do- let lapl = maybe h5p_DEFAULT hid mb_lapl- info <- withOut_ $ \info ->- withErrorCheck_ $- h5l_get_info1 (hid loc) cname info lapl- let n = h5l_info1_t'u'val_size info-- buf <- mallocBytes (fromIntegral n)-- withErrorCheck_ $- h5l_get_val (hid loc) cname (OutArray buf) n lapl- -- TODO: this will leak memory if an exception is thrown-- BS.packCStringLen (buf, fromIntegral n)--foreign import ccall "wrapper" wrap_H5L_iterate1_t- :: (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t)- -> IO (FunPtr (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t))--with_iterate1_t :: (Group -> BS.ByteString -> LinkInfo -> IO HErr_t)- -> (H5L_iterate1_t () -> InOut () -> IO HErr_t)- -> IO HErr_t-with_iterate1_t op f = do- exception1 <- newIORef Nothing :: IO (IORef (Maybe SomeException))-- op1 <- wrap_H5L_iterate1_t $ \grp name (In link) _opData -> do- name1 <- BS.packCString name- link1 <- peek link- result <- try (op (uncheckedFromHId grp) name1 (readLinkInfo link1))- case result of- Left exc -> do- writeIORef exception1 (Just exc)- return maxBound- Right x -> return x-- result <- f op1 (InOut nullPtr) `finally` freeHaskellFunPtr op1-- if result == maxBound- then do- exception2 <- readIORef exception1- maybe (return result) throwIO exception2-- else return result---- TODO : It would be nice if we didn't expose HErr_t in these callback functions.--- Decide whether we want Either or Exceptions.-iterateLinks :: Location t => t -> IndexType -> IterOrder -> Maybe HSize -> (Group -> BS.ByteString -> LinkInfo -> IO HErr_t) -> IO HSize-iterateLinks loc indexType order startIndex op =- fmap HSize $- withInOut_ (maybe 0 hSize startIndex) $ \ioStartIndex ->- withErrorCheck_ $- with_iterate1_t op $ \iop opData ->- h5l_iterate1 (hid loc) (indexTypeCode indexType) (iterOrderCode order) ioStartIndex iop opData--iterateLinksByName :: Location t => t -> BS.ByteString -> IndexType -> IterOrder -> Maybe HSize -> Maybe LAPL -> (Group -> BS.ByteString -> LinkInfo -> IO HErr_t) -> IO HSize-iterateLinksByName loc groupName indexType order startIndex lapl op =- fmap HSize $- withInOut_ (maybe 0 hSize startIndex) $ \ioStartIndex ->- withErrorCheck_ $- with_iterate1_t op $ \iop opData ->- BS.useAsCString groupName $ \cgroupName ->- h5l_iterate_by_name1 (hid loc) cgroupName (indexTypeCode indexType) (iterOrderCode order) ioStartIndex iop opData (maybe h5p_DEFAULT hid lapl)+# else -visitLinks :: Location t => t -> IndexType -> IterOrder -> (Group -> BS.ByteString -> LinkInfo -> IO HErr_t) -> IO ()-visitLinks loc indexType order op =- withErrorCheck_ $- with_iterate1_t op $ \iop opData ->- h5l_visit1 (hid loc) (indexTypeCode indexType) (iterOrderCode order) iop opData+readLinkInfo :: H5L_info_t -> LinkInfo+readLinkInfo i = LinkInfo+ { linkType = linkTypeFromCode (h5l_info2_t'type i)+ , linkCOrderValid = hboolToBool (h5l_info2_t'corder_valid i)+ , linkCOrder = h5l_info2_t'corder i+ , linkCSet = cSetFromCode (h5l_info2_t'cset i)+ , linkValSize = h5l_info2_t'u'val_size i+ } -visitLinksByName :: Location t => t -> BS.ByteString -> IndexType -> IterOrder -> Maybe LAPL -> (Group -> BS.ByteString -> LinkInfo -> IO HErr_t) -> IO ()-visitLinksByName loc groupName indexType order lapl op =- withErrorCheck_ $- with_iterate1_t op $ \iop opData ->- BS.useAsCString groupName $ \cgroupName ->- h5l_visit_by_name1 (hid loc) cgroupName (indexTypeCode indexType) (iterOrderCode order) iop opData (maybe h5p_DEFAULT hid lapl)+# endif #else @@ -273,6 +201,8 @@ , linkValSize = h5l_info_t'u'val_size i } +#endif+ getLinkInfo :: Location loc => loc -> BS.ByteString -> Maybe LAPL -> IO LinkInfo getLinkInfo loc name lapl = fmap readLinkInfo $@@ -288,8 +218,7 @@ info <- withOut_ $ \info -> withErrorCheck_ $ h5l_get_info (hid loc) cname info lapl-- let n = h5l_info_t'u'val_size info+ let n = linkValSize . readLinkInfo $ info buf <- mallocBytes (fromIntegral n) @@ -299,18 +228,13 @@ BS.packCStringLen (buf, fromIntegral n) --foreign import ccall "wrapper" wrap_H5L_iterate_t- :: (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)- -> IO (FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t))- with_iterate_t :: (Group -> BS.ByteString -> LinkInfo -> IO HErr_t) -> (H5L_iterate_t () -> InOut () -> IO HErr_t) -> IO HErr_t with_iterate_t op f = do exception1 <- newIORef Nothing :: IO (IORef (Maybe SomeException)) - op1 <- wrap_H5L_iterate_t $ \grp name (In link) _opData -> do+ op1 <- mk'H5L_iterate_t $ \grp name (In link) _opData -> do name1 <- BS.packCString name link1 <- peek link result <- try (op (uncheckedFromHId grp) name1 (readLinkInfo link1))@@ -360,5 +284,3 @@ with_iterate_t op $ \iop opData -> BS.useAsCString groupName $ \cgroupName -> h5l_visit_by_name (hid loc) cgroupName (indexTypeCode indexType) (iterOrderCode order) iop opData (maybe h5p_DEFAULT hid lapl)--#endif
src/Bindings/HDF5/Raw/H5.hsc view
@@ -99,12 +99,8 @@ h5_SIZEOF_HSIZE_T = #const H5_SIZEOF_HSIZE_T h5_SIZEOF_HSSIZE_T = #const H5_SIZEOF_HSSIZE_T -#if H5_VERSION_GE(1,10,0)- hSIZE_UNDEF :: HSize_t hSIZE_UNDEF = #const HSIZE_UNDEF--#endif #newtype haddr_t, Eq, Ord, Num, Bits, Enum, Bounded, Real, Integral
src/Bindings/HDF5/Raw/H5AC.hsc view
@@ -348,26 +348,18 @@ -- This value MUST be consistant across all processes accessing the -- file. This field is ignored unless HDF5 has been compiled for -- parallel.-#if H5_VERSION_GE(1,10,0) #field dirty_bytes_threshold, <size_t>-#else-#field dirty_bytes_threshold, CInt-#endif -#if H5_VERSION_GE(1,8,6) -- |Integer field containing a code indicating the -- desired metadata write strategy. The valid values of this field -- are enumerated and discussed below: #field metadata_write_strategy, CInt-#endif #stoptype #num H5AC__CURR_CACHE_CONFIG_VERSION #num H5AC__MAX_TRACE_FILE_NAME_LEN -#if H5_VERSION_GE(1,8,6)- -- |When 'metadata_write_strategy' is set to this value, only process -- zero is allowed to write dirty metadata to disk. All other -- processes must retain dirty metadata until they are informed at@@ -412,5 +404,3 @@ -- To avoid possible messages from the past/future, all caches must -- wait until all caches are done before leaving the sync point. #num H5AC_METADATA_WRITE_STRATEGY__DISTRIBUTED--#endif
src/Bindings/HDF5/Raw/H5D.hsc view
@@ -14,31 +14,16 @@ import Bindings.HDF5.Raw.H5I import Foreign.Ptr.Conventions -#if H5_VERSION_GE(1,8,3)- #num H5D_CHUNK_CACHE_NSLOTS_DEFAULT #num H5D_CHUNK_CACHE_NBYTES_DEFAULT #num H5D_CHUNK_CACHE_W0_DEFAULT -#endif--#if H5_VERSION_GE(1,10,0)---- |Bit flags for the H5Pset_chunk_opts() and H5Pget_chunk_opts()-#num H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS--#endif--#if H5_VERSION_GE(1,8,11)- -- |Property names for H5LTDdirect_chunk_write #str H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME #str H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME #str H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME #str H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME -#endif- -- |Values for the H5D_LAYOUT property #newtype H5D_layout_t, Eq @@ -53,44 +38,15 @@ -- |slow and fancy #newtype_const H5D_layout_t, H5D_CHUNKED -#if H5_VERSION_GE(1,10,0)---- |actual data is stored in other datasets-#newtype_const H5D_layout_t, H5D_VIRTUAL--#endif- #num H5D_NLAYOUTS -#if H5_VERSION_GE(1,8,3)- -- |Types of chunk index data structures #newtype H5D_chunk_index_t -- |v1 B-tree index #newtype_const H5D_chunk_index_t, H5D_CHUNK_BTREE -#if H5_VERSION_GE(1,10,0) --- |v1 B-tree index (default)-#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_BTREE--- |Single Chunk index (cur dims[]=max dims[]=chunk dims[]; filtered & non-filtered)-#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_SINGLE--- |Implicit: No Index (H5D_ALLOC_TIME_EARLY, non-filtered, fixed dims)-#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_NONE--- |Fixed array (for 0 unlimited dims)-#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_FARRAY--- |Extensible array (for 1 unlimited dim)-#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_EARRAY--- |v2 B-tree index (for >1 unlimited dims)-#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_BT2--#num H5D_CHUNK_IDX_NTYPES--#endif--#endif- -- |Values for the space allocation time property #newtype H5D_alloc_time_t, Eq #newtype_const H5D_alloc_time_t, H5D_ALLOC_TIME_ERROR@@ -120,20 +76,6 @@ #newtype_const H5D_fill_value_t, H5D_FILL_VALUE_DEFAULT #newtype_const H5D_fill_value_t, H5D_FILL_VALUE_USER_DEFINED -#if H5_VERSION_GE(1,10,0)---- | Values for VDS bounds option-#newtype H5D_vds_view_t, Eq-#newtype_const H5D_vds_view_t, H5D_VDS_ERROR-#newtype_const H5D_vds_view_t, H5D_VDS_FIRST_MISSING-#newtype_const H5D_vds_view_t, H5D_VDS_LAST_AVAILABLE---- |Callback for H5Pset_append_flush() in a dataset access property list--- > typedef herr_t (*H5D_append_cb_t)(hid_t dataset_id, hsize_t *cur_dims, void *op_data)-type H5D_append_cb_t a = FunPtr (HId_t -> Out HSize_t -> InOut a -> IO HErr_t)--#endif- -- |Operator function type for 'h5d_iterate' -- -- Parameters:@@ -165,8 +107,6 @@ -- > const hsize_t *point, void *operator_data); type H5D_operator_t a b = FunPtr (InOut a -> HId_t -> CUInt -> InArray HSize_t -> InOut b -> IO HErr_t) -#if H5_VERSION_GE(1,8,11)- -- I don't see any documentation for these callback types in the HDF5 distribution -- (though I didn't look very hard, it might be there somewhere) @@ -183,8 +123,6 @@ -- > size_t dst_buf_bytes_used, void *op_data); type H5D_gather_func_t a b = FunPtr (InArray a -> CSize -> InOut b -> IO HErr_t) -#endif /* H5_VERSION_GE */- -- |Creates a new dataset named 'name' at 'loc_id', opens the -- dataset for access, and associates with that dataset constant -- and initial persistent properties including the type of each@@ -290,7 +228,6 @@ -- > hid_t H5Dget_create_plist(hid_t dset_id); #ccall H5Dget_create_plist, <hid_t> -> IO <hid_t> -#if H5_VERSION_GE(1,8,3) -- |Returns a copy of the dataset creation property list of the specified -- dataset. --@@ -314,7 +251,6 @@ -- -- > hid_t H5Dget_access_plist(hid_t dset_id); #ccall H5Dget_access_plist, <hid_t> -> IO <hid_t>-#endif -- |Returns the amount of storage that is required for the -- dataset. For chunked datasets this is the number of allocated@@ -474,18 +410,6 @@ -- > herr_t H5Dset_extent(hid_t dset_id, const hsize_t size[]); #ccall H5Dset_extent, <hid_t> -> InArray <hsize_t> -> IO <herr_t> -#if H5_VERSION_GE(1,10,0)---- > H5_DLL herr_t H5Dflush(hid_t dset_id);-#ccall H5Dflush, <hid_t> -> IO <herr_t>---- > H5_DLL herr_t H5Drefresh(hid_t dset_id); -#ccall H5Drefresh, <hid_t> -> IO <herr_t>--#endif--#if H5_VERSION_GE(1,8,11)- -- |Scatters data provided by the callback op to the -- destination buffer dst_buf, where the dimensions of -- dst_buf and the selection to be scattered to are specified@@ -510,8 +434,6 @@ -- > size_t dst_buf_size, void *dst_buf, H5D_gather_func_t op, void *op_data); #ccall H5Dgather, <hid_t> -> InArray a -> <hid_t> -> <size_t> -> OutArray a -> H5D_gather_func_t a b -> InOut b -> IO <herr_t> -#endif /* H5_VERSION_GE */- -- |Prints various information about a dataset. This function is not to be -- documented in the API at this time. --@@ -520,8 +442,34 @@ -- > herr_t H5Ddebug(hid_t dset_id); #ccall H5Ddebug, <hid_t> -> IO <herr_t> -#if H5_VERSION_GE(1,10,0)+-- |Bit flags for the H5Pset_chunk_opts() and H5Pget_chunk_opts()+#num H5D_CHUNK_DONT_FILTER_PARTIAL_CHUNKS +-- |actual data is stored in other datasets+#newtype_const H5D_layout_t, H5D_VIRTUAL++-- |v1 B-tree index (default)+#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_BTREE+-- |Single Chunk index (cur dims[]=max dims[]=chunk dims[]; filtered & non-filtered)+#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_SINGLE+-- |Implicit: No Index (H5D_ALLOC_TIME_EARLY, non-filtered, fixed dims)+#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_NONE+-- |Fixed array (for 0 unlimited dims)+#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_FARRAY+-- |Extensible array (for 1 unlimited dim)+#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_EARRAY+-- |v2 B-tree index (for >1 unlimited dims)+#newtype_const H5D_chunk_index_t, H5D_CHUNK_IDX_BT2++#num H5D_CHUNK_IDX_NTYPES++-- | Values for VDS bounds option+#newtype H5D_vds_view_t, Eq+#newtype_const H5D_vds_view_t, H5D_VDS_ERROR+#newtype_const H5D_vds_view_t, H5D_VDS_FIRST_MISSING+#newtype_const H5D_vds_view_t, H5D_VDS_LAST_AVAILABLE++ -- |Internal API routines -- > H5_DLL herr_t H5Dformat_convert(hid_t dset_id); #ccall H5Dformat_convert, <hid_t> -> IO <herr_t>@@ -529,7 +477,15 @@ -- > H5_DLL herr_t H5Dget_chunk_index_type(hid_t did, H5D_chunk_index_t *idx_type); #ccall H5Dget_chunk_index_type, <hid_t> -> IO H5D_chunk_index_t -#endif+-- |Callback for H5Pset_append_flush() in a dataset access property list+-- > typedef herr_t (*H5D_append_cb_t)(hid_t dataset_id, hsize_t *cur_dims, void *op_data)+type H5D_append_cb_t a = FunPtr (HId_t -> Out HSize_t -> InOut a -> IO HErr_t)++-- > H5_DLL herr_t H5Dflush(hid_t dset_id);+#ccall H5Dflush, <hid_t> -> IO <herr_t>++-- > H5_DLL herr_t H5Drefresh(hid_t dset_id);+#ccall H5Drefresh, <hid_t> -> IO <herr_t> #ifndef H5_NO_DEPRECATED_SYMBOLS
src/Bindings/HDF5/Raw/H5E.hsc view
@@ -74,13 +74,9 @@ -- |Symbol table #cinline H5E_SYM, <hid_t> -#if H5_VERSION_GE(1,8,11)- -- |Plugin for dynamically loaded library #cinline H5E_PLUGIN, <hid_t> -#endif /* H5_VERSION_GE */- -- |Virtual File Layer #cinline H5E_VFL, <hid_t> @@ -117,11 +113,6 @@ -- |Object header #cinline H5E_OHDR, <hid_t> --- |Object atom-#if !H5_VERSION_GE(1,8,14)-#cinline H5E_ATOM, <hid_t>-#endif- -- |Attribute #cinline H5E_ATTR, <hid_t> @@ -227,9 +218,7 @@ #cinline H5E_CANTSET, <hid_t> #cinline H5E_DUPCLASS, <hid_t> -#if H5_VERSION_GE(1,8,9) #cinline H5E_SETDISALLOWED, <hid_t>-#endif -- ** Free space errors #cinline H5E_CANTMERGE, <hid_t>@@ -267,13 +256,9 @@ -- ** No error #cinline H5E_NONE_MINOR, <hid_t> -#if H5_VERSION_GE(1,8,11)- -- ** Plugin errors #cinline H5E_OPENERROR, <hid_t> -#endif /* H5_VERSION_GE */- -- ** File accessibility errors #cinline H5E_FILEEXISTS, <hid_t> #cinline H5E_FILEOPEN, <hid_t>@@ -286,9 +271,6 @@ #cinline H5E_MOUNT, <hid_t> -- ** Object atom related errors-#if !H5_VERSION_GE(1,8,14)-#cinline H5E_BADATOM, <hid_t>-#endif #cinline H5E_BADGROUP, <hid_t> #cinline H5E_CANTREGISTER, <hid_t> #cinline H5E_CANTINC, <hid_t>
src/Bindings/HDF5/Raw/H5F.hsc view
@@ -45,30 +45,10 @@ -- |create non-existing files #num H5F_ACC_CREAT -#if H5_VERSION_GE(1,10,0)---- |indicate that this file is open for writing in a--- single-writer/multi-reader (SWMR) scenario. Note that the--- process(es) opening the file for reading must open the file with--- RDONLY access, and use the special "SWMR_READ" access flag.-#num H5F_ACC_SWMR_WRITE---- |indicate that this file is open for reading in a--- single-writer/multi-reader (SWMR) scenario. Note that the--- process(es) opening the file for SWMR reading must also open the--- file with the RDONLY flag. */-#num H5F_ACC_SWMR_READ--#endif--#if H5_VERSION_GE(1,8,3)- -- |Value passed to 'h5p_set_elink_acc_flags' to cause flags to be taken from the -- parent file. #num H5F_ACC_DEFAULT -#endif- -- ** Flags for 'h5f_get_obj_count' and 'h5f_get_obj_ids' calls -- |File objects@@ -131,8 +111,6 @@ #newtype_const H5F_close_degree_t, H5F_CLOSE_STRONG -#if H5_VERSION_GE(1,8,4)- -- |Types of allocation requests. The values larger than 'h5fd_MEM_DEFAULT' -- should not change other than adding new types to the end. These numbers -- might appear in files.@@ -160,23 +138,7 @@ -- |Sentinel value - must be last #num H5FD_MEM_NTYPES -#endif -#if H5_VERSION_GE(1,10,0)---- |Free space section information-#starttype H5F_sect_info_t---- |Address of free space section-#field addr, <haddr_t>---- |Size of free space section-#field size, <hsize_t>--#stoptype--#endif- -- |Library's file format versions #newtype H5F_libver_t @@ -186,54 +148,6 @@ -- |Use the latest possible format available for storing objects #newtype_const H5F_libver_t, H5F_LIBVER_LATEST -#if H5_VERSION_GE(1,8,6) && H5_VERSION_LE(1,8,16)---- |Use version 1.8 format for storing objects-#newtype_const H5F_libver_t, H5F_LIBVER_18--#endif--#if H5_VERSION_GE(1,10,0)---- |File space handling strategy-#newtype H5F_file_space_type_t, Eq---- |Default (or current) free space strategy setting-#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_DEFAULT---- |Persistent free space managers, aggregators, virtual file driver-#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_ALL_PERSIST---- |Non-persistent free space managers, aggregators, virtual file driver--- This is the library default-#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_ALL---- |Aggregators, Virtual file driver-#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_AGGR_VFD---- |Virtual file driver-#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_VFD--#num H5F_FILE_SPACE_NTYPES---- | Data structure to report the collection of read retries for metadata items with checksum--- Used by public routine H5Fget_metadata_read_retry_info()--- TODO check the retries static array-#num H5F_NUM_METADATA_READ_RETRY_TYPES--#starttype H5F_retry_info_t-#field nbins, CUInt-#field retries, Ptr Word32-#stoptype ---- |Callback for H5Pset_object_flush_cb() in a file access property list--- > typedef herr_t (*H5F_flush_cb_t)(hid_t object_id, void *udata);--type H5F_flush_cb_t a = FunPtr (HId_t -> InOut a -> IO HErr_t)--#endif-- -- * Public functions -- |Check the file signature to detect an HDF5 file.@@ -406,8 +320,6 @@ -- > herr_t H5Fget_filesize(hid_t file_id, hsize_t *size); #ccall H5Fget_filesize, <hid_t> -> Out <hsize_t> -> IO <herr_t> -#if H5_VERSION_GE(1,8,9)- -- |If a buffer is provided (via the buf_ptr argument) and is -- big enough (size in buf_len argument), load *buf_ptr with -- an image of the open file whose ID is provided in the@@ -444,8 +356,6 @@ -- > ssize_t H5Fget_file_image(hid_t file_id, void * buf_ptr, size_t buf_len); #ccall H5Fget_file_image, <hid_t> -> InArray a -> <size_t> -> IO <ssize_t> -#endif- -- |Retrieves the current automatic cache resize configuration -- from the metadata cache, and return it in 'config_ptr'. --@@ -533,26 +443,6 @@ -- -- Returns non-negative on success, negative on failure ---#if H5_VERSION_GE(1,10,0)--#if H5Fget_info_vers == 2--- > herr_t H5Fget_info2(hid_t obj_id, H5F_info2_t *bh_info);-#ccall H5Fget_info2, <hid_t> -> Out H5F_info_t -> IO <herr_t>-#endif---- > herr_t H5Fget_metadata_read_retry_info(hid_t file_id, H5F_retry_info_t *info);-#ccall H5Fget_metadata_read_retry_info, <hid_t> -> Out H5F_retry_info_t -> IO <herr_t>---- > herr_t H5Fstart_swmr_write(hid_t file_id);-#ccall H5Fstart_swmr_write, <hid_t> -> IO <herr_t>---- > ssize_t H5Fget_free_sections(hid_t file_id, H5F_mem_t type,--- > size_t nsects, H5F_sect_info_t *sect_info/*out*/);-#ccall H5Fget_free_sections, <hid_t> -> <H5F_mem_t> -> <size_t> -> Out H5F_sect_info_t -> IO <ssize_t>--#endif--#if H5_VERSION_GE(1,8,7) -- |Releases the external file cache associated with the -- provided file, potentially closing any cached files -- unless they are held open from somewhere else.@@ -561,30 +451,8 @@ -- -- > herr_t H5Fclear_elink_file_cache(hid_t file_id); #ccall H5Fclear_elink_file_cache, <hid_t> -> IO <herr_t>-#endif -#if H5_VERSION_GE(1,10,0)---- > herr_t H5Fstart_mdc_logging(hid_t file_id);-#ccall H5Fstart_mdc_logging, <hid_t> -> IO <herr_t>---- > herr_t H5Fstop_mdc_logging(hid_t file_id);-#ccall H5Fstop_mdc_logging, <hid_t> -> IO <herr_t>---- > herr_t H5Fget_mdc_logging_status(hid_t file_id,--- > /*OUT*/ hbool_t *is_enabled,--- > /*OUT*/ hbool_t *is_currently_logging);-#ccall H5Fget_mdc_logging_status, <hid_t> -> Out hbool_t -> Out hbool_t -> IO <herr_t>---- > herr_t H5Fformat_convert(hid_t fid);-#ccall H5Fformat_convert, <hid_t> -> IO <herr_t>---- > herr_t H5Fget_info1(hid_t obj_id, H5F_info1_t *bh_info);-#ccall H5Fget_info1, <hid_t> -> Out H5F_info1_t -> IO <herr_t>--#endif--#if H5_VERSION_GE(1,8,9) && H5_HAVE_PARALLEL+#if H5_HAVE_PARALLEL -- |Sets the atomicity mode --@@ -600,96 +468,120 @@ #endif +-- |indicate that this file is open for writing in a+-- single-writer/multi-reader (SWMR) scenario. Note that the+-- process(es) opening the file for reading must open the file with+-- RDONLY access, and use the special "SWMR_READ" access flag.+#num H5F_ACC_SWMR_WRITE -#if H5_VERSION_GE(1,10,0) && !H5_NO_DEPRECATED_SYMBOLS+-- |indicate that this file is open for reading in a+-- single-writer/multi-reader (SWMR) scenario. Note that the+-- process(es) opening the file for SWMR reading must also open the+-- file with the RDONLY flag. */+#num H5F_ACC_SWMR_READ --- |Current "global" information about file--- (just size info currently) #starttype H5F_info1_t---- |Superblock extension size #field super_ext_size, <hsize_t>---- |Shared object header message header size #field sohm.hdr_size, <hsize_t>---- |Shared object header message index & heap size #field sohm.msgs_info, <H5_ih_info_t> #stoptype -#endif---- #if (H5_VERSION_GE(1,10,0) && (H5Fget_info_vers == 1)) || H5_VERSION_LE(1,8,18)-#if H5Fget_info_vers == 1+#starttype H5F_info2_t+#field super.version, CUInt+#field super.super_size, <hsize_t>+#field super.super_ext_size, <hsize_t>+#field free.version, CUInt+#field free.meta_size, <hsize_t>+#field free.tot_space, <hsize_t>+#field sohm.version, CUInt+#field sohm.hdr_size, <hsize_t>+#field sohm.msgs_info, <H5_ih_info_t>+#stoptype --- |Current "global" information about file--- (just size info currently)-#starttype H5F_info_t+-- |Free space section information+#starttype H5F_sect_info_t --- |Superblock extension size-#field super_ext_size, <hsize_t>+-- |Address of free space section+#field addr, <haddr_t> --- |Shared object header message header size-#field sohm.hdr_size, <hsize_t>+-- |Size of free space section+#field size, <hsize_t> --- |Shared object header message index & heap size-#field sohm.msgs_info, <H5_ih_info_t>- #stoptype -#elif H5Fget_info_vers == 2+-- |File space handling strategy+#newtype H5F_file_space_type_t, Eq --- |Current "global" information about file--- (just size info currently)-#starttype H5F_info_t+-- |Default (or current) free space strategy setting+#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_DEFAULT --- |Superblock version-#field super.version, CUInt+-- |Persistent free space managers, aggregators, virtual file driver+#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_ALL_PERSIST --- |Superblock size-#field super.super_size, <hsize_t>+-- |Non-persistent free space managers, aggregators, virtual file driver+-- This is the library default+#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_ALL --- |Superblock extension size-#field super.super_ext_size, <hsize_t>+-- |Aggregators, Virtual file driver+#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_AGGR_VFD --- |Version # of file free space management-#field free.version, CUInt+-- |Virtual file driver+#newtype_const H5F_file_space_type_t, H5F_FILE_SPACE_VFD --- |Free space manager metadata size-#field free.meta_size, <hsize_t>+#num H5F_FILE_SPACE_NTYPES --- |Amount of free space in the file-#field free.tot_space, <hsize_t>+-- | Data structure to report the collection of read retries for metadata items with checksum+-- Used by public routine H5Fget_metadata_read_retry_info()+-- TODO check the retries static array+#num H5F_NUM_METADATA_READ_RETRY_TYPES --- |Version # of shared object header info-#field sohm.version, CUInt+#starttype H5F_retry_info_t+#field nbins, CUInt+#field retries, Ptr Word32+#stoptype --- |Shared object header message header size-#field sohm.hdr_size, <hsize_t>+type H5F_flush_cb_t a = FunPtr (HId_t -> InOut a -> IO HErr_t) --- |Shared object header message index & heap size-#field sohm.msgs_info, <H5_ih_info_t>+#ccall H5Fformat_convert, <hid_t> -> IO <herr_t>+#ccall H5Fget_mdc_logging_status, <hid_t> -> Out hbool_t -> Out hbool_t -> IO <herr_t>+#ccall H5Fget_metadata_read_retry_info, <hid_t> -> Out H5F_retry_info_t -> IO <herr_t>+#ccall H5Fget_free_sections, <hid_t> -> <H5F_mem_t> -> <size_t> -> Out H5F_sect_info_t -> IO <ssize_t>+#ccall H5Fstart_mdc_logging, <hid_t> -> IO <herr_t>+#ccall H5Fstart_swmr_write, <hid_t> -> IO <herr_t>+#ccall H5Fstop_mdc_logging, <hid_t> -> IO <herr_t> -#stoptype -type H5F_info2_t = H5F_info_t+--------------------------+-- Compatibility macros --+-------------------------- -#else -#error unknown H5Fget_info_vers+-- H5F_info_t +#if H5Fget_info_vers == 1+#synonym_t H5F_info_t, <H5F_info1_t>+#elif H5Fget_info_vers == 2+#synonym_t H5F_info_t, <H5F_info2_t>+#else+# error TODO #endif +-- H5Fget_info -#if H5_VERSION_GE(1,8,10)-#if (H5Fget_info_vers == 1)-foreign import ccall unsafe "H5Fget_info1" h5f_get_info-#else-foreign import ccall unsafe "H5Fget_info2" h5f_get_info-#endif+#if defined(H5Fget_info_vers)+# ccall H5Fget_info1, <hid_t> -> Out H5F_info1_t -> IO <herr_t>+# ccall H5Fget_info2, <hid_t> -> Out H5F_info2_t -> IO <herr_t>+# if H5Fget_info_vers == 1+h5f_get_info :: HId_t -> Out H5F_info1_t -> IO HErr_t+h5f_get_info = h5f_get_info1+# elif H5Fget_info_vers == 2+h5f_get_info :: HId_t -> Out H5F_info2_t -> IO HErr_t+h5f_get_info = h5f_get_info2+# else+# error TODO+# endif #else-foreign import ccall unsafe "H5Fget_info" h5f_get_info+# ccall H5Fget_info, <hid_t> -> Out H5F_info_t -> IO <herr_t>+h5f_get_info1 :: HId_t -> Out H5F_info_t -> IO HErr_t+h5f_get_info1 = h5f_get_info #endif- :: HId_t -> Out H5F_info_t -> IO HErr_t--
src/Bindings/HDF5/Raw/H5FD.hsc view
@@ -26,132 +26,46 @@ -- |Default VFL driver value #newtype_const hid_t, H5FD_VFD_DEFAULT -#if H5_VERSION_GE(1,8,4)- -- |Types of allocation requests: see "Bindings.HDF5.Raw.H5F" type H5FD_mem_t = H5F_mem_t -#else--#newtype H5FD_mem_t, Eq--#newtype_const H5FD_mem_t, H5FD_MEM_NOLIST-#newtype_const H5FD_mem_t, H5FD_MEM_DEFAULT--#if H5_VERSION_LE(1,8,9)-#newtype_const H5FD_mem_t, H5FD_MEM_SUPER-#endif--#newtype_const H5FD_mem_t, H5FD_MEM_BTREE-#newtype_const H5FD_mem_t, H5FD_MEM_DRAW-#newtype_const H5FD_mem_t, H5FD_MEM_GHEAP-#newtype_const H5FD_mem_t, H5FD_MEM_LHEAP-#newtype_const H5FD_mem_t, H5FD_MEM_OHDR--#endif- -- |Map "fractal heap" header blocks to 'ohdr' type file memory, since its -- a fair amount of work to add a new kind of file memory and they are similar -- enough to object headers and probably too minor to deserve their own type.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_FHEAP_HDR-#else-#newtype_const H5FD_mem_t, H5FD_MEM_FHEAP_HDR-#endif -- |Map "fractal heap" indirect blocks to 'ohdr' type file memory, since they -- are similar to fractal heap header blocks.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_FHEAP_IBLOCK-#else-#newtype_const H5FD_mem_t, H5FD_MEM_FHEAP_IBLOCK-#endif -- |Map "fractal heap" direct blocks to 'lheap' type file memory, since they -- will be replacing local heaps.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_FHEAP_DBLOCK-#else-#newtype_const H5FD_mem_t, H5FD_MEM_FHEAP_DBLOCK-#endif -- |Map "fractal heap" 'huge' objects to 'draw' type file memory, since they -- represent large objects that are directly stored in the file.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_FHEAP_HUGE_OBJ-#else-#newtype_const H5FD_mem_t, H5FD_MEM_FHEAP_HUGE_OBJ-#endif -- |Map "free space" header blocks to 'ohdr' type file memory, since its -- a fair amount of work to add a new kind of file memory and they are similar -- enough to object headers and probably too minor to deserve their own type.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_FSPACE_HDR-#else-#newtype_const H5FD_mem_t, H5FD_MEM_FSPACE_HDR-#endif -- |Map "free space" serialized sections to 'lheap' type file memory, since they -- are similar enough to local heap info.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_FSPACE_SINFO-#else-#newtype_const H5FD_mem_t, H5FD_MEM_FSPACE_SINFO-#endif -- |Map "shared object header message" master table to 'ohdr' type file memory, -- since its a fair amount of work to add a new kind of file memory and they are -- similar enough to object headers and probably too minor to deserve their own -- type.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_SOHM_TABLE-#else-#newtype_const H5FD_mem_t, H5FD_MEM_SOHM_TABLE-#endif -- |Map "shared object header message" indices to 'btree' type file memory, -- since they are similar enough to B-tree nodes.-#if H5_VERSION_GE(1,8,4) #newtype_const H5F_mem_t, H5FD_MEM_SOHM_INDEX-#else-#newtype_const H5FD_mem_t, H5FD_MEM_SOHM_INDEX-#endif -#if H5_VERSION_GE(1,10,0)--- |Map "extensible array" header blocks to 'ohdr' type file memory, since its--- a fair amount of work to add a new kind of file memory and they are similar--- enough to object headers and probably too minor to deserve their own type.------ Map "extensible array" index blocks to 'ohdr' type file memory, since they--- are similar to extensible array header blocks.------ Map "extensible array" super blocks to 'btree' type file memory, since they--- are similar enough to B-tree nodes.------ Map "extensible array" data blocks & pages to 'lheap' type file memory, since--- they are similar enough to local heap info. -#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_HDR-#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_IBLOCK-#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_SBLOCK-#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_DBLOCK-#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_DBLK_PAGE---- |Map "fixed array" header blocks to 'ohdr' type file memory, since its--- a fair amount of work to add a new kind of file memory and they are similar--- enough to object headers and probably too minor to deserve their own type.------ Map "fixed array" data blocks & pages to 'lheap' type file memory, since--- they are similar enough to local heap info.---#newtype_const H5F_mem_t, H5FD_MEM_FARRAY_HDR-#newtype_const H5F_mem_t, H5FD_MEM_FARRAY_DBLOCK-#newtype_const H5F_mem_t, H5FD_MEM_FARRAY_DBLK_PAGE--#endif- -- Array initializers: pass a buffer and the size of that buffer (in bytes) -- and it will be filled as prescribed by the corresponding array-literal macro. --@@ -208,36 +122,23 @@ -- and then sub-allocate \"small\" raw data requests from that larger block. #num H5FD_FEAT_AGGREGATE_SMALLDATA -#if H5_VERSION_GE(1,8,4)- -- |Defining 'h5fd_FEAT_IGNORE_DRVRINFO' for a VFL driver means that -- the library will ignore the driver info that is encoded in the file -- for the VFL driver. (This will cause the driver info to be eliminated -- from the file when it is flushed/closed, if the file is opened R/W). #num H5FD_FEAT_IGNORE_DRVRINFO -#if H5_VERSION_LE(1,8,16) -- |Defining 'h5fd_FEAT_DIRTY_SBLK_LOAD' for a VFL driver means that -- the library will mark the superblock dirty when the file is opened -- R/W. This will cause the driver info to be re-encoded when the file -- is flushed/closed.-#num H5FD_FEAT_DIRTY_SBLK_LOAD--#endif--#endif--#if H5_VERSION_GE(1,8,5)+#num H5FD_FEAT_DIRTY_DRVRINFO_LOAD -- |Defining 'h5fd_FEAT_POSIX_COMPAT_HANDLE' for a VFL driver means that -- the handle for the VFD (returned with the 'get_handle' callback) is -- of type 'int' and is compatible with POSIX I/O calls. #num H5FD_FEAT_POSIX_COMPAT_HANDLE -#endif--#if H5_VERSION_GE(1,8,9)- -- |Defining 'H5FD_FEAT_ALLOW_FILE_IMAGE' for a VFL driver means that -- the driver is able to use a file image in the fapl as the initial -- contents of a file.@@ -248,25 +149,12 @@ -- image to store in memory. #num H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS -#endif--#if H5_VERSION_GE(1,10,0)---- |Defining 'H5FD_FEAT_SUPPORTS_SWMR_IO' for a VFL driver means that the--- driver supports the single-writer/multiple-readers I/O pattern.--#num H5FD_FEAT_SUPPORTS_SWMR_IO--#endif- -- |Class information for each file driver #starttype H5FD_class_t #field name, CString #field maxaddr, <haddr_t> #field fc_degree, <H5F_close_degree_t>-#if H5_VERSION_GE(1,10,0) #field terminate, FunPtr (IO <herr_t>)-#endif #field sb_size, FunPtr (In H5FD_t -> IO <hsize_t>) #field sb_encode, FunPtr (In H5FD_t -> OutArray CChar -> Out CUChar -> IO <herr_t>) #field sb_decode, FunPtr (In H5FD_t -> CString -> In CUChar -> IO <herr_t>)@@ -281,39 +169,19 @@ #field close, FunPtr (In <H5FD_t> -> IO <herr_t>) #field cmp, FunPtr (In <H5FD_t> -> In <H5FD_t> -> IO CInt) #field query, FunPtr (In <H5FD_t> -> Ptr CULong -> IO <herr_t>)--#if H5_VERSION_GE(1,8,2) #field get_type_map, FunPtr (In <H5FD_t> -> Out <H5FD_mem_t> -> IO <herr_t>)-#endif- #field alloc, FunPtr (In <H5FD_t> -> <H5FD_mem_t> -> <hid_t> -> <hsize_t> -> IO <haddr_t>) #field free, FunPtr (In <H5FD_t> -> <H5FD_mem_t> -> <hid_t> -> <haddr_t> -> <hsize_t> -> IO <herr_t>) #field get_eoa, FunPtr (In <H5FD_t> -> <H5FD_mem_t> -> IO <haddr_t>) #field set_eoa, FunPtr (In <H5FD_t> -> <H5FD_mem_t> -> <haddr_t>)--#if H5_VERSION_GE(1,10,0) #field get_eof, FunPtr (In <H5FD_t> -> <H5FD_mem_t> -> IO <haddr_t>)-#else-#field get_eof, FunPtr (In <H5FD_t> -> IO <haddr_t>)-#endif- #field get_handle, FunPtr (In <H5FD_t> -> <hid_t> -> Out (Ptr ()) -> IO <herr_t>) #field read, FunPtr (In <H5FD_t> -> <H5FD_mem_t> -> <hid_t> -> <haddr_t> -> <size_t> -> OutArray () -> IO <herr_t>) #field write, FunPtr (In <H5FD_t> -> <H5FD_mem_t> -> <hid_t> -> <haddr_t> -> <size_t> -> InArray () -> IO <herr_t>) #field flush, FunPtr (In <H5FD_t> -> <hid_t> -> CUInt -> IO <herr_t>)--#if H5_VERSION_GE(1,8,2) #field truncate, FunPtr (In <H5FD_t> -> <hid_t> -> <hbool_t> -> IO <herr_t>)-#endif--#if H5_VERSION_GE(1,10,0) #field lock, FunPtr (In <H5FD_t> -> <hbool_t> -> IO <herr_t>) #field unlock, FunPtr (In <H5FD_t> -> IO <herr_t>)-#else-#field lock, FunPtr (In <H5FD_t> -> Ptr CUChar -> CUInt -> <hbool_t> -> IO <herr_t>)-#field unlock, FunPtr (In <H5FD_t> -> Ptr CUChar -> <hbool_t> -> IO <herr_t>)-#endif- #array_field fl_map, <H5FD_mem_t> #stoptype @@ -345,17 +213,9 @@ -- |For this file, overrides class #field maxaddr, <haddr_t> -#if H5_VERSION_GE(1,8,2) -- |Base address for HDF5 data w/in file #field base_addr, <haddr_t>-#endif -#if H5_VERSION_GE(1,10,0) && H5_VERSION_LE(1,10,1)--- |Whether the file is open for SWMR read access--- Information from file open flags, for SWMR access--- #field swmr_read, <hbool_t>-#endif- -- Space allocation management fields -- |Threshold for alignment@@ -364,8 +224,6 @@ #field alignment, <hsize_t> #stoptype -#if H5_VERSION_GE(1,8,9)- -- |enum for the source of file image callbacks #newtype H5FD_file_image_op_t @@ -397,7 +255,6 @@ -- void *udata; -- } H5FD_file_image_callbacks_t; -#endif -- |Registers a new file driver as a member of the virtual file -- driver class. Certain fields of the class struct are@@ -593,13 +450,6 @@ -- -- On failure, returns 'hADDR_UNDEF' ---#if H5_VERSION_GE(1,10,0)--- > haddr_t H5FDget_eof(H5FD_t *file, H5FD_mem_t type);-#ccall H5FDget_eof, In <H5FD_t> -> <H5FD_mem_t> -> IO <haddr_t>-#else--- > haddr_t H5FDget_eof(H5FD_t *file);-#ccall H5FDget_eof, In <H5FD_t> -> IO <haddr_t>-#endif -- |Returns a pointer to the file handle of low-level virtual -- file driver.@@ -643,19 +493,53 @@ -- > herr_t H5FDflush(H5FD_t *file, hid_t dxpl_id, unsigned closing); #ccall H5FDflush, In <H5FD_t> -> <hid_t> -> CUInt -> IO <herr_t> -#if H5_VERSION_GE(1,8,2) -- |Notify driver to truncate the file back to the allocated size. -- -- Returns non-negative on success, negative on failure. -- -- > herr_t H5FDtruncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing); #ccall H5FDtruncate, In <H5FD_t> -> <hid_t> -> <hbool_t> -> IO <herr_t>-#endif -#if H5_VERSION_GE(1,10,0)+-- |Map "extensible array" header blocks to 'ohdr' type file memory, since its+-- a fair amount of work to add a new kind of file memory and they are similar+-- enough to object headers and probably too minor to deserve their own type.+--+-- Map "extensible array" index blocks to 'ohdr' type file memory, since they+-- are similar to extensible array header blocks.+--+-- Map "extensible array" super blocks to 'btree' type file memory, since they+-- are similar enough to B-tree nodes.+--+-- Map "extensible array" data blocks & pages to 'lheap' type file memory, since+-- they are similar enough to local heap info.++#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_HDR+#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_IBLOCK+#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_SBLOCK+#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_DBLOCK+#newtype_const H5F_mem_t, H5FD_MEM_EARRAY_DBLK_PAGE++-- |Map "fixed array" header blocks to 'ohdr' type file memory, since its+-- a fair amount of work to add a new kind of file memory and they are similar+-- enough to object headers and probably too minor to deserve their own type.+--+-- Map "fixed array" data blocks & pages to 'lheap' type file memory, since+-- they are similar enough to local heap info.++#newtype_const H5F_mem_t, H5FD_MEM_FARRAY_HDR+#newtype_const H5F_mem_t, H5FD_MEM_FARRAY_DBLOCK+#newtype_const H5F_mem_t, H5FD_MEM_FARRAY_DBLK_PAGE++-- |Defining 'H5FD_FEAT_SUPPORTS_SWMR_IO' for a VFL driver means that the+-- driver supports the single-writer/multiple-readers I/O pattern.++#num H5FD_FEAT_SUPPORTS_SWMR_IO+ -- > herr_t H5FDlock(H5FD_t *file, hbool_t rw); #ccall H5FDlock, In <H5FD_t> -> <hbool_t> -> IO <herr_t> -- > herr_t H5FDunlock(H5FD_t *file); #ccall H5FDunlock, In <H5FD_t> -> IO <herr_t>-#endif++-- > haddr_t H5FDget_eof(H5FD_t *file, H5FD_mem_t type);+#ccall H5FDget_eof, In <H5FD_t> -> <H5FD_mem_t> -> IO <haddr_t>
src/Bindings/HDF5/Raw/H5FD/MPI.hsc view
@@ -76,22 +76,9 @@ #endif /* NOT_YET */ -#if H5_VERSION_GE(1,8,10)- -- herr_t H5FD_mpi_setup_collective(hid_t dxpl_id, MPI_Datatype *btype, -- MPI_Datatype *ftype); #ccall H5FD_mpi_setup_collective, <hid_t> -> Ptr <MPI_Datatype> -> Ptr <MPI_Datatype> -> IO <herr_t>--#else---- herr_t H5FD_mpi_setup_collective(hid_t dxpl_id, MPI_Datatype btype,--- MPI_Datatype ftype);-#ccall H5FD_mpi_setup_collective, <hid_t> -> <MPI_Datatype> -> <MPI_Datatype> -> IO <herr_t>---- herr_t H5FD_mpi_teardown_collective(hid_t dxpl_id);-#ccall H5FD_mpi_teardown_collective, <hid_t> -> IO <herr_t>--#endif -- /* Driver specific methods */
src/Bindings/HDF5/Raw/H5G.hsc view
@@ -44,10 +44,8 @@ -- |Current max. creation order value for group #field max_corder, Int64 -#if H5_VERSION_GE(1,8,2) -- |Whether group has a file mounted on it #field mounted, <hbool_t>-#endif #stoptype @@ -164,12 +162,11 @@ -- > herr_t H5Gclose(hid_t group_id); #ccall H5Gclose, <hid_t> -> IO <herr_t> -#if H5_VERSION_GE(1,10,0) -- > herr_t H5Gflush(hid_t group_id); #ccall H5Gflush, <hid_t> -> IO <herr_t>+ -- > herr_t H5Grefresh(hid_t group_id); #ccall H5Grefresh, <hid_t> -> IO <herr_t>-#endif #ifndef H5_NO_DEPRECATED_SYMBOLS
src/Bindings/HDF5/Raw/H5I.hsc view
@@ -64,16 +64,8 @@ -- TODO: I think HId_t should be parameterised over the element type and -- possibly also dimensionality of the dataset -- |Type of atoms to return to users-#if H5_VERSION_GE(1,10,0)- newtype HId_t = HId_t Int64 deriving (Storable, Eq, Ord) -#else--newtype HId_t = HId_t Int32 deriving (Storable, Eq, Ord)--#endif- instance Show HId_t where showsPrec p (HId_t x) = showParen (p>10) ( showString "HId_t 0x"@@ -280,10 +272,8 @@ -- > htri_t H5Itype_exists(H5I_type_t type); #ccall H5Itype_exists, <H5I_type_t> -> IO <htri_t> -#if H5_VERSION_GE(1,8,3) -- |Check if the given id is valid. An id is valid if it is in -- use and has an application reference count of at least 1. -- -- > htri_t H5Iis_valid(hid_t id); #ccall H5Iis_valid, <hid_t> -> IO <htri_t>-#endif
src/Bindings/HDF5/Raw/H5L.hsc view
@@ -16,10 +16,8 @@ import Bindings.HDF5.Raw.H5 import Bindings.HDF5.Raw.H5I-import Bindings.HDF5.Raw.H5T-#if H5_VERSION_GE(1,12,0) import Bindings.HDF5.Raw.H5O-#endif+import Bindings.HDF5.Raw.H5T import Foreign.Ptr.Conventions @@ -66,154 +64,7 @@ -- |Link ids at or above this value are \"user-defined\" link types. #newtype_const H5L_type_t, H5L_TYPE_UD_MIN --- |Information struct for link (for 'h5l_get_info' / 'h5l_get_info_by_idx') -#if H5_VERSION_GE(1,12,0)--#starttype H5L_info1_t-#field type, <H5L_type_t>-#field corder_valid, <hbool_t>-#field corder, Int64-#field cset, <H5T_cset_t>-#union_field u.address, <haddr_t>-#union_field u.val_size, <size_t>-#stoptype--#ccall H5Lget_info1, <hid_t> -> CString -> Out <H5L_info1_t> -> <hid_t> -> IO <herr_t>-#ccall H5Lget_info_by_idx1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5L_info1_t> -> <hid_t> -> IO <herr_t>--type H5L_iterate1_t a = FunPtr (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t)--#ccall H5Literate1, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate1_t a -> InOut a -> IO <herr_t>-#ccall H5Literate_by_name1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate1_t a -> InOut a -> <hid_t> -> IO <herr_t>-#ccall H5Lvisit1, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate1_t a -> InOut a -> IO <herr_t>-#ccall H5Lvisit_by_name1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate1_t a -> InOut a -> <hid_t> -> IO <herr_t>--#starttype H5L_info2_t-#field type, <H5L_type_t>-#field corder_valid, <hbool_t>-#field corder, Int64-#field cset, <H5T_cset_t>-#union_field u.token, <H5O_token_t>-#union_field u.val_size, <size_t>-#stoptype--#ccall H5Lget_info2, <hid_t> -> CString -> Out <H5L_info2_t> -> <hid_t> -> IO <herr_t>-#ccall H5Lget_info_by_idx2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5L_info2_t> -> <hid_t> -> IO <herr_t>--type H5L_iterate2_t a = FunPtr (HId_t -> CString -> In H5L_info2_t -> InOut a -> IO HErr_t)--#ccall H5Literate2, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate2_t a -> InOut a -> IO <herr_t>-#ccall H5Literate_by_name2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate2_t a -> InOut a -> <hid_t> -> IO <herr_t>-#ccall H5Lvisit2, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate2_t a -> InOut a -> IO <herr_t>-#ccall H5Lvisit_by_name2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate2_t a -> InOut a -> <hid_t> -> IO <herr_t>--#else--#starttype H5L_info_t-#field type, <H5L_type_t>-#field corder_valid, <hbool_t>-#field corder, Int64-#field cset, <H5T_cset_t>-#union_field u.address, <haddr_t>-#union_field u.val_size, <size_t>-#stoptype--#ccall H5Lget_info, <hid_t> -> CString -> Out <H5L_info_t> -> <hid_t> -> IO <herr_t>--#ccall H5Lget_info_by_idx, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5L_info_t> -> <hid_t> -> IO <herr_t>---- |Prototype for 'h5l_iterate' / 'h5l_iterate_by_name' operator------ > typedef herr_t (*H5L_iterate_t)(hid_t group, const char *name, const H5L_info_t *info,--- > void *op_data);--type H5L_iterate_t a = FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)---- |Iterates over links in a group, with user callback routine,--- according to the order within an index.------ Same pattern of behavior as 'h5g_iterate'.------ Returns the return value of the first operator that returns non-zero,--- or zero if all members were processed with no operator returning non-zero.------ Returns negative if something goes wrong within the library, or the--- negative value returned by one of the operators.------ > herr_t H5Literate(hid_t grp_id, H5_index_t idx_type,--- > H5_iter_order_t order, hsize_t *idx, H5L_iterate_t op, void *op_data);-#ccall H5Literate, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate_t a -> InOut a -> IO <herr_t>---- |Iterates over links in a group, with user callback routine,--- according to the order within an index.------ Same pattern of behavior as 'h5g_iterate'.------ Returns the return value of the first operator that returns non-zero,--- or zero if all members were processed with no operator returning non-zero.------ Returns negative if something goes wrong within the library, or the--- negative value returned by one of the operators.------ > herr_t H5Literate_by_name(hid_t loc_id, const char *group_name,--- > H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx,--- > H5L_iterate_t op, void *op_data, hid_t lapl_id);-#ccall H5Literate_by_name, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate_t a -> InOut a -> <hid_t> -> IO <herr_t>---- |Recursively visit all the links in a group and all--- the groups that are linked to from that group. Links within--- each group are visited according to the order within the--- specified index (unless the specified index does not exist for--- a particular group, then the \"name\" index is used).------ NOTE: Each _link_ reachable from the initial group will only be--- visited once. However, because an object may be reached from--- more than one link, the visitation may call the application's--- callback with more than one link that points to a particular--- _object_.------ Returns the return value of the first operator that--- returns non-zero, or zero if all members were--- processed with no operator returning non-zero.------ Returns negative if something goes wrong within the--- library, or the negative value returned by one--- of the operators.------ > herr_t H5Lvisit(hid_t grp_id, H5_index_t idx_type, H5_iter_order_t order,--- > H5L_iterate_t op, void *op_data);-#ccall H5Lvisit, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate_t a -> InOut a -> IO <herr_t>---- |Recursively visit all the links in a group and all--- the groups that are linked to from that group. Links within--- each group are visited according to the order within the--- specified index (unless the specified index does not exist for--- a particular group, then the \"name\" index is used).------ NOTE: Each _link_ reachable from the initial group will only be--- visited once. However, because an object may be reached from--- more than one link, the visitation may call the application's--- callback with more than one link that points to a particular--- _object_.------ Returns the return value of the first operator that--- returns non-zero, or zero if all members were--- processed with no operator returning non-zero.------ Returns negative if something goes wrong within the--- library, or the negative value returned by one--- of the operators.------ > herr_t H5Lvisit_by_name(hid_t loc_id, const char *group_name,--- > H5_index_t idx_type, H5_iter_order_t order, H5L_iterate_t op,--- > void *op_data, hid_t lapl_id);-#ccall H5Lvisit_by_name, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate_t a -> InOut a -> <hid_t> -> IO <herr_t>---#endif-- -- /* The H5L_class_t struct can be used to override the behavior of a -- * "user-defined" link class. Users should populate the struct with callback -- * functions defined below.@@ -509,3 +360,214 @@ -- > herr_t H5Lcreate_external(const char *file_name, const char *obj_name, -- > hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id); #ccall H5Lcreate_external, CString -> CString -> <hid_t> -> CString -> <hid_t> -> <hid_t> -> IO <herr_t>+++--------------------------+-- Compatibility macros --+--------------------------++-- H5L_info_t++#if defined(H5Lget_info_vers)++# starttype H5L_info1_t+# field type, <H5L_type_t>+# field corder_valid, <hbool_t>+# field corder, Int64+# field cset, <H5T_cset_t>+# union_field u.address, <haddr_t>+# union_field u.val_size, <size_t>+# stoptype++# starttype H5L_info2_t+# field type, <H5L_type_t>+# field corder_valid, <hbool_t>+# field corder, Int64+# field cset, <H5T_cset_t>+# union_field u.token, <H5O_token_t>+# union_field u.val_size, <size_t>+# stoptype++# if H5Lget_info_vers == 1++#synonym_t H5L_info_t, <H5L_info1_t>++# else++#synonym_t H5L_info_t, <H5L_info2_t>++# endif++#else++# starttype H5L_info_t+# field type, <H5L_type_t>+# field corder_valid, <hbool_t>+# field corder, Int64+# field cset, <H5T_cset_t>+# union_field u.address, <haddr_t>+# union_field u.val_size, <size_t>+# stoptype++#endif++-- H5Lget_info++#if defined(H5Lget_info_vers)+# ccall H5Lget_info1, <hid_t> -> CString -> Out <H5L_info1_t> -> <hid_t> -> IO <herr_t>+# ccall H5Lget_info2, <hid_t> -> CString -> Out <H5L_info2_t> -> <hid_t> -> IO <herr_t>+# if H5Lget_info_vers == 1+h5l_get_info :: HId_t -> CString -> Out H5L_info_t -> HId_t -> IO HErr_t+h5l_get_info = h5l_get_info1+# else+h5l_get_info :: HId_t -> CString -> Out H5L_info_t -> HId_t -> IO HErr_t+h5l_get_info = h5l_get_info2+# endif+#else+# ccall H5Lget_info, <hid_t> -> CString -> Out <H5L_info_t> -> <hid_t> -> IO <herr_t>+h5l_get_info1 :: HId_t -> CString -> Out H5L_info_t -> HId_t -> IO HErr_t+h5l_get_info1 = h5l_get_info+#endif++-- H5Lget_info_by_idx++#if defined(H5Lget_info_by_idx_vers)+# ccall H5Lget_info_by_idx1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5L_info1_t> -> <hid_t> -> IO <herr_t+# ccall H5Lget_info_by_idx2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5L_info2_t> -> <hid_t> -> IO <herr_t+# if H5Lget_info_by_idx_vers == 1+h5l_get_info_by_idx :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info_t -> HId_t -> IO HErr_t+h5l_get_info_by_idx = h5l_get_info_by_idx1+# else+h5l_get_info_by_idx :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info_t -> HId_t -> IO HErr_t+h5l_get_info_by_idx = h5l_get_info_by_idx2+# endif+#else+# ccall H5Lget_info_by_idx, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5L_info_t> -> <hid_t> -> IO <herr_t+h5l_get_info_by_idx1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5L_info_t -> HId_t -> IO HErr_t+h5l_get_info_by_idx1 = h5l_get_info_by_idx+#endif++-- H5L_iterate_t++#if defined(H5Literate_vers)++type H5L_iterate1_t a = FunPtr (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t)++foreign import ccall "wrapper" mk'H5L_iterate1_t+ :: (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t)+ -> IO (FunPtr (HId_t -> CString -> In H5L_info1_t -> InOut a -> IO HErr_t))++type H5L_iterate2_t a = FunPtr (HId_t -> CString -> In H5L_info2_t -> InOut a -> IO HErr_t)++foreign import ccall "wrapper" mk'H5L_iterate2_t+ :: (HId_t -> CString -> In H5L_info2_t -> InOut a -> IO HErr_t)+ -> IO (FunPtr (HId_t -> CString -> In H5L_info2_t -> InOut a -> IO HErr_t))+# if H5Literate_vers == 1++type H5L_iterate_t a = FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)+foreign import ccall "wrapper" mk'H5L_iterate_t+ :: (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)+ -> IO (FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t))++# elif H5Literate_vers == 2++type H5L_iterate_t a = FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)+foreign import ccall "wrapper" mk'H5L_iterate_t+ :: (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)+ -> IO (FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t))++# else+# error TODO+# endif+#else++type H5L_iterate_t a = FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)++foreign import ccall "wrapper" mk'H5L_iterate_t+ :: (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t)+ -> IO (FunPtr (HId_t -> CString -> In H5L_info_t -> InOut a -> IO HErr_t))++#endif++-- H5Literate++#if defined(H5Literate_vers)+# ccall H5Literate1, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate1_t a -> InOut a -> IO <herr_t>+# ccall H5Literate2, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate2_t a -> InOut a -> IO <herr_t>+# if H5Literate_vers == 1+h5l_iterate :: HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> IO HErr_t+h5l_iterate = h5l_iterate1+# elif H5Literate_vers == 2+h5l_iterate :: HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> IO HErr_t+h5l_iterate = h5l_iterate2+# else+# error TODO+# endif+#else+# ccall H5Literate, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate_t a -> InOut a -> IO <herr_t>+h5l_iterate1 :: HId_t -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> IO HErr_t+h5l_iterate1 = h5l_iterate+#endif+++-- H5Literate_by_name++#if defined(H5Literate_by_name_vers)+# ccall H5Literate_by_name1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate1_t a -> InOut a -> <hid_t> -> IO <herr_t>+# ccall H5Literate_by_name2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate2_t a -> InOut a -> <hid_t> -> IO <herr_t>+# if H5Literate_by_name_vers == 1+h5l_iterate_by_name :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5l_iterate_by_name = h5l_iterate_by_name1+# elif H5Literate_by_name_vers == 2+h5l_iterate_by_name :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5l_iterate_by_name = h5l_iterate_by_name2+# else+# error TODO+# endif+#else+# ccall H5Literate_by_name, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> InOut <hsize_t> -> H5L_iterate_t a -> InOut a -> <hid_t> -> IO <herr_t>+h5l_iterate_by_name1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> InOut HSize_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5l_iterate_by_name1 = h5l_iterate_by_name+#endif+++-- H5Lvisit++#if defined(H5Lvisit_vers)+# ccall H5Lvisit1, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate1_t a -> InOut a -> IO <herr_t>+# ccall H5Lvisit2, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate2_t a -> InOut a -> IO <herr_t>+# if H5Lvisit_vers == 1+h5l_visit :: HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> IO HErr_t+h5l_visit = h5l_visit1+# elif H5Lvisit_vers == 2+h5l_visit :: HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> IO HErr_t+h5l_visit = h5l_visit2+# else+# error TODO+# endif+#else+# ccall H5Lvisit, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate_t a -> InOut a -> IO <herr_t>+h5l_visit1 :: HId_t -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> IO HErr_t+h5l_visit1 = h5l_visit+#endif+++-- H5Lvisit_by_name++#if defined(H5Lvisit_by_name_vers)+# ccall H5Lvisit_by_name1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate1_t a -> InOut a -> <hid_t> -> IO <herr_t>+# ccall H5Lvisit_by_name2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate2_t a -> InOut a -> <hid_t> -> IO <herr_t>+# if H5Lvisit_by_name_vers == 1+h5l_visit_by_name :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5l_visit_by_name = h5l_visit_by_name1+# elif H5Lvisit_by_name_vers == 2+h5l_visit_by_name :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5l_visit_by_name = h5l_visit_by_name2+# else+# error TODO+# endif+#else+# ccall H5Lvisit_by_name, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5L_iterate_t a -> InOut a -> <hid_t> -> IO <herr_t>+h5l_visit_by_name1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5L_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5l_visit_by_name1 = h5l_visit_by_name+#endif
src/Bindings/HDF5/Raw/H5O.hsc view
@@ -36,13 +36,9 @@ -- |Copy NULL messages (empty space) #num H5O_COPY_PRESERVE_NULL_FLAG -#if H5_VERSION_GE(1,8,9)- -- |Merge committed datatypes in dest file #num H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG -#endif- -- |All object copying flags (for internal checking) #num H5O_COPY_ALL @@ -115,165 +111,29 @@ -- |Number of different object types #num H5O_TYPE_NTYPES -#if H5_VERSION_GE(1,8,4)---- |Information struct for object header metadata--- (for 'h5o_get_info'/ 'h5o_get_info_by_name' / 'h5o_get_info_by_idx') #starttype H5O_hdr_info_t---- |Version number of header format in file #field version, CUInt---- |Number of object header messages #field nmesgs, CUInt---- |Number of object header chunks #field nchunks, CUInt---- |Object header status flags #field flags, CUInt---- |Total space for storing object header in file #field space.total, <hsize_t>---- |Space within header for object header metadata information #field space.meta, <hsize_t>---- |Space within header for actual message information #field space.mesg, <hsize_t>---- |Free space within object header #field space.free, <hsize_t>---- |Flags to indicate presence of message type in header #field mesg.present, Word64---- |Flags to indicate message type is shared in header #field mesg.shared, Word64- #stoptype -#endif--#if H5_VERSION_GE(1,11,0)--#starttype H5O_token_t--#field __data, CUChar--#stoptype--#endif---- |Information struct for object--- (for 'h5o_get_info'/ 'h5o_get_info_by_name' / 'h5o_get_info_by_idx')-#if (H5Fget_info_vers == 1)-#starttype H5O_info_t-#else-#starttype H5O_info2_t-#endif---- |File number that object is located in-#field fileno, CULong--#if (H5Fget_info_vers == 1)--- |Object address in file-#field addr, <haddr_t>-#endif---- |Token representing the object-#if H5_VERSION_GE(1,11,0)-#field token, <H5O_token_t>-#endif---- |Basic object type (group, dataset, etc.)-#field type, <H5O_type_t>---- |Reference count of object-#field rc, CUInt---- |Access time-#field atime, <time_t>---- |Modification time-#field mtime, <time_t>---- |Change time-#field ctime, <time_t>---- |Birth time-#field btime, <time_t>---- |# of attributes attached to object-#field num_attrs, <hsize_t>--#if H5_VERSION_GE(1,8,4)--#if (H5Fget_info_vers == 1)--- |Object header information-#field hdr, <H5O_hdr_info_t>-#endif--#else--#if (H5Fget_info_vers == 1)--- |Version number of header format in file-#field hdr.version, CUInt---- |Number of object header messages-#field hdr.nmesgs, CUInt---- |Number of object header chunks-#field hdr.nchunks, CUInt---- |Object header status flags-#field hdr.flags, CUInt---- |Total space for storing object header in file-#field hdr.space.total, <hsize_t>---- |Space within header for object header metadata information-#field hdr.space.meta, <hsize_t>---- |Space within header for actual message information-#field hdr.space.mesg, <hsize_t>---- |Free space within object header-#field hdr.space.free, <hsize_t>---- |Flags to indicate presence of message type in header-#field hdr.mesg.present, Word64---- |Flags to indicate message type is shared in header-#field hdr.mesg.shared, Word64--#endif--#endif--#if (H5Fget_info_vers == 1)--- |v1/v2 B-tree & local/fractal heap for groups, B-tree for chunked datasets-#field meta_size.obj, <H5_ih_info_t>---- |v2 B-tree & heap for attributes-#field meta_size.attr, <H5_ih_info_t>--#endif-+#starttype H5O_stat_t+#field size, <hsize_t>+#field free, <hsize_t>+#field nmesgs, CUInt+#field nchunks, CUInt #stoptype - -- |Typedef for message creation indexes #newtype H5O_msg_crt_idx_t, Eq, Ord, Read -#if (H5Fget_info_vers == 1)--- |Prototype for 'h5o_visit' / 'h5o_visit_by_name' operator-type H5O_iterate_t a = FunPtr (HId_t -> CString -> In H5O_info_t -> InOut a -> IO HErr_t)-#else--- |Prototype for 'h5o_visit' / 'h5o_visit_by_name' operator-type H5O_iterate2_t a = FunPtr (HId_t -> CString -> In H5O_info2_t -> InOut a -> IO HErr_t)-#endif- #newtype H5O_mcdt_search_ret_t -- |Abort H5Ocopy@@ -359,44 +219,11 @@ -- > H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id); #ccall H5Oopen_by_idx, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> <hid_t> -> IO <hid_t> -#if H5_VERSION_GE(1,8,5)- -- |Determine if a linked-to object exists -- -- > htri_t H5Oexists_by_name(hid_t loc_id, const char *name, hid_t lapl_id); #ccall H5Oexists_by_name, <hid_t> -> CString -> <hid_t> -> IO <htri_t> -#endif---- |Retrieve information about an object.------ Returns non-negative on success, negative on failure.------ > herr_t H5Oget_info(hid_t loc_id, H5O_info_t *oinfo);-#if (H5Fget_info_vers == 1)-#ccall H5Oget_info, <hid_t> -> Out <H5O_info_t> -> IO <herr_t>-#else-#ccall H5Oget_info, <hid_t> -> Out <H5O_info2_t> -> IO <herr_t>-#endif---- |Retrieve information about an object.------ Returns non-negative on success, negative on failure.------ > herr_t H5Oget_info_by_name(hid_t loc_id, const char *name, H5O_info_t *oinfo,--- > hid_t lapl_id);-#ccall H5Oget_info_by_name, <hid_t> -> CString -> Out <H5O_info_t> -> <hid_t> -> IO <herr_t>---- |Retrieve information about an object, according to the order--- of an index.------ Returns non-negative on success, negative on failure.------ > herr_t H5Oget_info_by_idx(hid_t loc_id, const char *group_name,--- > H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5O_info_t *oinfo,--- > hid_t lapl_id);-#ccall H5Oget_info_by_idx, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5O_info_t> -> <hid_t> -> IO <herr_t>- -- |Creates a hard link from 'new_name' to the object specified -- by 'obj_id' using properties defined in the Link Creation -- Property List 'lcpl'.@@ -569,6 +396,195 @@ -- > char *comment, size_t bufsize, hid_t lapl_id); #ccall H5Oget_comment_by_name, <hid_t> -> CString -> OutArray CChar -> <size_t> -> <hid_t> -> IO <ssize_t> +-- |Close an open file object.+--+-- This is the companion to 'h5o_open'. It is used to close any+-- open object in an HDF5 file (but not IDs are that not file+-- objects, such as property lists and dataspaces). It has+-- the same effect as calling 'h5g_close', 'h5d_close', or 'h5t_close'.+--+-- Returns non-negative on success, negative on failure.+--+-- > herr_t H5Oclose(hid_t object_id);+#ccall H5Oclose, <hid_t> -> IO <herr_t>++#ccall H5Oare_mdc_flushes_disabled, <hid_t> -> Out hbool_t -> IO <herr_t>+#ccall H5Odisable_mdc_flushes, <hid_t> -> IO <herr_t>+#ccall H5Oenable_mdc_flushes, <hid_t> -> IO <herr_t>+#ccall H5Oflush, <hid_t> -> IO <herr_t>+#ccall H5Orefresh, <hid_t> -> IO <herr_t>++#if H5_VERSION_GE(1,10,3)++#num H5O_INFO_BASIC+#num H5O_INFO_TIME+#num H5O_INFO_NUM_ATTRS+#num H5O_INFO_HDR+#num H5O_INFO_META_SIZE+#num H5O_INFO_ALL++#endif++--------------------------+-- Compatibility Macros --+--------------------------++-- H5O_info_t++#if defined(H5O_info_t_vers)++#starttype H5O_info1_t+#field fileno, CULong+#field addr, <haddr_t>+#field type, <H5O_type_t>+#field rc, CUInt+#field atime, <time_t>+#field mtime, <time_t>+#field ctime, <time_t>+#field btime, <time_t>+#field num_attrs, <hsize_t>+#field hdr, <H5O_hdr_info_t>+#field meta_size.obj, <H5_ih_info_t>+#field meta_size.attr, <H5_ih_info_t>+#stoptype++#starttype H5O_token_t+#field __data, CUChar+#stoptype++#starttype H5O_info2_t+#field fileno, CULong+#field token, <H5O_token_t>+#field type, <H5O_type_t>+#field rc, CUInt+#field atime, <time_t>+#field mtime, <time_t>+#field ctime, <time_t>+#field btime, <time_t>+#field num_attrs, <hsize_t>+#stoptype++# if H5O_info_t_vers == 1++#synonym_t H5O_info_t, <H5O_info1_t>++# elif H5O_info_t_vers == 2++#synonym_t H5O_info_t, <H5O_info2_t>++# endif++#else++#starttype H5O_info_t+#field fileno, CULong+#field addr, <haddr_t>+#field type, <H5O_type_t>+#field rc, CUInt+#field atime, <time_t>+#field mtime, <time_t>+#field ctime, <time_t>+#field btime, <time_t>+#field num_attrs, <hsize_t>+#field hdr, <H5O_hdr_info_t>+#field meta_size.obj, <H5_ih_info_t>+#field meta_size.attr, <H5_ih_info_t>+#stoptype++#endif++-- H5O_iterate_t++#if defined(H5O_iterate_t_vers)+type H5O_iterate1_t a = FunPtr (HId_t -> CString -> In H5O_info1_t -> InOut a -> IO HErr_t)+type H5O_iterate2_t a = FunPtr (HId_t -> CString -> In H5O_info2_t -> InOut a -> IO HErr_t)+# if H5O_iterate_t_vers == 1+type H5O_iterate_t a = FunPtr (HId_t -> CString -> In H5O_info_t -> InOut a -> IO HErr_t)+# elif H5O_iterate_t_vers == 2+type H5O_iterate_t a = FunPtr (HId_t -> CString -> In H5O_info_t -> InOut a -> IO HErr_t)+# else+# error TODO+# endif+#else+type H5O_iterate_t a = FunPtr (HId_t -> CString -> In H5O_info_t -> InOut a -> IO HErr_t)+type H5O_iterate1_t a = H5O_iterate_t a+#endif++-- H5Oget_info++#if defined(H5Oget_info_vers)+# ccall H5Oget_info1, <hid_t> -> Out <H5O_info1_t> -> IO <herr_t>+# ccall H5Oget_info2, <hid_t> -> Out <H5O_info1_t> -> CUInt -> IO <herr_t>+# if H5Oget_info_vers == 1+h5o_get_info :: HId_t -> Out H5O_info_t -> IO HErr_t+h5o_get_info = h5o_get_info1+# elif H5Oget_info_vers == 2+h5o_get_info :: HId_t -> Out H5O_info_t -> CUInt -> IO HErr_t+h5o_get_info = h5o_get_info2+# elif H5Oget_info_vers == 3+# ccall H5Oget_info, <hid_t> -> Out <H5O_info2_t> -> CUInt -> IO <herr_t>+h5o_get_info :: HId_t -> Out H5O_info_t -> CUInt -> IO HErr_t+h5o_get_info = h5o_get_info3+# else+# error TODO+# endif+#else+# ccall H5Oget_info, <hid_t> -> Out <H5O_info_t> -> IO <herr_t>+h5o_get_info1 :: HId_t -> Out H5O_info_t -> IO HErr_t+h5o_get_info1 = h5o_get_info+#endif+++-- H5Oget_info_by_idx++#if defined(H5Oget_info_by_idx_vers)+# ccall H5Oget_info_by_idx1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5O_info_t> -> <hid_t> -> IO <herr_t>+# ccall H5Oget_info_by_idx2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5O_info_t> -> CUInt -> <hid_t> -> IO <herr_t>+# if H5Oget_info_by_idx_vers == 1+h5o_get_info_by_idx :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info_t -> HId_t -> IO HErr_t+h5o_get_info_by_idx = h5o_get_info_by_idx1+# elif H5Oget_info_by_idx_vers == 2+h5o_get_info_by_idx :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info_t -> CUInt ->HId_t -> IO HErr_t+h5o_get_info_by_idx = h5o_get_info_by_idx2+# elif H5Oget_info_by_idx_vers == 3+# ccall H5Oget_info_by_idx3, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5O_info2_t> -> CUInt -> <hid_t> -> IO <herr_t>+h5o_get_info_by_idx :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info_t -> CUInt -> HId_t -> IO HErr_t+h5o_get_info_by_idx = h5o_get_info_by_idx3+# else+# error TODO+# endif+#else+# ccall H5Oget_info_by_idx, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> <hsize_t> -> Out <H5O_info_t> -> <hid_t> -> IO <herr_t>+h5o_get_info_by_idx1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> HSize_t -> Out H5O_info_t -> HId_t -> IO HErr_t+h5o_get_info_by_idx1 = h5o_get_info_by_idx+#endif++-- H5Oget_info_by_name++#if defined(H5Oget_info_by_name_vers)+# ccall H5Oget_info_by_name1, <hid_t> -> CString -> Out <H5O_info_t> -> <hid_t> -> IO <herr_t>+# ccall H5Oget_info_by_name2, <hid_t> -> CString -> Out <H5O_info_t> -> CUInt -> <hid_t> -> IO <herr_t>+# if H5Oget_info_by_name_vers == 1+h5o_get_info_by_name :: HId_t -> CString -> Out H5O_info_t -> HId_t -> IO HErr_t+h5o_get_info_by_name = h5o_get_info_by_name1+# elif H5Oget_info_by_name_vers == 2+h5o_get_info_by_name :: HId_t -> CString -> Out H5O_info_t -> CUInt -> HId_t -> IO HErr_t+h5o_get_info_by_name = h5o_get_info_by_name2+# elif H5Oget_info_by_name_vers == 3+# ccall H5Oget_info_by_name3, <hid_t> -> CString -> Out <H5O_info2_t> -> CUInt -> <hid_t> -> IO <herr_t>+h5o_get_info_by_name :: HId_t -> CString -> Out H5O_info_t -> CUInt -> HId_t -> IO HErr_t+h5o_get_info_by_name = h5o_get_info_by_name3+# else+# error TODO+# endif+#else+# ccall H5Oget_info_by_name, <hid_t> -> CString -> Out <H5O_info_t> -> <hid_t> -> IO <herr_t>+h5o_get_info_by_name1 :: HId_t -> CString -> Out H5O_info_t -> HId_t -> IO HErr_t+h5o_get_info_by_name1 = h5o_get_info_by_name+#endif++-- H5Ovisit+ -- |Recursively visit an object and all the objects reachable -- from it. If the starting object is a group, all the objects -- linked to from that group will be visited. Links within@@ -594,12 +610,32 @@ -- -- > herr_t H5Ovisit(hid_t obj_id, H5_index_t idx_type, H5_iter_order_t order, -- > H5O_iterate_t op, void *op_data);-#if (H5Fget_info_vers == 1)-#ccall H5Ovisit, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate_t a -> InOut a -> IO <herr_t>++#if defined(H5Ovisit_vers)+# ccall H5Ovisit1, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate1_t a -> InOut a -> IO <herr_t>+# ccall H5Ovisit2, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate1_t a -> InOut a -> CUInt -> IO <herr_t>+# if H5Ovisit_vers == 1+h5o_visit :: HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> IO HErr_t+h5o_visit = h5o_visit1+# elif H5Ovisit_vers == 2+h5o_visit :: HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> CUInt -> IO HErr_t+h5o_visit = h5o_visit2+# elif H5Ovisit_vers == 3+# ccall H5Ovisit3, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate2_t a -> InOut a -> CUInt -> IO <herr_t>+h5o_visit :: HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> CUInt -> IO HErr_t+h5o_visit = h5o_visit3+# else+# error TODO+# endif #else-#ccall H5Ovisit, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate2_t a -> InOut a -> IO <herr_t>+# ccall H5Ovisit, <hid_t> -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate_t a -> InOut a -> IO <herr_t>+h5o_visit1 :: HId_t -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> IO HErr_t+h5o_visit1 = h5o_visit #endif ++-- H5Ovisit_by_name+ -- |Recursively visit an object and all the objects reachable -- from it. If the starting object is a group, all the objects -- linked to from that group will be visited. Links within@@ -626,58 +662,24 @@ -- > herr_t H5Ovisit_by_name(hid_t loc_id, const char *obj_name, -- > H5_index_t idx_type, H5_iter_order_t order, H5O_iterate_t op, -- > void *op_data, hid_t lapl_id);+#if defined(H5Ovisit_by_name_vers)+# ccall H5Ovisit_by_name1, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate_t a -> InOut a -> <hid_t> -> IO <herr_t>+# ccall H5Ovisit_by_name2, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate_t a -> InOut a -> CUInt -> <hid_t> -> IO <herr_t>+# if H5Ovisit_by_name_vers == 1+h5o_visit_by_name :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5o_visit_by_name = h5o_visit_by_name1+# elif H5Ovisit_by_name_vers == 2+h5o_visit_by_name :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> CUInt -> HId_t -> IO HErr_t+h5o_visit_by_name = h5o_visit_by_name2+# elif H5Ovisit_by_name_vers == 3+# ccall H5Ovisit_by_name3, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate_t a -> InOut a -> CUInt -> <hid_t> -> IO <herr_t>+h5o_visit_by_name :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> CUInt -> HId_t -> IO HErr_t+h5o_visit_by_name = h5o_visit_by_name3+# else+# error TODO+# endif+#else #ccall H5Ovisit_by_name, <hid_t> -> CString -> <H5_index_t> -> <H5_iter_order_t> -> H5O_iterate_t a -> InOut a -> <hid_t> -> IO <herr_t>---- |Close an open file object.------ This is the companion to 'h5o_open'. It is used to close any--- open object in an HDF5 file (but not IDs are that not file--- objects, such as property lists and dataspaces). It has--- the same effect as calling 'h5g_close', 'h5d_close', or 'h5t_close'.------ Returns non-negative on success, negative on failure.------ > herr_t H5Oclose(hid_t object_id);-#ccall H5Oclose, <hid_t> -> IO <herr_t>--#if H5_VERSION_GE(1,10,0)---- > herr_t H5Oflush(hid_t obj_id);-#ccall H5Oflush, <hid_t> -> IO <herr_t>---- > herr_t H5Orefresh(hid_t oid);-#ccall H5Orefresh, <hid_t> -> IO <herr_t>---- > herr_t H5Odisable_mdc_flushes(hid_t object_id);-#ccall H5Odisable_mdc_flushes, <hid_t> -> IO <herr_t>---- > herr_t H5Oenable_mdc_flushes(hid_t object_id);-#ccall H5Oenable_mdc_flushes, <hid_t> -> IO <herr_t>---- > herr_t H5Oare_mdc_flushes_disabled(hid_t object_id, hbool_t *are_disabled);-#ccall H5Oare_mdc_flushes_disabled, <hid_t> -> Out hbool_t -> IO <herr_t>-+h5o_visit_by_name1 :: HId_t -> CString -> H5_index_t -> H5_iter_order_t -> H5O_iterate_t a -> InOut a -> HId_t -> IO HErr_t+h5o_visit_by_name1 = h5o_visit_by_name #endif--#ifndef H5_NO_DEPRECATED_SYMBOLS---- * Deprecated types---- |A struct that's part of the 'h5g_stat_t' routine (deprecated)-#starttype H5O_stat_t---- |Total size of object header in file-#field size, <hsize_t>---- |Free space within object header-#field free, <hsize_t>---- |Number of object header messages-#field nmesgs, CUInt---- |Number of object header chunks-#field nchunks, CUInt--#stoptype--#endif /* H5_NO_DEPRECATED_SYMBOLS */
src/Bindings/HDF5/Raw/H5P.hsc view
@@ -57,11 +57,6 @@ #cinline H5P_LINK_CREATE_DEFAULT, <hid_t> #cinline H5P_LINK_ACCESS_DEFAULT, <hid_t> -#if !H5_VERSION_GE(1,8,18)-#cinline H5P_ATTRIBUTE_ACCESS, <hid_t>-#cinline H5P_ATTRIBUTE_ACCESS_DEFAULT, <hid_t>-#endif- -- |Default value for all property list classes #newtype_const hid_t, H5P_DEFAULT @@ -136,16 +131,6 @@ -- > size_t size, void *value); type H5P_prp_get_func_t a = FunPtr (HId_t -> CString -> CSize -> InOut a -> IO HErr_t) -#if H5_VERSION_GE(1,10,0)---- > typedef herr_t (*H5P_prp_encode_func_t)(const void *value, void **buf, size_t *size);-type H5P_prp_encode_func_t a b = FunPtr (In a -> Out b -> Out CSize)---- > typedef herr_t (*H5P_prp_decode_func_t)(const void **buf, void *value);-type H5P_prp_decode_func_t a b = FunPtr (In a -> Out b)--#endif- -- |Parameters: -- -- [@ prop_id :: 'HId_t' @] The ID of the property list the property is deleted from.@@ -230,8 +215,6 @@ -- > typedef herr_t (*H5P_iterate_t)(hid_t id, const char *name, void *iter_data); type H5P_iterate_t a = FunPtr (HId_t -> CString -> InOut a -> IO HErr_t) -#if H5_VERSION_GE(1,8,8)- -- |Actual IO mode property #newtype H5D_mpio_actual_chunk_opt_mode_t @@ -242,10 +225,6 @@ #newtype_const H5D_mpio_actual_chunk_opt_mode_t, H5D_MPIO_LINK_CHUNK #newtype_const H5D_mpio_actual_chunk_opt_mode_t, H5D_MPIO_MULTI_CHUNK -#if H5_VERSION_LE(1,8,10)-#newtype_const H5D_mpio_actual_chunk_opt_mode_t, H5D_MPIO_MULTI_CHUNK_NO_OPT-#endif- -- |The following four values are conveniently defined as a bit field so that -- we can switch from the default to indpendent or collective and then to -- mixed without having to check the original value.@@ -264,10 +243,6 @@ -- |The contiguous case is separate from the bit field. #newtype_const H5D_mpio_actual_io_mode_t, H5D_MPIO_CONTIGUOUS_COLLECTIVE -#endif--#if H5_VERSION_GE(1,8,10)- -- | Broken collective IO property #newtype H5D_mpio_no_collective_cause_t @@ -278,14 +253,6 @@ #newtype_const H5D_mpio_no_collective_cause_t, H5D_MPIO_NOT_SIMPLE_OR_SCALAR_DATASPACES #newtype_const H5D_mpio_no_collective_cause_t, H5D_MPIO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET -#if H5_VERSION_GE(1,10,2)-#newtype_const H5D_mpio_no_collective_cause_t, H5D_MPIO_NO_COLLECTIVE_MAX_CAUSE-#else-#newtype_const H5D_mpio_no_collective_cause_t, H5D_MPIO_FILTERS-#endif--#endif- -- /*********************/ -- /* Public Prototypes */ -- /*********************/@@ -531,16 +498,6 @@ -- > htri_t H5Pexist(hid_t plist_id, const char *name); #ccall H5Pexist, <hid_t> -> CString -> IO <htri_t> -#if H5_VERSION_GE(1,10,0)---- > herr_t H5Pencode(hid_t plist_id, void *buf, size_t *nalloc);-#ccall H5Pencode, <hid_t> -> In a -> Out <size_t> -> IO <herr_t>---- > H5_DLL hid_t H5Pdecode(const void *buf);-#ccall H5Pdecode, In a -> IO <hid_t>--#endif- -- |Routine to query the size of a property in a property list or class. -- -- This routine retrieves the size of a property's value in bytes. Zero-@@ -1182,16 +1139,6 @@ -- > herr_t H5Pget_shared_mesg_phase_change(hid_t plist_id, unsigned *max_list, unsigned *min_btree); #ccall H5Pget_shared_mesg_phase_change, <hid_t> -> Out CUInt -> Out CUInt -> IO <herr_t> -#if H5_VERSION_GE(1,10,0)---- > H5_DLL herr_t H5Pset_file_space(hid_t plist_id, H5F_file_space_type_t strategy, hsize_t threshold);-#ccall H5Pset_file_space, <hid_t> -> H5F_file_space_type_t -> <hsize_t> -> IO <herr_t>---- > H5_DLL herr_t H5Pget_file_space(hid_t plist_id, H5F_file_space_type_t *strategy, hsize_t *threshold);-#ccall H5Pget_file_space, <hid_t> -> Out H5F_file_space_type_t -> Out <hsize_t> -> IO <herr_t>--#endif- -- * File access property list (FAPL) routines -- |Sets the alignment properties of a file access property list@@ -1563,8 +1510,6 @@ -- > H5F_libver_t *high); #ccall H5Pget_libver_bounds, <hid_t> -> Out H5F_libver_t -> Out H5F_libver_t -> IO <herr_t> -#if H5_VERSION_GE(1,8,7)- -- |Sets the number of files opened through external links -- from the file associated with this fapl to be held open -- in that file's external file cache. When the maximum@@ -1587,10 +1532,6 @@ -- > herr_t H5Pget_elink_file_cache_size(hid_t plist_id, unsigned *efc_size); #ccall H5Pget_elink_file_cache_size, <hid_t> -> Out CUInt -> IO <herr_t> -#endif--#if H5_VERSION_GE(1,8,9)- -- |Sets the initial file image. Some file drivers can initialize -- the starting data in a file from a buffer. --@@ -1646,34 +1587,6 @@ -- > H5FD_file_image_callbacks_t *callbacks_ptr); #ccall H5Pget_file_image_callbacks, <hid_t> -> Out H5FD_file_image_callbacks_t -> IO <herr_t> -#endif--#if H5_VERSION_GE(1,10,0)---- > herr_t H5Pset_metadata_read_attempts(hid_t plist_id, unsigned attempts);-#ccall H5Pget_metadata_read_attempts, <hid_t> -> Out CUInt -> IO <herr_t>--- > herr_t H5Pset_object_flush_cb(hid_t plist_id, H5F_flush_cb_t func, void *udata);-#ccall H5Pset_object_flush_cb , <hid_t> -> H5F_flush_cb_t a -> Out a -> IO <herr_t>--- > herr_t H5Pget_object_flush_cb(hid_t plist_id, H5F_flush_cb_t *func, void **udata);-#ccall H5Pget_object_flush_cb, <hid_t> -> H5F_flush_cb_t a -> Out (Out a) -> IO <herr_t>--- > herr_t H5Pset_mdc_log_options(hid_t plist_id, hbool_t is_enabled, const char *location, hbool_t start_on_access);-#ccall H5Pset_mdc_log_options, <hid_t> -> <hbool_t> -> CString -> <hbool_t> -> IO <herr_t>--- > herr_t H5Pget_mdc_log_options(hid_t plist_id, hbool_t *is_enabled, char *location, size_t *location_size, hbool_t *start_on_access);-#ccall H5Pget_mdc_log_options, <hid_t> -> Out <hbool_t> -> Out CString -> Out <size_t> -> Out <hbool_t> -> IO <herr_t>--#ifdef H5_HAVE_PARALLEL--- > herr_t H5Pset_coll_metadata_read(hid_t plist_id, hbool_t is_collective);-#ccall H5Pset_all_coll_metadata_ops, <hid_t> -> <hbool_t> -> IO <herr_t>--- > herr_t H5Pget_coll_metadata_read(hid_t plist_id, hbool_t *is_collective);-#ccall H5Pget_all_coll_metadata_ops, <hid_t> -> Out <hbool_t> -> IO <herr_t>--- > herr_t H5Pset_coll_metadata_write(hid_t plist_id, hbool_t is_collective);-#ccall H5Pset_coll_metadata_write, <hid_t> -> <hbool_t> -> IO <herr_t>--- > herr_t H5Pget_coll_metadata_write(hid_t plist_id, hbool_t *is_collective);-#ccall H5Pget_coll_metadata_write, <hid_t> -> Out <hbool_t> -> IO <herr_t>-#endif /* H5_HAVE_PARALLEL */--#endif- -- * Dataset creation property list (DCPL) routines -- |Sets the layout of raw data in the file.@@ -1712,25 +1625,6 @@ -- > int H5Pget_chunk(hid_t plist_id, int max_ndims, hsize_t dim[]/*out*/); #ccall H5Pget_chunk, <hid_t> -> CInt -> OutArray <hsize_t> -> IO CInt -#if H5_VERSION_GE(1,10,0)--- > herr_t H5Pset_virtual(hid_t dcpl_id, hid_t vspace_id,--- > const char *src_file_name, const char *src_dset_name, hid_t src_space_id);-#ccall H5Pset_virtual, <hid_t> -> <hid_t> -> CString -> CString -> <hid_t> -> IO <herr_t>--- > herr_t H5Pget_virtual_count(hid_t dcpl_id, size_t *count/*out*/);-#ccall H5Pget_virtual_count, <hid_t> -> Out <size_t> -> IO <herr_t>--- > hid_t H5Pget_virtual_vspace(hid_t dcpl_id, size_t index);-#ccall H5Pget_virtual_vspace, <hid_t> -> <size_t> -> IO <hid_t>--- > hid_t H5Pget_virtual_srcspace(hid_t dcpl_id, size_t index);-#ccall H5Pget_virtual_srcspace, <hid_t> -> <size_t> -> IO <hid_t>--- > ssize_t H5Pget_virtual_filename(hid_t dcpl_id, size_t index,--- > char *name/*out*/, size_t size);-#ccall H5Pget_virtual_filename, <hid_t> -> <size_t> -> Out CString -> <size_t> -> IO <ssize_t>--- > ssize_t H5Pget_virtual_dsetname(hid_t dcpl_id, size_t index,--- > char *name/*out*/, size_t size);-#ccall H5Pget_virtual_dsetname, <hid_t> -> <size_t> -> Out CString -> <size_t> -> IO <ssize_t>--#endif- -- |Adds an external file to the list of external files. 'plist_id' -- should be an object ID for a dataset creation property list. -- 'name' is the name of an external file, 'offset' is the location@@ -1748,15 +1642,6 @@ -- > hsize_t size); #ccall H5Pset_external, <hid_t> -> CString -> <off_t> -> <hsize_t> -> IO <herr_t> -#if H5_VERSION_GE(1,10,0)---- > herr_t H5Pset_chunk_opts(hid_t plist_id, unsigned opts);-#ccall H5Pset_chunk_opts, <hid_t> -> CUInt -> IO <herr_t>--- > herr_t H5Pget_chunk_opts(hid_t plist_id, unsigned *opts);-#ccall H5Pget_chunk_opts, <hid_t> -> Out CUInt -> IO <herr_t>--#endif- -- |Returns the number of external files for this dataset, or negative -- on failure. --@@ -1905,9 +1790,6 @@ -- > *fill_time/*out*/); #ccall H5Pget_fill_time, <hid_t> -> Out <H5D_fill_time_t> -> IO <herr_t> --#if H5_VERSION_GE(1,8,3)- -- * Dataset access property list (DAPL) routines -- |Set the number of objects in the meta data cache and the@@ -1950,31 +1832,6 @@ -- > double *rdcc_w0/*out*/); #ccall H5Pget_chunk_cache, <hid_t> -> Out <size_t> -> Out <size_t> -> Out CDouble -> IO <herr_t> -#endif--#if H5_VERSION_GE(1,10,0)---- > +H5_DLL herr_t H5Pset_virtual_view(hid_t plist_id, H5D_vds_view_t view);-#ccall H5Pset_virtual_view, <hid_t> -> H5D_vds_view_t -> IO <herr_t>--- > +H5_DLL herr_t H5Pget_virtual_view(hid_t plist_id, H5D_vds_view_t *view);-#ccall H5Pget_virtual_view, <hid_t> -> Out H5D_vds_view_t -> IO <herr_t>--- > +H5_DLL herr_t H5Pset_virtual_printf_gap(hid_t plist_id, hsize_t gap_size);-#ccall H5Pset_virtual_printf_gap, <hid_t> -> <hsize_t> -> IO <herr_t>--- > +H5_DLL herr_t H5Pget_virtual_printf_gap(hid_t plist_id, hsize_t *gap_size);-#ccall H5Pget_virtual_printf_gap, <hid_t> -> Out <hsize_t> -> IO <herr_t>--- > +H5_DLL herr_t H5Pset_append_flush(hid_t plist_id, unsigned ndims,--- > + const hsize_t boundary[], H5D_append_cb_t func, void *udata);-#ccall H5Pset_append_flush, <hid_t> -> CUInt -> In <hsize_t> -> H5D_append_cb_t a -> In a -> IO <herr_t>--- > +H5_DLL herr_t H5Pget_append_flush(hid_t plist_id, unsigned dims,--- > + hsize_t boundary[], H5D_append_cb_t *func, void **udata);-#ccall H5Pget_append_flush, <hid_t> -> CUInt -> In <hsize_t> -> H5D_append_cb_t a -> Out (Out a) -> IO <herr_t>--- > herr_t H5Pset_efile_prefix(hid_t dapl_id, const char* prefix);-#ccall H5Pset_efile_prefix, <hid_t> -> CString -> IO <herr_t>--- > ssize_t H5Pget_efile_prefix(hid_t dapl_id, char* prefix /*out*/, size_t size);-#ccall H5Pget_efile_prefix, <hid_t> -> Out CString -> <size_t> -> IO <ssize_t>--#endif- -- * Dataset xfer property list (DXPL) routines -- |Sets data transform expression.@@ -2163,8 +2020,6 @@ #ifdef H5_HAVE_PARALLEL -#if H5_VERSION_GE(1,8,8)- -- TODO: docs -- > herr_t H5Pget_mpio_actual_chunk_opt_mode(hid_t plist_id, H5D_mpio_actual_chunk_opt_mode_t *actual_chunk_opt_mode); #ccall H5Pget_mpio_actual_chunk_opt_mode, <hid_t> -> Out H5D_mpio_actual_chunk_opt_mode_t -> IO <herr_t>@@ -2172,16 +2027,10 @@ -- > herr_t H5Pget_mpio_actual_io_mode(hid_t plist_id, H5D_mpio_actual_io_mode_t *actual_io_mode); #ccall H5Pget_mpio_actual_io_mode, <hid_t> -> Out H5D_mpio_actual_io_mode_t -> IO <herr_t> -#endif--#if H5_VERSION_GE(1,8,10)- -- TODO: ensure ptr sizes match and change Word32 to H5D_mpio_no_collective_cause_t -- > herr_t H5Pget_mpio_no_collective_cause(hid_t plist_id, uint32_t *local_no_collective_cause, uint32_t *global_no_collective_cause); #ccall H5Pget_mpio_no_collective_cause, <hid_t> -> Out Word32 -> Out Word32 -> IO <herr_t> -#endif- #endif /* H5_HAVE_PARALLEL */ -- * Link creation property list (LCPL) routines@@ -2339,8 +2188,6 @@ -- > ssize_t H5Pget_elink_prefix(hid_t plist_id, char *prefix, size_t size); #ccall H5Pget_elink_prefix, <hid_t> -> OutArray CChar -> <size_t> -> IO <ssize_t> -#if H5_VERSION_GE(1,8,2)- -- |Gets the file access property list identifier that is -- set for link access property. --@@ -2356,10 +2203,6 @@ -- > herr_t H5Pset_elink_fapl(hid_t lapl_id, hid_t fapl_id); #ccall H5Pset_elink_fapl, <hid_t> -> <hid_t> -> IO <herr_t> -#endif--#if H5_VERSION_GE(1,8,3)- -- |Sets the file access flags to be used when traversing an -- external link. This should be either 'h5f_ACC_RDONLY' or -- 'h5f_ACC_RDWR', or 'h5f_ACC_DEFAULT' to unset the value.@@ -2394,8 +2237,6 @@ -- > herr_t H5Pget_elink_cb(hid_t lapl_id, H5L_elink_traverse_t *func, void **op_data); #ccall H5Pget_elink_cb, <hid_t> -> Out (H5L_elink_traverse_t a) -> Out (Ptr a) -> IO <herr_t> -#endif- -- * Object copy property list (OCPYPL) routines -- |Set properties when copying an object (group, dataset, and datatype)@@ -2431,8 +2272,6 @@ -- > herr_t H5Pget_copy_object(hid_t plist_id, unsigned *crt_intmd /*out*/); #ccall H5Pget_copy_object, <hid_t> -> Out CUInt -> IO <herr_t> -#if H5_VERSION_GE(1,8,9)- -- TODO: finish -- |Adds path to the list of paths to search first in the@@ -2491,6 +2330,93 @@ -- > herr_t H5Pget_mcdt_search_cb(hid_t plist_id, H5O_mcdt_search_cb_t *func, void **op_data); #ccall H5Pget_mcdt_search_cb, <hid_t> -> Out (H5O_mcdt_search_cb_t a) -> Out (InOut a) -> IO <herr_t> ++-- > herr_t H5Pencode(hid_t plist_id, void *buf, size_t *nalloc);+#ccall H5Pencode, <hid_t> -> In a -> Out <size_t> -> IO <herr_t>++-- > H5_DLL hid_t H5Pdecode(const void *buf);+#ccall H5Pdecode, In a -> IO <hid_t>++-- > typedef herr_t (*H5P_prp_encode_func_t)(const void *value, void **buf, size_t *size);+type H5P_prp_encode_func_t a b = FunPtr (In a -> Out b -> Out CSize)++-- > typedef herr_t (*H5P_prp_decode_func_t)(const void **buf, void *value);+type H5P_prp_decode_func_t a b = FunPtr (In a -> Out b)++-- > H5_DLL herr_t H5Pset_file_space(hid_t plist_id, H5F_file_space_type_t strategy, hsize_t threshold);+#ccall H5Pset_file_space, <hid_t> -> H5F_file_space_type_t -> <hsize_t> -> IO <herr_t>++-- > H5_DLL herr_t H5Pget_file_space(hid_t plist_id, H5F_file_space_type_t *strategy, hsize_t *threshold);+#ccall H5Pget_file_space, <hid_t> -> Out H5F_file_space_type_t -> Out <hsize_t> -> IO <herr_t>++-- > herr_t H5Pset_metadata_read_attempts(hid_t plist_id, unsigned attempts);+#ccall H5Pget_metadata_read_attempts, <hid_t> -> Out CUInt -> IO <herr_t>+-- > herr_t H5Pset_object_flush_cb(hid_t plist_id, H5F_flush_cb_t func, void *udata);+#ccall H5Pset_object_flush_cb , <hid_t> -> H5F_flush_cb_t a -> Out a -> IO <herr_t>+-- > herr_t H5Pget_object_flush_cb(hid_t plist_id, H5F_flush_cb_t *func, void **udata);+#ccall H5Pget_object_flush_cb, <hid_t> -> H5F_flush_cb_t a -> Out (Out a) -> IO <herr_t>+-- > herr_t H5Pset_mdc_log_options(hid_t plist_id, hbool_t is_enabled, const char *location, hbool_t start_on_access);+#ccall H5Pset_mdc_log_options, <hid_t> -> <hbool_t> -> CString -> <hbool_t> -> IO <herr_t>+-- > herr_t H5Pget_mdc_log_options(hid_t plist_id, hbool_t *is_enabled, char *location, size_t *location_size, hbool_t *start_on_access);+#ccall H5Pget_mdc_log_options, <hid_t> -> Out <hbool_t> -> Out CString -> Out <size_t> -> Out <hbool_t> -> IO <herr_t>++-- > herr_t H5Pset_virtual(hid_t dcpl_id, hid_t vspace_id,+-- > const char *src_file_name, const char *src_dset_name, hid_t src_space_id);+#ccall H5Pset_virtual, <hid_t> -> <hid_t> -> CString -> CString -> <hid_t> -> IO <herr_t>+-- > herr_t H5Pget_virtual_count(hid_t dcpl_id, size_t *count/*out*/);+#ccall H5Pget_virtual_count, <hid_t> -> Out <size_t> -> IO <herr_t>+-- > hid_t H5Pget_virtual_vspace(hid_t dcpl_id, size_t index);+#ccall H5Pget_virtual_vspace, <hid_t> -> <size_t> -> IO <hid_t>+-- > hid_t H5Pget_virtual_srcspace(hid_t dcpl_id, size_t index);+#ccall H5Pget_virtual_srcspace, <hid_t> -> <size_t> -> IO <hid_t>+-- > ssize_t H5Pget_virtual_filename(hid_t dcpl_id, size_t index,+-- > char *name/*out*/, size_t size);+#ccall H5Pget_virtual_filename, <hid_t> -> <size_t> -> Out CString -> <size_t> -> IO <ssize_t>+-- > ssize_t H5Pget_virtual_dsetname(hid_t dcpl_id, size_t index,+-- > char *name/*out*/, size_t size);+#ccall H5Pget_virtual_dsetname, <hid_t> -> <size_t> -> Out CString -> <size_t> -> IO <ssize_t>++-- > herr_t H5Pset_chunk_opts(hid_t plist_id, unsigned opts);+#ccall H5Pset_chunk_opts, <hid_t> -> CUInt -> IO <herr_t>+-- > herr_t H5Pget_chunk_opts(hid_t plist_id, unsigned *opts);+#ccall H5Pget_chunk_opts, <hid_t> -> Out CUInt -> IO <herr_t>++-- > +H5_DLL herr_t H5Pset_virtual_view(hid_t plist_id, H5D_vds_view_t view);+#ccall H5Pset_virtual_view, <hid_t> -> H5D_vds_view_t -> IO <herr_t>+-- > +H5_DLL herr_t H5Pget_virtual_view(hid_t plist_id, H5D_vds_view_t *view);+#ccall H5Pget_virtual_view, <hid_t> -> Out H5D_vds_view_t -> IO <herr_t>+-- > +H5_DLL herr_t H5Pset_virtual_printf_gap(hid_t plist_id, hsize_t gap_size);+#ccall H5Pset_virtual_printf_gap, <hid_t> -> <hsize_t> -> IO <herr_t>+-- > +H5_DLL herr_t H5Pget_virtual_printf_gap(hid_t plist_id, hsize_t *gap_size);+#ccall H5Pget_virtual_printf_gap, <hid_t> -> Out <hsize_t> -> IO <herr_t>+-- > +H5_DLL herr_t H5Pset_append_flush(hid_t plist_id, unsigned ndims,+-- > + const hsize_t boundary[], H5D_append_cb_t func, void *udata);+#ccall H5Pset_append_flush, <hid_t> -> CUInt -> In <hsize_t> -> H5D_append_cb_t a -> In a -> IO <herr_t>+-- > +H5_DLL herr_t H5Pget_append_flush(hid_t plist_id, unsigned dims,+-- > + hsize_t boundary[], H5D_append_cb_t *func, void **udata);+#ccall H5Pget_append_flush, <hid_t> -> CUInt -> In <hsize_t> -> H5D_append_cb_t a -> Out (Out a) -> IO <herr_t>+-- > herr_t H5Pset_efile_prefix(hid_t dapl_id, const char* prefix);+#ccall H5Pset_efile_prefix, <hid_t> -> CString -> IO <herr_t>+-- > ssize_t H5Pget_efile_prefix(hid_t dapl_id, char* prefix /*out*/, size_t size);+#ccall H5Pget_efile_prefix, <hid_t> -> Out CString -> <size_t> -> IO <ssize_t>++#ifdef H5_HAVE_PARALLEL++-- > herr_t H5Pset_coll_metadata_read(hid_t plist_id, hbool_t is_collective);+#ccall H5Pset_all_coll_metadata_ops, <hid_t> -> <hbool_t> -> IO <herr_t>+-- > herr_t H5Pget_coll_metadata_read(hid_t plist_id, hbool_t *is_collective);+#ccall H5Pget_all_coll_metadata_ops, <hid_t> -> Out <hbool_t> -> IO <herr_t>+-- > herr_t H5Pset_coll_metadata_write(hid_t plist_id, hbool_t is_collective);+#ccall H5Pset_coll_metadata_write, <hid_t> -> <hbool_t> -> IO <herr_t>+-- > herr_t H5Pget_coll_metadata_write(hid_t plist_id, hbool_t *is_collective);+#ccall H5Pget_coll_metadata_write, <hid_t> -> Out <hbool_t> -> IO <herr_t>++#endif++#if H5_VERSION_GE(1,10,2)+#newtype_const H5D_mpio_no_collective_cause_t, H5D_MPIO_NO_COLLECTIVE_MAX_CAUSE+#else+#newtype_const H5D_mpio_no_collective_cause_t, H5D_MPIO_FILTERS #endif #ifndef H5_NO_DEPRECATED_SYMBOLS
src/Bindings/HDF5/Raw/H5R.hsc view
@@ -77,28 +77,6 @@ -- > H5R_type_t ref_type, hid_t space_id); #ccall H5Rcreate, Out a -> <hid_t> -> CString -> <H5R_type_t> -> <hid_t> -> IO <herr_t> --- |Opens the HDF5 object referenced. Given a reference to some object,--- open that object and return an ID for that object.------ Parameters:------ [@ id :: 'HId_t' @] Dataset reference object is in or location ID of object that the dataset is located within.------ [@ ref_type :: 'H5R_type_t' @] Type of reference to create------ [@ ref :: 'In' a @] Reference to open.------ Returns a valid ID on success, negative on failure------ > hid_t H5Rdereference(hid_t dataset, H5R_type_t ref_type, const void *ref);-#if H5_VERSION_GE(1,10,0)-#ccall H5Rdereference1, <hid_t> -> <H5R_type_t> -> In a -> IO <hid_t>--- > hid_t H5Rdereference2(hid_t obj_id, hid_t oapl_id, H5R_type_t ref_type, const void *ref);-#ccall H5Rdereference2, <hid_t> -> <hid_t> -> <H5R_type_t> -> In a -> IO <hid_t>-#else-#ccall H5Rdereference, <hid_t> -> <H5R_type_t> -> In a -> IO <hid_t>-#endif- -- |Retrieves a dataspace with the region pointed to selected. -- Given a reference to some object, creates a copy of the dataset pointed -- to's dataspace and defines a selection in the copy which is the region@@ -159,6 +137,48 @@ -- > char *name/*out*/, size_t size); #ccall H5Rget_name, <hid_t> -> <H5R_type_t> -> In a -> OutArray CChar -> <size_t> -> IO <ssize_t> +--------------------------+-- Compatibility Macros --+--------------------------++-- H5Rdereference++-- |Opens the HDF5 object referenced. Given a reference to some object,+-- open that object and return an ID for that object.+--+-- Parameters:+--+-- [@ id :: 'HId_t' @] Dataset reference object is in or location ID of object that the dataset is located within.+--+-- [@ ref_type :: 'H5R_type_t' @] Type of reference to create+--+-- [@ ref :: 'In' a @] Reference to open.+--+-- Returns a valid ID on success, negative on failure+--+-- > hid_t H5Rdereference(hid_t dataset, H5R_type_t ref_type, const void *ref);++-- > hid_t H5Rdereference2(hid_t obj_id, hid_t oapl_id, H5R_type_t ref_type, const void *ref);++#if defined(H5Rdereference_vers)+# ccall H5Rdereference1, <hid_t> -> <H5R_type_t> -> In a -> IO <hid_t>+# ccall H5Rdereference2, <hid_t> -> <hid_t> -> <H5R_type_t> -> In a -> IO <hid_t>+# if H5Rdereference_vers == 1+h5r_dereference :: HId_t -> H5R_type_t -> In a -> IO HId_t+h5r_dereference = h5r_dereference1+# elif H5Rdereference_vers == 2+h5r_dereference :: HId_t -> HId_t -> H5R_type_t -> In a -> IO HId_t+h5r_dereference = h5r_dereference2+# else+# error TODO+# endif+#else+# ccall H5Rdereference, <hid_t> -> <H5R_type_t> -> In a -> IO <hid_t>+#endif++------------------------+-- Deprecated symbols --+------------------------ #ifndef H5_NO_DEPRECATED_SYMBOLS
src/Bindings/HDF5/Raw/H5S.hsc view
@@ -162,23 +162,6 @@ -- > herr_t H5Sclose(hid_t space_id); #ccall H5Sclose, <hid_t> -> IO <herr_t> --- |Given a dataspace ID, converts the object description--- (including selection) into binary in a buffer.------ 'nalloc' is the size of the buffer on input, the size of the encoded--- data on output. If the buffer is not big enough, no data is written--- to it (but nalloc is still updated with the size needed).------ Returns non-negative on success, negative on failure.----#if H5_VERSION_GE(1,12,0)-# ccall H5Sencode2, <hid_t> -> OutArray CChar -> InOut <size_t> -> <hid_t> -> IO <herr_t>-# ccall H5Sencode1, <hid_t> -> OutArray CChar -> InOut <size_t> -> IO <herr_t>-h5s_encode = h5s_encode1-#else-# ccall H5Sencode, <hid_t> -> OutArray CChar -> InOut <size_t> -> IO <herr_t>-#endif- -- |Decode a binary object description of dataspace and -- return a new object handle. --@@ -426,16 +409,12 @@ -- > htri_t H5Sselect_valid(hid_t spaceid); #ccall H5Sselect_valid, <hid_t> -> IO <htri_t> -#if H5_VERSION_GE(1,10,0)- -- > htri_t H5Sis_regular_hyperslab(hid_t spaceid); #ccall H5Sis_regular_hyperslab, <hid_t> -> IO <htri_t> -- > htri_t H5Sget_regular_hyperslab(hid_t spaceid, hsize_t start[], -- > hsize_t stride[], hsize_t count[], hsize_t block[]); #ccall H5Sget_regular_hyperslab, <hid_t> -> InArray <hsize_t> -> InArray <hsize_t> -> InArray <hsize_t> -> InArray <hsize_t> -> IO <htri_t> -#endif- -- |Get the number of hyperslab blocks in current hyperslab selection -- -- Returns negative on failure@@ -540,3 +519,36 @@ -- H5S_sel_type H5Sget_select_type(hid_t spaceid); #ccall H5Sget_select_type, <hid_t> -> IO <H5S_sel_type>++--------------------------+-- Compatibility Macros --+--------------------------+++-- |Given a dataspace ID, converts the object description+-- (including selection) into binary in a buffer.+--+-- 'nalloc' is the size of the buffer on input, the size of the encoded+-- data on output. If the buffer is not big enough, no data is written+-- to it (but nalloc is still updated with the size needed).+--+-- Returns non-negative on success, negative on failure.+--++#if defined(H5Sencode_vers)+# ccall H5Sencode1, <hid_t> -> OutArray CChar -> InOut <size_t> -> IO <herr_t>+# ccall H5Sencode2, <hid_t> -> OutArray CChar -> InOut <size_t> -> <hid_t> -> IO <herr_t>+# if H5Sencode_vers == 1+h5s_encode :: HId_t -> OutArray CChar -> InOut CSize -> IO HErr_t+h5s_encode = h5s_encode1+# elif H5Sencode_vers == 2+h5s_encode :: HId_t -> OutArray CChar -> InOut CSize -> HId_t -> IO HErr_t+h5s_encode = h5s_encode2+# else+# error TODO+# endif+#else+# ccall H5Sencode, <hid_t> -> OutArray CChar -> InOut <size_t> -> IO <herr_t>+h5s_encode1 :: HId_t -> OutArray CChar -> InOut CSize -> IO HErr_t+h5s_encode1 = h5s_encode+#endif
src/Bindings/HDF5/Raw/H5T.hsc view
@@ -77,10 +77,8 @@ -- |VAX mixed endian #newtype_const H5T_order_t, H5T_ORDER_VAX -#if H5_VERSION_GE(1,8,6) -- |Compound type with mixed member orders #newtype_const H5T_order_t, H5T_ORDER_MIXED-#endif -- |no particular order (strings, bits,..) #newtype_const H5T_order_t, H5T_ORDER_NONE@@ -698,14 +696,11 @@ -- > hid_t H5Tdecode(const void *buf); #ccall H5Tdecode, InArray a -> IO <hid_t> -#if H5_VERSION_GE(1,10,0)- -- > herr_t H5Tflush(hid_t type_id); #ccall H5Tflush, <hid_t> -> IO <herr_t>+ -- > herr_t H5Trefresh(hid_t type_id); #ccall H5Trefresh, <hid_t> -> IO <herr_t>--#endif -- * Operations defined on compound datatypes
test/Spec/Group.hs view
@@ -4,11 +4,8 @@ import Test.Hspec -import Bindings.HDF5.Core (IndexType (..), IterOrder (..), hid)-import qualified Bindings.HDF5.Group as G+import Bindings.HDF5.Core (IndexType (..), IterOrder (..)) import qualified Bindings.HDF5.Link as L-import qualified Bindings.HDF5.Object as OB-import qualified Data.ByteString.Char8 as BS import Spec.Util
test/Spec/Util.hs view
@@ -25,7 +25,7 @@ release file = do F.closeFile file withTestFile' :: (F.File -> IO a) -> IO a-withTestFile' callback = withTestFile (\path file -> callback file)+withTestFile' callback = withTestFile (\_path file -> callback file) withGroup :: BS.ByteString -> (F.File -> IO a) -> IO a withGroup name f = withTestFile' $ \file -> do