/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group.                                               *
 * 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     *
 * 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.     *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
 * Open object info algorithms.
 *
 * These are used to track the objects currently open in a file, for various
 * internal mechanisms which need to be aware of such things.
 *
 */
#define H5F_PACKAGE     /*suppress error about including H5Fpkg   */
#include "H5Eprivate.h"     /* Error handling           */
#include "H5Fpkg.h"             /* File access                          */
#include "H5FLprivate.h"    /* Free lists                           */
#include "H5FOprivate.h"        /* File objects                         */
#include "H5Oprivate.h"     /* Object headers           */
/* Private typedefs */
/* Information about open objects in a file */
typedef struct H5FO_open_obj_t {
    haddr_t addr;                       /* Address of object header for object */
    void *obj;                          /* Pointer to the object            */
    hbool_t deleted;                    /* Flag to indicate that the object was deleted from the file */
} H5FO_open_obj_t;
/* Information about counted objects in a file */
typedef struct H5FO_obj_count_t {
    haddr_t addr;                       /* Address of object header for object */
    hsize_t count;                      /* Number of times object is opened */
} H5FO_obj_count_t;
/* Declare a free list to manage the H5FO_open_obj_t struct */
H5FL_DEFINE_STATIC(H5FO_open_obj_t);
/* Declare a free list to manage the H5FO_obj_count_t struct */