diff options
author | Robb Matzke <matzke@llnl.gov> | 1999-07-28 18:25:43 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1999-07-28 18:25:43 (GMT) |
commit | e4834c43ce6528308ebd5375bd4c7a0df88af427 (patch) | |
tree | 0039040d95cc92fdb197b2902436e32a020a7b6f /src/H5Fsec2.c | |
parent | 139688863f191366fe27fbab9654a52285e63c11 (diff) | |
download | hdf5-e4834c43ce6528308ebd5375bd4c7a0df88af427.zip hdf5-e4834c43ce6528308ebd5375bd4c7a0df88af427.tar.gz hdf5-e4834c43ce6528308ebd5375bd4c7a0df88af427.tar.bz2 |
[svn-r1548] Changes since 19990727
----------------------
./src/H5.c [1.3]
./src/H5AC.c [1.3]
./src/H5ACprivate.h [1.3]
./src/H5B.c [1.3]
./src/H5Bprivate.h [1.3]
./src/H5D.c [1.3]
./src/H5F.c [1.3]
./src/H5Farray.c [1.3]
./src/H5Fcore.c [1.3]
./src/H5Ffamily.c [1.3]
./src/H5Fistore.c [1.3]
./src/H5Flow.c [1.3]
./src/H5Fmpio.c [1.3]
./src/H5Fprivate.h [1.3]
./src/H5Fsec2.c [1.3]
./src/H5Fsplit.c [1.3]
./src/H5Fstdio.c [1.3]
./src/H5G.c [1.3]
./src/H5Gent.c [1.3]
./src/H5Gnode.c [1.3]
./src/H5Gprivate.h [1.3]
./src/H5Gstab.c [1.3]
./src/H5HG.c [1.3]
./src/H5HGprivate.h [1.3]
./src/H5HL.c [1.3]
./src/H5HLprivate.h [1.3]
./src/H5MF.c [1.3]
./src/H5MFprivate.h [1.3]
./src/H5O.c [1.3]
./src/H5Oattr.c [1.3]
./src/H5Ocont.c [1.3]
./src/H5Odtype.c [1.3]
./src/H5Oefl.c [1.3]
./src/H5Olayout.c [1.3]
./src/H5Oprivate.h [1.3]
./src/H5Oshared.c [1.3]
./src/H5Ostab.c [1.3]
./src/H5P.c [1.3]
./src/H5R.c [1.3]
./src/H5Smpio.c [1.3]
./src/H5T.c [1.3]
./src/H5Tvlen.c [1.3]
./src/H5private.h [1.3]
./test/dtypes.c [1.3]
./test/gheap.c [1.3]
./test/istore.c [1.3]
./test/lheap.c [1.3]
./test/ohdr.c [1.3]
./tools/h5debug.c [1.3]
File addresses (the `haddr_t' type) are passed by value
instead of by reference. The type is no longer a struct. This
is one of the preliminary changes needed for the Virtual File
Layer stuff.
./src/H5Fprivate.h [1.3]
./src/H5Flow.c [1.3]
Some address functions were rewritten as macros.
Diffstat (limited to 'src/H5Fsec2.c')
-rw-r--r-- | src/H5Fsec2.c | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/src/H5Fsec2.c b/src/H5Fsec2.c index add8e1f..cacbff2 100644 --- a/src/H5Fsec2.c +++ b/src/H5Fsec2.c @@ -28,10 +28,10 @@ static H5F_low_t *H5F_sec2_open(const char *name, H5F_search_t *key/*out*/); static herr_t H5F_sec2_close(H5F_low_t *lf, const H5F_access_t *access_parms); static herr_t H5F_sec2_read(H5F_low_t *lf, const H5F_access_t *access_parms, - const H5F_xfer_t *xfer_parms, const haddr_t *addr, + const H5F_xfer_t *xfer_parms, haddr_t addr, size_t size, uint8_t *buf/*out*/); static herr_t H5F_sec2_write(H5F_low_t *lf, const H5F_access_t *access_parms, - const H5F_xfer_t *xfer_parms, const haddr_t *addr, + const H5F_xfer_t *xfer_parms, haddr_t addr, size_t size, const uint8_t *buf); const H5F_low_class_t H5F_LOW_SEC2_g[1] = {{ @@ -93,7 +93,7 @@ H5F_sec2_open(const char *name, const H5F_access_t UNUSED *access_parms, lf->u.sec2.op = H5F_OP_SEEK; lf->u.sec2.cur = 0; HDfstat(fd, &sb); - lf->eof.offset = sb.st_size; + lf->eof = sb.st_size; if (key) { #if WIN32 @@ -179,15 +179,17 @@ H5F_sec2_close(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms) * Wednesday, October 22, 1997 * * Modifications: - * June 2, 1998 Albert Cheng - * Added xfer_mode argument + * Albert Cheng, 1998-06-02 + * Added XFER_MODE argument. * + * Robb Matzke, 1999-07-28 + * The ADDR argument is passed by value. *------------------------------------------------------------------------- */ static herr_t H5F_sec2_read(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, - const H5F_xfer_t UNUSED *xfer_parms, const haddr_t *addr, - size_t size, uint8_t *buf) + const H5F_xfer_t UNUSED *xfer_parms, haddr_t addr, size_t size, + uint8_t *buf) { ssize_t n; uint64_t mask; @@ -201,20 +203,20 @@ H5F_sec2_read(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, /* Check for overflow */ mask = (uint64_t)1 << (8*sizeof(offset)-1); - if (addr->offset >= mask || - addr->offset+size < addr->offset || - addr->offset+size >= mask) { + if (addr >= mask || + addr+size < addr || + addr+size >= mask) { HRETURN_ERROR (H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed"); } #ifdef HAVE_LSEEK64 - offset = (off64_t)(addr->offset); /*checked for overflow above*/ + offset = (off64_t)(addr); /*checked for overflow above*/ #else - offset = (off_t)(addr->offset); /*checked for overflow above*/ + offset = (off_t)(addr); /*checked for overflow above*/ #endif /* Check easy cases */ if (0 == size) HRETURN(SUCCEED); - if ((uint64_t)offset >= lf->eof.offset) { + if ((uint64_t)offset >= lf->eof) { HDmemset(buf, 0, size); HRETURN(SUCCEED); } @@ -241,8 +243,8 @@ H5F_sec2_read(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, /* * Read zeros past the logical end of file (physical is handled below) */ - if ((size_t) offset + size > lf->eof.offset) { - size_t nbytes = (size_t)offset + size - lf->eof.offset; + if ((size_t) offset + size > lf->eof) { + size_t nbytes = (size_t)offset + size - lf->eof; HDmemset(buf + size - nbytes, 0, nbytes); size -= nbytes; } @@ -284,15 +286,17 @@ H5F_sec2_read(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, * Wednesday, October 22, 1997 * * Modifications: - * June 2, 1998 Albert Cheng - * Added xfer_mode argument + * Albert Cheng, 1998-06-02 + * Added XFER_MODE argument. * + * Robb Matzke, 1999-07-28 + * The ADDR argument is passed by value. *------------------------------------------------------------------------- */ static herr_t H5F_sec2_write(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, - const H5F_xfer_t UNUSED *xfer_parms, const haddr_t *addr, - size_t size, const uint8_t *buf) + const H5F_xfer_t UNUSED *xfer_parms, haddr_t addr, size_t size, + const uint8_t *buf) { uint64_t mask; ssize_t n; @@ -306,16 +310,16 @@ H5F_sec2_write(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, /* Check for overflow */ mask = (uint64_t)1 << (8*sizeof(offset)-1); - if (addr->offset >= mask || - addr->offset+size < addr->offset || - addr->offset+size >= mask) { + if (addr >= mask || + addr+size < addr || + addr+size >= mask) { HRETURN_ERROR (H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed"); } #ifdef HAVE_LSEEK64 - offset = (off64_t)(addr->offset); /*checked for overflow*/ + offset = (off64_t)(addr); /*checked for overflow*/ n = (off64_t)size; /*checked for overflow*/ #else - offset = (off_t)(addr->offset); /*checked for overflow*/ + offset = (off_t)(addr); /*checked for overflow*/ n = (off_t)size; /*checked for overflow*/ #endif |