H5MFprivate.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  *
00018  * Created:             H5MFprivate.h
00019  *                      Jul 11 1997
00020  *                      Robb Matzke <matzke@llnl.gov>
00021  *
00022  * Purpose:             Private header file for file memory management.
00023  *
00024  * Modifications:
00025  *
00026  *-------------------------------------------------------------------------
00027  */
00028 #ifndef _H5MFprivate_H
00029 #define _H5MFprivate_H
00030 
00031 /* Private headers needed by this file */
00032 #include "H5Fprivate.h"         /* File access                          */
00033 #include "H5FDprivate.h"        /* File Drivers                         */
00034 
00035 /**************************/
00036 /* Library Private Macros */
00037 /**************************/
00038 
00039 /*
00040  * Feature: Define H5MF_DEBUG on the compiler command line if you want to
00041  *          see diagnostics from this layer.
00042  */
00043 #ifdef NDEBUG
00044 #  undef H5MF_DEBUG
00045 #endif
00046 
00047 /****************************/
00048 /* Library Private Typedefs */
00049 /****************************/
00050 
00051 
00052 /*****************************/
00053 /* Library-private Variables */
00054 /*****************************/
00055 
00056 
00057 /***************************************/
00058 /* Library-private Function Prototypes */
00059 /***************************************/
00060 
00061 /* File space manager routines */
00062 H5_DLL herr_t H5MF_init_merge_flags(H5F_t *f);
00063 H5_DLL hssize_t H5MF_get_freespace(H5F_t *f, hid_t dxpl_id);
00064 H5_DLL herr_t H5MF_close(H5F_t *f, hid_t dxpl_id);
00065 
00066 /* File space allocation routines */
00067 H5_DLL haddr_t H5MF_alloc(H5F_t *f, H5FD_mem_t type, hid_t dxpl_id, hsize_t size);
00068 H5_DLL herr_t H5MF_xfree(H5F_t *f, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
00069                           hsize_t size);
00070 H5_DLL herr_t H5MF_try_extend(H5F_t *f, hid_t dxpl_id, H5FD_mem_t type,
00071     haddr_t addr, hsize_t size, hsize_t extra_requested);
00072 H5_DLL htri_t H5MF_try_shrink(H5F_t *f, H5FD_mem_t alloc_type, hid_t dxpl_id,
00073     haddr_t addr, hsize_t size);
00074 
00075 /* 'block aggregator' routines */
00076 H5_DLL herr_t H5MF_aggr_reset(H5F_t *file, hid_t dxpl_id, H5F_blk_aggr_t *aggr);
00077 
00078 /* Debugging routines */
00079 #ifdef H5MF_DEBUGGING
00080 #ifdef NOT_YET
00081 H5_DLL herr_t H5MF_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr,
00082     FILE *stream, int indent, int fwidth);
00083 #endif /* NOT_YET */
00084 #endif /* H5MF_DEBUGGING */
00085 
00086 #endif /* end _H5MFprivate_H */
00087