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 herr_t H5MF_get_freespace(H5F_t *f, hid_t dxpl_id, hsize_t *tot_space, 00064 hsize_t *meta_size); 00065 H5_DLL herr_t H5MF_close(H5F_t *f, hid_t dxpl_id); 00066 00067 /* File space allocation routines */ 00068 H5_DLL haddr_t H5MF_alloc(H5F_t *f, H5FD_mem_t type, hid_t dxpl_id, hsize_t size); 00069 H5_DLL haddr_t H5MF_aggr_vfd_alloc(H5F_t *f, H5FD_mem_t type, hid_t dxpl_id, hsize_t size); 00070 H5_DLL herr_t H5MF_xfree(H5F_t *f, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, 00071 hsize_t size); 00072 H5_DLL herr_t H5MF_try_extend(H5F_t *f, hid_t dxpl_id, H5FD_mem_t type, 00073 haddr_t addr, hsize_t size, hsize_t extra_requested); 00074 H5_DLL htri_t H5MF_try_shrink(H5F_t *f, H5FD_mem_t alloc_type, hid_t dxpl_id, 00075 haddr_t addr, hsize_t size); 00076 00077 /* File 'temporary' space allocation routines */ 00078 H5_DLL haddr_t H5MF_alloc_tmp(H5F_t *f, hsize_t size); 00079 00080 /* 'block aggregator' routines */ 00081 H5_DLL herr_t H5MF_free_aggrs(H5F_t *f, hid_t dxpl_id); 00082 00083 /* Debugging routines */ 00084 #ifdef H5MF_DEBUGGING 00085 #ifdef NOT_YET 00086 H5_DLL herr_t H5MF_sects_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, 00087 FILE *stream, int indent, int fwidth); 00088 #endif /* NOT_YET */ 00089 #endif /* H5MF_DEBUGGING */ 00090 00091 #endif /* end _H5MFprivate_H */ 00092