H5FDprivate.h

00001 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00002  * Copyright by The HDF Group.                                               *
00003  * Copyright by the Board of Trustees of the University of Illinois.         *
00004  * All rights reserved.                                                      *
00005  *                                                                           *
00006  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
00007  * terms governing use, modification, and redistribution, is contained in    *
00008  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
00009  * of the source code distribution tree; Copyright.html can be found at the  *
00010  * root level of an installed copy of the electronic HDF5 document set and   *
00011  * is linked from the top-level documents page.  It can also be found at     *
00012  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
00013  * access to either file, you may request a copy from help@hdfgroup.org.     *
00014  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00015 
00016 /*
00017  * Programmer:  Robb Matzke <matzke@llnl.gov>
00018  *              Monday, July 26, 1999
00019  */
00020 #ifndef _H5FDprivate_H
00021 #define _H5FDprivate_H
00022 
00023 /* Include package's public header */
00024 #include "H5FDpublic.h"
00025 
00026 /* Private headers needed by this file */
00027 
00028 /*
00029  * The MPI drivers are needed because there are
00030  * places where we check for things that aren't handled by these drivers.
00031  */
00032 #include "H5FDmpi.h"            /* MPI-based file drivers               */
00033 
00034 /* Macros */
00035 
00036 /* Forward declarations for prototype arguments */
00037 struct H5P_genplist_t;
00038 struct H5F_t;
00039 
00040 /* Prototypes */
00041 H5_DLL int H5FD_term_interface(void);
00042 H5_DLL H5FD_class_t *H5FD_get_class(hid_t id);
00043 H5_DLL hsize_t H5FD_sb_size(H5FD_t *file);
00044 H5_DLL herr_t H5FD_sb_encode(H5FD_t *file, char *name/*out*/, uint8_t *buf);
00045 H5_DLL herr_t H5FD_sb_decode(H5FD_t *file, const char *name, const uint8_t *buf);
00046 H5_DLL void *H5FD_fapl_get(H5FD_t *file);
00047 H5_DLL herr_t H5FD_fapl_open(struct H5P_genplist_t *plist, hid_t driver_id, const void *driver_info);
00048 H5_DLL herr_t H5FD_fapl_copy(hid_t driver_id, const void *fapl, void **copied_fapl);
00049 H5_DLL herr_t H5FD_fapl_close(hid_t driver_id, void *fapl);
00050 H5_DLL herr_t H5FD_dxpl_open(struct H5P_genplist_t *plist, hid_t driver_id, const void *driver_info);
00051 H5_DLL herr_t H5FD_dxpl_copy(hid_t driver_id, const void *dxpl, void **copied_dxpl);
00052 H5_DLL herr_t H5FD_dxpl_close(hid_t driver_id, void *dxpl);
00053 H5_DLL hid_t H5FD_register(const void *cls, size_t size, hbool_t app_ref);
00054 H5_DLL H5FD_t *H5FD_open(const char *name, unsigned flags, hid_t fapl_id,
00055                   haddr_t maxaddr);
00056 H5_DLL herr_t H5FD_close(H5FD_t *file);
00057 H5_DLL int H5FD_cmp(const H5FD_t *f1, const H5FD_t *f2);
00058 H5_DLL int H5FD_query(const H5FD_t *f, unsigned long *flags/*out*/);
00059 H5_DLL haddr_t H5FD_alloc(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type, struct H5F_t *f,
00060     hsize_t size, haddr_t *align_addr, hsize_t *align_size);
00061 H5_DLL herr_t H5FD_free(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type, struct H5F_t *f,
00062     haddr_t addr, hsize_t size);
00063 H5_DLL htri_t H5FD_try_extend(H5FD_t *file, H5FD_mem_t type, struct H5F_t *f,
00064     haddr_t blk_end, hsize_t extra_requested);
00065 H5_DLL haddr_t H5FD_get_eoa(const H5FD_t *file, H5FD_mem_t type);
00066 H5_DLL herr_t H5FD_set_eoa(H5FD_t *file, H5FD_mem_t type, haddr_t addr);
00067 H5_DLL haddr_t H5FD_get_eof(const H5FD_t *file);
00068 H5_DLL haddr_t H5FD_get_maxaddr(const H5FD_t *file);
00069 H5_DLL herr_t H5FD_get_feature_flags(const H5FD_t *file, unsigned long *feature_flags);
00070 H5_DLL herr_t H5FD_get_fs_type_map(const H5FD_t *file, H5FD_mem_t *type_map);
00071 H5_DLL herr_t H5FD_read(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type,
00072     haddr_t addr, size_t size, void *buf/*out*/);
00073 H5_DLL herr_t H5FD_write(H5FD_t *file, hid_t dxpl_id, H5FD_mem_t type,
00074     haddr_t addr, size_t size, const void *buf);
00075 H5_DLL herr_t H5FD_flush(H5FD_t *file, hid_t dxpl_id, hbool_t closing);
00076 H5_DLL herr_t H5FD_truncate(H5FD_t *file, hid_t dxpl_id, hbool_t closing);
00077 H5_DLL herr_t H5FD_get_fileno(const H5FD_t *file, unsigned long *filenum);
00078 H5_DLL herr_t H5FD_get_vfd_handle(H5FD_t *file, hid_t fapl, void** file_handle);
00079 H5_DLL herr_t H5FD_set_base_addr(H5FD_t *file, haddr_t base_addr);
00080 H5_DLL haddr_t H5FD_get_base_addr(const H5FD_t *file);
00081 
00082 #endif /* !_H5FDprivate_H */
00083