diff options
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); } |