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/H5Fcore.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/H5Fcore.c')
-rw-r--r-- | src/H5Fcore.c | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/H5Fcore.c b/src/H5Fcore.c index 85378b2..021490c 100644 --- a/src/H5Fcore.c +++ b/src/H5Fcore.c @@ -33,10 +33,10 @@ static H5F_low_t *H5F_core_open(const char *name, H5F_search_t *key/*out*/); static herr_t H5F_core_close(H5F_low_t *lf, const H5F_access_t *access_parms); static herr_t H5F_core_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); static herr_t H5F_core_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_CORE_g[1] = {{ @@ -176,14 +176,16 @@ H5F_core_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_core_read(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, - const H5F_xfer_t UNUSED *xfer_parms, const haddr_t *addr, + const H5F_xfer_t UNUSED *xfer_parms, haddr_t addr, size_t size, uint8_t *buf) { size_t n; @@ -192,16 +194,16 @@ H5F_core_read(H5F_low_t *lf, const H5F_access_t UNUSED *access_parms, FUNC_ENTER(H5F_core_read, FAIL); assert(lf); - assert(addr && H5F_addr_defined(addr)); + assert(H5F_addr_defined(addr)); assert(buf); - eof = MIN(lf->eof.offset, lf->u.core.size); + eof = MIN(lf->eof, lf->u.core.size); - if (addr->offset >= eof) { + if (addr >= eof) { HDmemset(buf, 0, size); } else { - n = MIN(size, eof-addr->offset); - HDmemcpy(buf, lf->u.core.mem + addr->offset, n); + n = MIN(size, eof-addr); + HDmemcpy(buf, lf->u.core.mem + addr, n); HDmemset(buf+n, 0, size-n); } @@ -224,14 +226,16 @@ H5F_core_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_core_write(H5F_low_t *lf, const H5F_access_t *access_parms, - const H5F_xfer_t UNUSED *xfer_parms, const haddr_t *addr, + const H5F_xfer_t UNUSED *xfer_parms, haddr_t addr, size_t size, const uint8_t *buf) { size_t need_more, na; @@ -241,7 +245,7 @@ H5F_core_write(H5F_low_t *lf, const H5F_access_t *access_parms, FUNC_ENTER(H5F_core_write, FAIL); assert(lf); - assert(addr && H5F_addr_defined(addr)); + assert(H5F_addr_defined(addr)); assert(buf); assert (!access_parms || H5F_LOW_CORE==access_parms->driver); @@ -250,9 +254,9 @@ H5F_core_write(H5F_low_t *lf, const H5F_access_t *access_parms, * size, which is either defined in the file access property list or * which defaults to one. */ - if (addr->offset + size > lf->u.core.alloc) { + if (addr + size > lf->u.core.alloc) { if (access_parms) increment = access_parms->u.core.increment; - need_more = addr->offset+size - lf->u.core.alloc; + need_more = addr+size - lf->u.core.alloc; need_more = increment*((need_more+increment-1)/increment); na = lf->u.core.alloc + need_more; @@ -265,12 +269,12 @@ H5F_core_write(H5F_low_t *lf, const H5F_access_t *access_parms, } /* Move the physical EOF marker */ - if (addr->offset + size > lf->u.core.size) { - lf->u.core.size = addr->offset + size; + if (addr + size > lf->u.core.size) { + lf->u.core.size = addr + size; } /* Copy data */ - HDmemcpy(lf->u.core.mem+addr->offset, buf, size); + HDmemcpy(lf->u.core.mem+addr, buf, size); FUNC_LEAVE(SUCCEED); } |