summaryrefslogtreecommitdiffstats
path: root/src/H5ACprivate.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-01-20 19:10:08 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-01-20 19:10:08 (GMT)
commita4e47e25eb1fe1fc27846b20a7965f99a9bed220 (patch)
tree4ea1e5446ed5b6a5b1704725cb5aa5728234a5a7 /src/H5ACprivate.h
parentc2c94c31878dc42926661c9cb7e71be620196fc1 (diff)
downloadhdf5-a4e47e25eb1fe1fc27846b20a7965f99a9bed220.zip
hdf5-a4e47e25eb1fe1fc27846b20a7965f99a9bed220.tar.gz
hdf5-a4e47e25eb1fe1fc27846b20a7965f99a9bed220.tar.bz2
[svn-r158] Changes since 19980116
---------------------- ./src/H5AC.c ./src/H5ACprivate.h ./src/H5B.c ./src/H5D.c ./src/H5Farray.c ./src/H5Fprivate.h ./src/H5V.c ./src/H5Vprivate.h Fixed indent oopses. ./src/H5D.c ./src/H5Fprivate.h ./src/H5Farray.c ./test/istore.c We can now perform partial I/O on contiguous storage transferring between a hyperslab of file storage and a hyperslab of memory. However, partial I/O hasn't been added to the I/O pipeline yet in H5D.c
Diffstat (limited to 'src/H5ACprivate.h')
-rw-r--r--src/H5ACprivate.h140
1 files changed, 71 insertions, 69 deletions
diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h
index 50df708..2b4abe5 100644
--- a/src/H5ACprivate.h
+++ b/src/H5ACprivate.h
@@ -1,23 +1,23 @@
/*-------------------------------------------------------------------------
- * Copyright (C) 1997 National Center for Supercomputing Applications.
- * All rights reserved.
+ * Copyright (C) 1997 National Center for Supercomputing Applications.
+ * All rights reserved.
*
*-------------------------------------------------------------------------
*
- * Created: H5ACprivate.h
- * Jul 9 1997
- * Robb Matzke <matzke@llnl.gov>
+ * Created: H5ACprivate.h
+ * Jul 9 1997
+ * Robb Matzke <matzke@llnl.gov>
*
- * Purpose: Constants and typedefs available to the rest of the
- * library.
+ * Purpose: Constants and typedefs available to the rest of the
+ * library.
*
- * Modifications:
+ * Modifications:
*
*-------------------------------------------------------------------------
*/
#ifndef _H5ACprivate_H
#define _H5ACprivate_H
-#include <H5ACpublic.h> /*public prototypes */
+#include <H5ACpublic.h> /*public prototypes */
/* Pivate headers needed by this header */
#include <H5private.h>
@@ -25,43 +25,43 @@
/*
* Feature: Define H5AC_DEBUG on the compiler command line if you want to
- * debug H5AC_protect() and H5AC_unprotect() by insuring that
- * nothing accesses protected objects. NDEBUG must not be defined
- * in order for this to have any effect.
+ * debug H5AC_protect() and H5AC_unprotect() by insuring that
+ * nothing accesses protected objects. NDEBUG must not be defined
+ * in order for this to have any effect.
*/
#ifdef NDEBUG
# undef H5AC_DEBUG
#endif
/*
- * Class methods pertaining to caching. Each type of cached object will
+ * Class methods pertaining to caching. Each type of cached object will
* have a constant variable with permanent life-span that describes how
- * to cache the object. That variable will be of type H5AC_class_t and
+ * to cache the object. That variable will be of type H5AC_class_t and
* have the following required fields...
*
- * LOAD: Loads an object from disk to memory. The function
- * should allocate some data structure and return it.
+ * LOAD: Loads an object from disk to memory. The function
+ * should allocate some data structure and return it.
*
- * FLUSH: Writes some data structure back to disk. It would be
- * wise for the data structure to include dirty flags to
- * indicate whether it really needs to be written. This
- * function is also responsible for freeing memory allocated
- * by the LOAD method if the DEST argument is non-zero.
+ * FLUSH: Writes some data structure back to disk. It would be
+ * wise for the data structure to include dirty flags to
+ * indicate whether it really needs to be written. This
+ * function is also responsible for freeing memory allocated
+ * by the LOAD method if the DEST argument is non-zero.
*/
typedef enum H5AC_subid_t {
- H5AC_BT_ID = 0, /*B-tree nodes */
- H5AC_SNODE_ID = 1, /*symbol table nodes */
- H5AC_HEAP_ID = 2, /*object or name heap */
- H5AC_OHDR_ID = 3, /*object header */
- H5AC_NTYPES = 4 /*THIS MUST BE LAST! */
+ H5AC_BT_ID = 0, /*B-tree nodes */
+ H5AC_SNODE_ID = 1, /*symbol table nodes */
+ H5AC_HEAP_ID = 2, /*object or name heap */
+ H5AC_OHDR_ID = 3, /*object header */
+ H5AC_NTYPES = 4 /*THIS MUST BE LAST! */
} H5AC_subid_t;
typedef struct H5AC_class_t {
- H5AC_subid_t id;
- void *(*load) (H5F_t *, const haddr_t *addr, const void *udata1,
- void *udata2);
- herr_t (*flush) (H5F_t *, hbool_t dest, const haddr_t *addr,
- void *thing);
+ H5AC_subid_t id;
+ void *(*load) (H5F_t *, const haddr_t *addr,
+ const void *udata1, void *udata2);
+ herr_t (*flush) (H5F_t *, hbool_t dest,
+ const haddr_t *addr, void *thing);
} H5AC_class_t;
/*
@@ -69,63 +69,65 @@ typedef struct H5AC_class_t {
* cache entry by hashing the object's file address. Each file has its
* own cache, an array of slots.
*/
-#define H5AC_NSLOTS 10330 /*prime number tend to work best */
+#define H5AC_NSLOTS 10330 /*prime number tend to work best */
#define H5AC_HASH(F,ADDR_P) H5F_addr_hash(ADDR_P,(F)->shared->cache->nslots)
typedef struct H5AC_prot_t {
- const H5AC_class_t *type; /*type of protected thing */
- haddr_t addr; /*address of protected thing */
- void *thing; /*(possible) protected thing */
+ const H5AC_class_t *type; /*type of protected thing */
+ haddr_t addr; /*address of protected thing */
+ void *thing; /*(possible) protected thing */
} H5AC_prot_t;
typedef struct H5AC_slot_t {
- const H5AC_class_t *type; /*type of object stored here */
- haddr_t addr; /*file address for object */
- void *thing; /*the thing which is cached */
+ const H5AC_class_t *type; /*type of object stored here */
+ haddr_t addr; /*file address for object */
+ void *thing; /*the thing which is cached */
#ifdef H5AC_DEBUG
- intn nprots; /*number of things protected */
- intn aprots; /*nelmts of `prot' array */
- H5AC_prot_t *prot; /*array of protected things */
+ intn nprots; /*number of things protected */
+ intn aprots; /*nelmts of `prot' array */
+ H5AC_prot_t *prot; /*array of protected things */
#endif
} H5AC_slot_t;
typedef struct H5AC_t {
- intn nslots; /*number of cache slots */
- H5AC_slot_t *slot; /*the cache slots */
- intn nprots; /*number of protected objects */
+ intn nslots; /*number of cache slots */
+ H5AC_slot_t *slot; /*the cache slots */
+ intn nprots; /*number of protected objects */
struct {
- uintn nhits; /*number of cache hits */
- uintn nmisses; /*number of cache misses */
- uintn ninits; /*number of cache initializations */
- uintn nflushes; /*number of flushes to disk */
- } diagnostics[H5AC_NTYPES]; /*diagnostics for each type of object */
+ uintn nhits; /*number of cache hits */
+ uintn nmisses;/*number of cache misses */
+ uintn ninits; /*number of cache inits */
+ uintn nflushes;/*number of flushes to disk */
+ } diagnostics[H5AC_NTYPES]; /*diagnostics for each type of object */
} H5AC_t;
/*
* Library prototypes.
*/
-herr_t H5AC_dest(H5F_t *f);
-void *H5AC_find_f(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
- const void *udata1, void *udata2);
-void *H5AC_protect(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
- const void *udata1, void *udata2);
-herr_t H5AC_unprotect(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
- void *thing);
-herr_t H5AC_flush(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
- hbool_t destroy);
-herr_t H5AC_create(H5F_t *f, intn size_hint);
-herr_t H5AC_rename(H5F_t *f, const H5AC_class_t *type,
- const haddr_t *old_addr, const haddr_t *new_addr);
-herr_t H5AC_set(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
- void *thing);
-herr_t H5AC_debug(H5F_t *f);
+herr_t H5AC_dest(H5F_t *f);
+void *H5AC_find_f(H5F_t *f, const H5AC_class_t *type,
+ const haddr_t *addr, const void *udata1,
+ void *udata2);
+void *H5AC_protect(H5F_t *f, const H5AC_class_t *type,
+ const haddr_t *addr, const void *udata1,
+ void *udata2);
+herr_t H5AC_unprotect(H5F_t *f, const H5AC_class_t *type,
+ const haddr_t *addr, void *thing);
+herr_t H5AC_flush(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
+ hbool_t destroy);
+herr_t H5AC_create(H5F_t *f, intn size_hint);
+herr_t H5AC_rename(H5F_t *f, const H5AC_class_t *type,
+ const haddr_t *old_addr, const haddr_t *new_addr);
+herr_t H5AC_set(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
+ void *thing);
+herr_t H5AC_debug(H5F_t *f);
-#define H5AC_find(F,TYPE,ADDR_P,UDATA1,UDATA2) \
- (((F)->shared->cache->slot[H5AC_HASH(F,ADDR_P)].type==(TYPE) && \
+#define H5AC_find(F,TYPE,ADDR_P,UDATA1,UDATA2) \
+ (((F)->shared->cache->slot[H5AC_HASH(F,ADDR_P)].type==(TYPE) && \
H5F_addr_eq (&((F)->shared->cache->slot[H5AC_HASH(F,ADDR_P)].addr), \
- ADDR_P)) ? \
- ((F)->shared->cache->diagnostics[(TYPE)->id].nhits++, \
- (F)->shared->cache->slot[H5AC_HASH(F,ADDR_P)].thing) : \
+ ADDR_P)) ? \
+ ((F)->shared->cache->diagnostics[(TYPE)->id].nhits++, \
+ (F)->shared->cache->slot[H5AC_HASH(F,ADDR_P)].thing) : \
H5AC_find_f (F, TYPE, ADDR_P, UDATA1, UDATA2))
#endif /* !_H5ACprivate_H */