2003-04-01 02:30:57 +08:00
|
|
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
2007-02-07 22:56:24 +08:00
|
|
|
* Copyright by The HDF Group. *
|
2003-04-01 02:30:57 +08:00
|
|
|
* Copyright by the Board of Trustees of the University of Illinois. *
|
|
|
|
* All rights reserved. *
|
|
|
|
* *
|
|
|
|
* This file is part of HDF5. The full HDF5 copyright notice, including *
|
|
|
|
* terms governing use, modification, and redistribution, is contained in *
|
|
|
|
* the files COPYING and Copyright.html. COPYING can be found at the root *
|
|
|
|
* of the source code distribution tree; Copyright.html can be found at the *
|
|
|
|
* root level of an installed copy of the electronic HDF5 document set and *
|
|
|
|
* is linked from the top-level documents page. It can also be found at *
|
2007-02-07 22:56:24 +08:00
|
|
|
* http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
|
|
|
|
* access to either file, you may request a copy from help@hdfgroup.org. *
|
2003-04-01 02:30:57 +08:00
|
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
|
|
|
1998-03-31 03:24:08 +08:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* Created: H5HLprivate.h
|
|
|
|
* Jul 16 1997
|
|
|
|
* Robb Matzke <matzke@llnl.gov>
|
|
|
|
*
|
|
|
|
* Purpose:
|
|
|
|
*
|
|
|
|
* Modifications:
|
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
#ifndef _H5HLprivate_H
|
|
|
|
#define _H5HLprivate_H
|
|
|
|
|
2003-05-16 03:22:33 +08:00
|
|
|
/* Include package's public header */
|
2001-04-06 01:29:14 +08:00
|
|
|
#include "H5HLpublic.h"
|
1998-03-31 03:24:08 +08:00
|
|
|
|
|
|
|
/* Private headers needed by this file. */
|
2003-05-16 03:22:33 +08:00
|
|
|
#include "H5private.h" /* Generic Functions */
|
2007-04-20 02:43:10 +08:00
|
|
|
#include "H5ACprivate.h" /* Metadata cache */
|
2003-05-16 03:22:33 +08:00
|
|
|
#include "H5Fprivate.h" /* File access */
|
1998-03-31 03:24:08 +08:00
|
|
|
|
1998-04-03 11:29:38 +08:00
|
|
|
/*
|
|
|
|
* Feature: Define H5HL_DEBUG on the compiler command line if you want to
|
|
|
|
* diagnostic messages from this layer.
|
|
|
|
*/
|
|
|
|
#ifdef NDEBUG
|
|
|
|
# undef H5HL_DEBUG
|
|
|
|
#endif
|
|
|
|
|
1998-03-31 03:24:08 +08:00
|
|
|
#define H5HL_MAGIC "HEAP" /*heap magic number */
|
|
|
|
#define H5HL_SIZEOF_MAGIC 4
|
|
|
|
|
1998-04-07 23:34:16 +08:00
|
|
|
#define H5HL_ALIGN(X) (((X)+7)&(unsigned)(~0x07)) /*align on 8-byte boundary */
|
1998-03-31 03:24:08 +08:00
|
|
|
|
|
|
|
#define H5HL_SIZEOF_FREE(F) \
|
|
|
|
H5HL_ALIGN(H5F_SIZEOF_SIZE (F) + /*ptr to next free block */ \
|
|
|
|
H5F_SIZEOF_SIZE (F)) /*size of this free block */
|
|
|
|
|
2003-09-19 03:27:27 +08:00
|
|
|
/****************************/
|
|
|
|
/* Library Private Typedefs */
|
|
|
|
/****************************/
|
|
|
|
|
|
|
|
/* Typedef for local heap in memory (defined in H5HLpkg.h) */
|
|
|
|
typedef struct H5HL_t H5HL_t;
|
|
|
|
|
1998-03-31 03:24:08 +08:00
|
|
|
/*
|
|
|
|
* Library prototypes...
|
|
|
|
*/
|
2003-02-11 01:26:09 +08:00
|
|
|
H5_DLL herr_t H5HL_create(H5F_t *f, hid_t dxpl_id, size_t size_hint, haddr_t *addr/*out*/);
|
2007-04-20 02:43:10 +08:00
|
|
|
H5_DLL H5HL_t *H5HL_protect(H5F_t *f, hid_t dxpl_id, haddr_t addr, H5AC_protect_t rw);
|
2003-09-19 03:27:27 +08:00
|
|
|
H5_DLL void *H5HL_offset_into(H5F_t *f, const H5HL_t *heap, size_t offset);
|
2006-11-14 10:29:15 +08:00
|
|
|
H5_DLL herr_t H5HL_remove(H5F_t *f, hid_t dxpl_id, H5HL_t *heap, size_t offset,
|
2007-05-11 04:35:35 +08:00
|
|
|
size_t size);
|
|
|
|
H5_DLL herr_t H5HL_unprotect(H5F_t *f, hid_t dxpl_id, H5HL_t *heap, haddr_t addr);
|
|
|
|
H5_DLL size_t H5HL_insert(H5F_t *f, hid_t dxpl_id, H5HL_t *heap, size_t size,
|
|
|
|
const void *buf);
|
2003-04-14 13:00:20 +08:00
|
|
|
H5_DLL herr_t H5HL_delete(H5F_t *f, hid_t dxpl_id, haddr_t addr);
|
2005-11-15 10:55:39 +08:00
|
|
|
H5_DLL herr_t H5HL_get_size(H5F_t *f, hid_t dxpl_id, haddr_t addr, size_t *size);
|
2003-07-10 02:00:43 +08:00
|
|
|
|
|
|
|
/* Debugging functions */
|
2003-02-11 01:26:09 +08:00
|
|
|
H5_DLL herr_t H5HL_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream, int indent,
|
2001-08-15 06:09:56 +08:00
|
|
|
int fwidth);
|
1998-03-31 03:24:08 +08:00
|
|
|
#endif
|
2006-04-29 14:15:06 +08:00
|
|
|
|