summaryrefslogtreecommitdiffstats
path: root/src/H5Fprivate.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-10-08 17:13:14 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-10-08 17:13:14 (GMT)
commit19ec99786adba12a7517f633888c3976738135ce (patch)
tree8d40536cf23cbded60afb3133c1cefd1aebeb3ed /src/H5Fprivate.h
parent1fddd40b8b45e8ced68d2192e10baf000deb0857 (diff)
downloadhdf5-19ec99786adba12a7517f633888c3976738135ce.zip
hdf5-19ec99786adba12a7517f633888c3976738135ce.tar.gz
hdf5-19ec99786adba12a7517f633888c3976738135ce.tar.bz2
[svn-r745] Changes since 19981002
---------------------- ./doc/html/H5.format.html ./src/H5HG.c Fixed a bug in the global heap that caused H5HG_read() to write past the end of the buffer in certain cases. ./test/big.c The test is skipped if hdf5 was configured with `--disable-hsizet'. ./src/H5Ofill.c Data type conversions are implemented for the fill value. ./src/H5.c Tracing prints one of H5P_FILE_CREATE, H5P_FILE_ACCESS, H5P_DATASET_CREATE, H5P_DATASET_XFER, or H5P_MOUNT instead of the more cryptic H5I_TEMPLATE_* constants. ./src/H5D.c Removed prototype for H5D_find_name(). ./src/H5I.c The GROUP_MASK and ID_MASK are both calculated from GROUP_BITS instead of being set by hand. We don't use the sign bit of hid_t; all valid hid_t values are positive so we can say things like `if ((file=H5Fopen(...))<0)'. Changed `(int)pow(2.0,x)' to `1<<x' so we don't have to worry about rounding. Fixed H5I_get_type() so it doesn't always fail an assertion. ./src/H5E.c ./src/H5Epublic.h Added minor error H5E_MOUNT ./src/H5F.c ./src/H5Fprivate.h Added H5Fmount() and H5Funmount(). Mounting and unmounting works as documented but some of the other things aren't implemented yet, the biggest being current working groups always acting on the root of the mount tree, and H5Fclose() closing the entire tree. The rest of the stuff will be added shortly... ./src/H5P.c ./src/H5Ppublic.h Added the H5P_MOUNT property list but haven't implemented any particular properties for it yet. ./src/H5Gstab.c Hard links across files return an error instead of failing an assertion.
Diffstat (limited to 'src/H5Fprivate.h')
-rw-r--r--src/H5Fprivate.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h
index 7f25090..8f33cc0 100644
--- a/src/H5Fprivate.h
+++ b/src/H5Fprivate.h
@@ -426,6 +426,25 @@ typedef struct H5F_rdcc_t {
struct H5F_rdcc_ent_t **slot; /* Chunk slots, each points to a chunk*/
} H5F_rdcc_t;
+/* Mount property list */
+typedef struct H5F_mprop_t {
+ hbool_t local; /* Are absolute symlinks local to file? */
+} H5F_mprop_t;
+
+/* A record of the mount table */
+typedef struct H5F_mount_t {
+ struct H5G_t *group; /* Mount point group held open */
+ struct H5F_t *file; /* File mounted at that point */
+} H5F_mount_t;
+
+/* The mount table */
+typedef struct H5F_mtab_t {
+ struct H5F_t *parent;/* Parent file */
+ uintn nmounts;/* Number of children which are mounted */
+ uintn nalloc; /* Number of mount slots allocated */
+ H5F_mount_t *child; /* An array of mount records */
+} H5F_mtab_t;
+
/*
* Define the structure to store the file information for HDF5 files. One of
* these structures is allocated per file, not per H5Fopen().
@@ -463,6 +482,7 @@ typedef struct H5F_t {
struct H5G_cwgstk_t *cwg_stack; /* CWG stack for push/pop functions*/
uintn nopen; /* Number of open object headers*/
hbool_t close_pending; /* File close is pending */
+ H5F_mtab_t mtab; /* File mount table */
} H5F_t;
#ifdef NOT_YET
@@ -509,10 +529,12 @@ struct H5O_efl_t;
struct H5O_pline_t;
struct H5D_xfer_t;
struct H5O_fill_t;
+struct H5G_entry_t;
/* library variables */
extern const H5F_create_t H5F_create_dflt;
extern H5F_access_t H5F_access_dflt;
+extern const H5F_mprop_t H5F_mount_dflt;
#ifdef HAVE_PARALLEL
extern hbool_t H5_mpi_1_metawrite_g;
@@ -529,6 +551,7 @@ herr_t H5F_debug(H5F_t *f, const haddr_t *addr, FILE * stream, intn indent,
intn fwidth);
herr_t H5F_istore_debug(H5F_t *f, const haddr_t *addr, FILE * stream,
intn indent, intn fwidth, int ndims);
+herr_t H5F_mountpoint(struct H5G_entry_t *find/*in,out*/);
/* Functions that operate on array storage */
herr_t H5F_arr_create(H5F_t *f, struct H5O_layout_t *layout /*in,out*/);