diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-02-19 18:26:49 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-02-19 18:26:49 (GMT) |
commit | 9bfbfbc9a011b0b5161cd1e944558324ccd39a40 (patch) | |
tree | 6f8a67f5527f897c7ea531ab2af39b1a08d1f31e | |
parent | b24130dcf051e6f569612c0a9b13d2168c6213c0 (diff) | |
download | hdf5-9bfbfbc9a011b0b5161cd1e944558324ccd39a40.zip hdf5-9bfbfbc9a011b0b5161cd1e944558324ccd39a40.tar.gz hdf5-9bfbfbc9a011b0b5161cd1e944558324ccd39a40.tar.bz2 |
[svn-r291] Changes since 19980206
----------------------
./configure.in
./src/H5Fprivate.h
./src/H5Fsec2.c
We now detect and use lseek64() on systems that have it (e.g.,
Irix64) and are able to generate >2GB files on Irix XFS file
systems (and anything else that supports large files). This
change also removed some warning messages from the Irix `-64'
compiler.
> $ ls -l istore.h5
> -rw-r--r-- 1 matzke meshtv 8605436856 Feb 17 14:03 istore.h5
./configure.in
./src/H5Fprivate.h
./src/H5Fstdio.h
We now detect and use fseek64() on systems that have it (e.g.,
Irix64) and are able to generate >2GB files on Irix XFS file
systems (and anything else that supports large files). This
change also removed some warning messages from the Iris `-64'
compiler.
./src/H5E.c
./src/H5Epublic.h
Added the H5E_OVERFLOW error to signal file address overflow.
./src/H5Fpublic.h
./examples/h5_chunk_read.c
./examples/h5_compound.c
./examples/h5_extend_write.c
./examples/h5_group.c
./examples/h5_read.c
./examples/h5_write.c
./html/Datasets.html
./html/Files.html
./html/H5.api.html
./html/H5.intro.html
./html/H5.sample_code.html
./html/ph5example.c
./html/review1.html
./test/cmpd_dset.c
./test/dsets.c
./test/extend.c
./test/tfile.c
./test/th5p.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
./testpar/phdf5.c
Renamed file access constants to follow the naming scheme.
Also changed the base names a little to be more accurate as to
what they do. The old names H5ACC_WRITE and H5ACC_OVERWRITE
will temporarily work.
H5ACC_DEFAULT --> H5F_ACC_RDONLY for H5Fopen()
H5ACC_DEFAULT --> H5F_ACC_EXCL for H5Fcreate()
H5ACC_WRITE --> H5F_ACC_RDWR
H5ACC_OVERWRITE --> H5F_ACC_TRUNC
Albert or Kim: The H5ACC_INDEPENDENT and H5ACC_COLLECTIVE
macros in H5Fpublic.h should be an enum typedef and have names
more like H5F_MPIO_INDEPENDENT and H5F_MPIO_COLLECTIVE. Also
change the access_mode argument of H5Cset_mpio().
H5Fcreate() and H5Fopen() are more strict now about which
flags are acceptable for the operation.
./src/H5Fprivate.h
./src/H5F.c
./src/H5C.c
Changed the file access template to make it more general. A
union contains a struct for each type of low-level driver and
the default template is initialized at run-time.
./src/H5Fpublic.h
./src/H5F.c
Added H5Fget_access_template() and cleaned up
H5Fget_create_template().
./src/H5C.c
The H5Cset_mpi() no longer trashes the file access template
when an error is detected. We check for errors and *then*
update the file access template.
Added H5C_close() so Albert and Kim have a place to release
the MPI communicator and info from the file access property
list.
Kim or Albert: I notice in H5Cset_mpi() you copy the MPI
communicator. Do you need to do something similar in
H5C_copy()?
./src/H5F.c
Added more error checking for the file creation and access
property lists because it used to be possible to make the
library dump core by swapping the creation and access property
list ID numbers of H5Fcreate().
./test/istore.c
./test/tfile.c
./test/th5p.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
./testpar/testphdf5.c
One must pass H5C_DEFAULT as the file creation or access
property list in order to get the default property list. It
is no longer possible to pass zero or any other arbitrary bad
object ID.
./src/H5Fcore.c
./src/H5Ffamly.c
./src/H5Flow.c
./src/H5Fmpio.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5MF.c
The file access property list is passed to all H5F_low_...()
functions and to the drivers.
./src/H5Fcore.c
The block size can be set at run time on a per-file basis
instead of at compile time across all files. The "5000 items in
a group test" now takes 1.6 seconds.
./src/H5private.h
Removed inclusion of mpi.h and mpio.h since they're included
from H5public.h.
./src/H5Cpublic.h
./src/H5C.c
Added H5Cset_stdio(), H5Cset_sec2(), H5Cset_core(),
H5Cset_split(), and H5Cset_family() in addition to the
H5Cset_mpio() that Kim and Albert already wrote. We still
need the H5Cget_driver() and an H5Cget...() counterpart for
each of those functions. The split and family drivers still
need a little work but I'm checking this in anyway.
-rw-r--r-- | test/extend.c | 2 | ||||
-rw-r--r-- | test/istore.c | 4 | ||||
-rw-r--r-- | test/tfile.c | 12 | ||||
-rw-r--r-- | test/th5p.c | 2 | ||||
-rw-r--r-- | test/theap.c | 3 | ||||
-rw-r--r-- | test/tohdr.c | 3 | ||||
-rw-r--r-- | test/tstab.c | 20 | ||||
-rw-r--r-- | testpar/testphdf5.c | 4 |
8 files changed, 29 insertions, 21 deletions
diff --git a/test/extend.c b/test/extend.c index 7f899ee..7de127e 100644 --- a/test/extend.c +++ b/test/extend.c @@ -54,7 +54,7 @@ main (void) assert (mem_space>=0); /* Create the file */ - file = H5Fcreate ("extend.h5", H5ACC_OVERWRITE, H5C_DEFAULT, H5C_DEFAULT); + file = H5Fcreate ("extend.h5", H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); assert (file>=0); /* Create the dataset which is originally NX by NY */ diff --git a/test/istore.c b/test/istore.c index 4aca884..f5b4b04 100644 --- a/test/istore.c +++ b/test/istore.c @@ -578,8 +578,8 @@ main(int argc, char *argv[]) creation_template = H5A_object(template_id); /* Create the test file */ - if (NULL == (f = H5F_open(FILETYPE, FILENAME, - (H5F_ACC_CREAT | H5F_ACC_WRITE | H5F_ACC_TRUNC | + if (NULL == (f = H5F_open(FILENAME, + (H5F_ACC_CREAT | H5F_ACC_RDWR | H5F_ACC_TRUNC | H5F_ACC_DEBUG), creation_template, NULL))) { printf("Cannot create file %s; test aborted\n", FILENAME); diff --git a/test/tfile.c b/test/tfile.c index ffbe172..d252587 100644 --- a/test/tfile.c +++ b/test/tfile.c @@ -71,11 +71,11 @@ test_file_create(void) MESSAGE(5, ("Testing Low-Level File Creation I/O\n")); /* Create first file */ - fid1 = H5Fcreate(FILE1, H5ACC_OVERWRITE, 0, 0); + fid1 = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); CHECK(fid1, FAIL, "H5Fcreate"); /* Try to create first file again (should fail) */ - fid2 = H5Fcreate(FILE1, H5ACC_OVERWRITE, 0, 0); + fid2 = H5Fcreate(FILE1, H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); VERIFY(fid2, FAIL, "H5Fcreate"); /* Get the file-creation template */ @@ -101,9 +101,11 @@ test_file_create(void) ret = H5Mclose(tmpl1); CHECK(ret, FAIL, "H5Mrelease"); +#ifdef LATER /* Double-check that the atom has been vaporized */ ret = H5Mclose(tmpl1); VERIFY(ret, FAIL, "H5Mrelease"); +#endif /* Create a new file with a non-standard file-creation template */ tmpl1 = H5Ccreate(H5C_FILE_CREATE); @@ -123,7 +125,7 @@ test_file_create(void) * Try to create second file, with non-standard file-creation template * params. */ - fid2 = H5Fcreate(FILE2, H5ACC_OVERWRITE, tmpl1, 0); + fid2 = H5Fcreate(FILE2, H5F_ACC_TRUNC, tmpl1, H5C_DEFAULT); CHECK(fid2, FAIL, "H5Fcreate"); /* Release file-creation template */ @@ -165,7 +167,7 @@ test_file_create(void) * Try to create second file, with non-standard file-creation template * params */ - fid3 = H5Fcreate(FILE3, H5ACC_OVERWRITE, tmpl2, 0); + fid3 = H5Fcreate(FILE3, H5F_ACC_TRUNC, tmpl2, H5C_DEFAULT); CHECK(fid3, FAIL, "H5Fcreate"); /* Release file-creation template */ @@ -227,7 +229,7 @@ test_file_open(void) MESSAGE(5, ("Testing Low-Level File Opening I/O\n")); /* Open first file */ - fid1 = H5Fopen(FILE2, H5ACC_WRITE, 0); + fid1 = H5Fopen(FILE2, H5F_ACC_RDWR, H5C_DEFAULT); CHECK(fid1, FAIL, "H5Fopen"); /* Get the file-creation template */ diff --git a/test/th5p.c b/test/th5p.c index af9100a..e856e3c 100644 --- a/test/th5p.c +++ b/test/th5p.c @@ -70,7 +70,7 @@ test_h5p_basic(void) MESSAGE(5, ("Testing Datatype Manipulation\n")); /* Create file */ - fid1 = H5Fcreate(FILE, H5ACC_OVERWRITE, 0, 0); + fid1 = H5Fcreate(FILE, H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); CHECK(fid1, FAIL, "H5Fcreate"); sid1 = H5Pcreate_simple(SPACE1_RANK, dims1, NULL); diff --git a/test/theap.c b/test/theap.c index cad0c3b..ec8a71d 100644 --- a/test/theap.c +++ b/test/theap.c @@ -19,6 +19,7 @@ #include <H5private.h> #include <H5Aprivate.h> #include <H5ACprivate.h> +#include <H5Cprivate.h> #include <H5Fprivate.h> #include <H5Hprivate.h> @@ -54,7 +55,7 @@ test_heap(void) MESSAGE(5, ("Testing Heaps\n")); /* Create the file */ - fid = H5Fcreate("theap.h5", H5ACC_OVERWRITE, 0, 0); + fid = H5Fcreate("theap.h5", H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); CHECK(fid, FAIL, "H5Fcreate"); f = H5A_object(fid); CHECK(f, NULL, "H5Aatom_object"); diff --git a/test/tohdr.c b/test/tohdr.c index 9dded97..bbeb895 100644 --- a/test/tohdr.c +++ b/test/tohdr.c @@ -19,6 +19,7 @@ #include <H5private.h> #include <H5Aprivate.h> #include <H5ACprivate.h> +#include <H5Cprivate.h> #include <H5Fprivate.h> #include <H5Gprivate.h> #include <H5Oprivate.h> @@ -58,7 +59,7 @@ test_ohdr(void) MESSAGE(5, ("Testing Object Headers\n")); /* create the file */ - fid = H5Fcreate("tohdr.h5", H5ACC_OVERWRITE, 0, 0); + fid = H5Fcreate("tohdr.h5", H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); CHECK(fid, FAIL, "H5Fcreate"); f = H5A_object(fid); CHECK(f, NULL, "H5Aatom_object"); diff --git a/test/tstab.c b/test/tstab.c index 4223897..c5d6b43 100644 --- a/test/tstab.c +++ b/test/tstab.c @@ -67,7 +67,7 @@ test_1(void) */ /* create the file */ - fid = H5Fcreate("tstab1.h5", H5ACC_OVERWRITE, 0, 0); + fid = H5Fcreate("tstab1.h5", H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); CHECK(fid, FAIL, "H5Fcreate"); f = H5A_object(fid); CHECK(f, NULL, "H5Aatom_object"); @@ -130,7 +130,7 @@ test_1(void) */ /* create the file */ - fid = H5Fcreate("tstab1.h5", H5ACC_OVERWRITE, 0, 0); + fid = H5Fcreate("tstab1.h5", H5F_ACC_TRUNC, H5C_DEFAULT, H5C_DEFAULT); CHECK(fid, FAIL, "H5Fcreate"); f = H5A_object(fid); CHECK(f, NULL, "H5Aatom_object"); @@ -220,7 +220,7 @@ test_1(void) static void test_2(void) { - hid_t fid, props, dir; + hid_t fid, create_plist, access_plist, dir; H5F_t *f; int i; char name[256]; @@ -233,13 +233,17 @@ test_2(void) * Use larger symbol table data structures to be more efficient, use * defaults to bang harder on the library for testing. */ - props = H5Ccreate(H5C_FILE_CREATE); -#if 1 - H5Cset_sym_k(props, 16, 16); -#endif + create_plist = H5Ccreate(H5C_FILE_CREATE); + H5Cset_sym_k(create_plist, 16, 16); + + /* + * File access property list. + */ + access_plist = H5Ccreate (H5C_FILE_ACCESS); + H5Cset_core (access_plist, 3000000); /* create the file */ - fid = H5Fcreate("tstab2.h5", H5ACC_OVERWRITE, props, 0); + fid = H5Fcreate("tstab2.h5", H5F_ACC_TRUNC, create_plist, access_plist); CHECK(fid, FAIL, "H5Fcreate"); f = H5A_object(fid); CHECK(f, NULL, "H5Aatom_object"); diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c index 583fc8e..a015ffc 100644 --- a/testpar/testphdf5.c +++ b/testpar/testphdf5.c @@ -85,7 +85,7 @@ phdf5write() #endif /* create the file collectively */ - fid1=H5Fcreate(FILE1,H5ACC_OVERWRITE,0,acc_tpl1); + fid1=H5Fcreate(FILE1,H5F_ACC_TRUNC,H5C_DEFAULT,acc_tpl1); assert(fid1 != FAIL); MESG("H5Fcreate succeed"); @@ -216,7 +216,7 @@ phdf5read() /* open the file collectively */ - fid1=H5Fopen(FILE1,H5ACC_WRITE,acc_tpl1); + fid1=H5Fopen(FILE1,H5F_ACC_RDWR,acc_tpl1); assert(fid1 != FAIL); /* Release file-access template */ |