diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-01-16 19:52:04 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-01-16 19:52:04 (GMT) |
commit | 74618e3670ed6c8db4c01dd30d1d7bba70447027 (patch) | |
tree | 7cb9ab8c0802eb8a46edc885dd8d6167a3c98d24 /src/H5Ocstore.c | |
parent | e59138031958a1ceb6105de0e1b222f85f2ac017 (diff) | |
download | hdf5-74618e3670ed6c8db4c01dd30d1d7bba70447027.zip hdf5-74618e3670ed6c8db4c01dd30d1d7bba70447027.tar.gz hdf5-74618e3670ed6c8db4c01dd30d1d7bba70447027.tar.bz2 |
[svn-r155] Changes since 19980114
----------------------
./html/Datasets.html
Removed some archaic comments about data spaces. Fixed example
code.
./MANIFEST
./html/H5.format.html
./src/H5O.c
./src/H5Oprivate.h
./src/H5Ocstore.c [DELETED]
./src/H5Oistore.c [DELETED]
./src/H5Olayout.c [NEW]
./src/Makefile.in
./test/istore.c
Replaced H5O_CSTORE and H5O_ISTORE messages with a more
general H5O_LAYOUT message.
./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
A little more work on the pipeline. Access to the file data
is through the new H5F_arr_read() and H5F_arr_write() which do
I/O on hyperslabs of byte arrays and don't depend on data
layout. This should simplify the I/O pipeline quite a bit.
I also added another argument to H5Dread() and H5Dwrite() to
describe the hyerslab of the file array on which I/O is
occuring. We discussed this at last week's meeting.
./src/H5Farray.c [NEW]
Added functions that sit on top of H5F_block_read() and
H5F_istore_read() and implement a common set of functions
between all layouts. This means I/O of hyperslabs of
byte-arrays in the file to arrays of bytes in memory. When
operating on arrays of elements (>1byte) then we just add
another dimension. That is, a 10x20 array of int32 becomes a
10x20x4 array of bytes.
[This is the area I'll be working on most of next week to
implement partial I/O for contiguous data and to improve
performance for chunked data.]
./src/H5Fistore.c
./src/H5Fprivate.h
Replaced the H5F_istore_t data type with the layout message
H5O_layout_t which looks almost the same. Eventually I'd like
to rename `istore' to `chunked' everywhere and use `istore'
for 1-d storage where the chunks are all different sizes like
in the small object heap where each object is a chunk.
./src/H5V.c
Changed ISTORE to LAYOUT in one place.
./test/dsets.c
Fixed for extra argument to H5Dread() and H5Dwrite().
Diffstat (limited to 'src/H5Ocstore.c')
-rw-r--r-- | src/H5Ocstore.c | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/src/H5Ocstore.c b/src/H5Ocstore.c deleted file mode 100644 index 5cc3215..0000000 --- a/src/H5Ocstore.c +++ /dev/null @@ -1,258 +0,0 @@ -/**************************************************************************** -* NCSA HDF * -* Software Development Group * -* National Center for Supercomputing Applications * -* University of Illinois at Urbana-Champaign * -* 605 E. Springfield, Champaign IL 61820 * -* * -* For conditions of distribution and use, see the accompanying * -* hdf/COPYING file. * -* * -****************************************************************************/ - -/*LINTLIBRARY */ -/*+ - FILE - H5Ocstore.c - HDF5 Contiguous Data Storage Object Header Message routines - - EXPORTED ROUTINES - - LIBRARY-SCOPED ROUTINES - - LOCAL ROUTINES - + */ - -#include <H5private.h> -#include <H5Eprivate.h> -#include <H5Gprivate.h> -#include <H5MMprivate.h> -#include <H5Oprivate.h> - -#define PABLO_MASK H5O_cstore_mask - -/* PRIVATE PROTOTYPES */ -static void *H5O_cstore_decode (H5F_t *f, size_t raw_size, const uint8 *p); -static herr_t H5O_cstore_encode (H5F_t *f, size_t size, uint8 *p, - const void *_mesg); -static void *H5O_cstore_copy (const void *_mesg, void *_dest); -static size_t H5O_cstore_size (H5F_t *f, const void *_mesg); -static herr_t H5O_cstore_debug (H5F_t *f, const void *_mesg, - FILE *stream, intn indent, intn fwidth); - -/* This message derives from H5O */ -const H5O_class_t H5O_CSTORE[1] = {{ - H5O_CSTORE_ID, /* message id number */ - "cstore", /* message name for debugging */ - sizeof (H5O_cstore_t), /* native message size */ - H5O_cstore_decode, /* decode message */ - H5O_cstore_encode, /* encode message */ - H5O_cstore_copy, /* copy the native value */ - H5O_cstore_size, /* size of symbol table entry */ - NULL, /* default reset method */ - H5O_cstore_debug, /* debug the message */ -}}; - -/* Interface initialization */ -static hbool_t interface_initialize_g = FALSE; -#define INTERFACE_INIT NULL - -/*-------------------------------------------------------------------------- - NAME - H5O_cstore_decode - PURPOSE - Decode a contiguous data storage and return a pointer to a memory - struct with the decoded information - USAGE - void *H5O_cstore_decode(f, raw_size, p) - H5F_t *f; IN: pointer to the HDF5 file struct - size_t raw_size; IN: size of the raw information buffer - const uint8 *p; IN: the raw information buffer - RETURNS - Pointer to the new message in native order on success, NULL on failure - DESCRIPTION - This function decodes the "raw" disk form of a contiguous data storage - message into a struct in memory native format. The struct is allocated - within this function using malloc() and is returned to the caller. ---------------------------------------------------------------------------*/ -static void * -H5O_cstore_decode (H5F_t *f, size_t raw_size, const uint8 *p) -{ - H5O_cstore_t *store=NULL; /* New contiguous storage structure */ - - FUNC_ENTER (H5O_cstore_decode, NULL); - - /* check args */ - assert (f); - assert (raw_size == H5F_SIZEOF_ADDR(f)+H5F_SIZEOF_SIZE(f)); - assert (p); - - /* decode */ - if((store = H5MM_xcalloc (1, sizeof(H5O_cstore_t)))!=NULL) - { - H5F_addr_decode (f, &p,&(store->addr)); - H5F_decode_length(f,p,store->size); - } /* end if */ - -#ifdef LATER -done: -#endif /* LATER */ - if(store == NULL) - { /* Error condition cleanup */ - - } /* end if */ - - /* Normal function cleanup */ - - FUNC_LEAVE (store); -} - -/*-------------------------------------------------------------------------- - NAME - H5O_cstore_encode - PURPOSE - Encode a contiguous data storage message - USAGE - herr_t H5O_cstore_encode(f, raw_size, p, mesg) - H5F_t *f; IN: pointer to the HDF5 file struct - size_t raw_size; IN: size of the raw information buffer - const uint8 *p; IN: the raw information buffer - const void *mesg; IN: Pointer to the contiguous storage struct - RETURNS - SUCCEED/FAIL - DESCRIPTION - This function encodes the native memory form of the contiguous data - storage message in the "raw" disk form. ---------------------------------------------------------------------------*/ -static herr_t -H5O_cstore_encode (H5F_t *f, size_t raw_size, uint8 *p, const void *mesg) -{ - const H5O_cstore_t *store = (const H5O_cstore_t *)mesg; - - FUNC_ENTER (H5O_cstore_encode, FAIL); - - /* check args */ - assert (f); - assert (raw_size == H5F_SIZEOF_ADDR(f)+H5F_SIZEOF_SIZE(f)); - assert (p); - assert (store); - - /* encode */ - H5F_addr_encode (f, &p, &(store->addr)); - H5F_encode_length(f,p,store->size); - - FUNC_LEAVE (SUCCEED); -} - -/*-------------------------------------------------------------------------- - NAME - H5O_cstore_copy - PURPOSE - Copies a message from MESG to DEST, allocating DEST if necessary. - USAGE - void *H5O_cstore_copy(mesg, dest) - const void *mesg; IN: Pointer to the source contiguous storage - struct - const void *dest; IN: Pointer to the destination contiguous - storage struct - RETURNS - Pointer to DEST on success, NULL on failure - DESCRIPTION - This function copies a native (memory) contiguous storage message, - allocating the destination structure if necessary. ---------------------------------------------------------------------------*/ -static void * -H5O_cstore_copy (const void *mesg, void *dest) -{ - const H5O_cstore_t *src = (const H5O_cstore_t *)mesg; - H5O_cstore_t *dst = (H5O_cstore_t *)dest; - - FUNC_ENTER (H5O_cstore_copy, NULL); - - /* check args */ - assert (src); - if (!dst) - dst = H5MM_xcalloc (1, sizeof(H5O_cstore_t)); - - /* copy */ - HDmemcpy(dst,src,sizeof(H5O_cstore_t)); - - FUNC_LEAVE ((void*)dst); -} - -/*-------------------------------------------------------------------------- - NAME - H5O_cstore_size - PURPOSE - Return the raw message size in bytes - USAGE - void *H5O_cstore_copy(f, mesg) - H5F_t *f; IN: pointer to the HDF5 file struct - const void *mesg; IN: Pointer to the source contiguous storage - struct - RETURNS - Size of message on success, FAIL on failure - DESCRIPTION - This function returns the size of the raw contiguous storage message on - success. (Not counting the message type or size fields, only the data - portion of the message). It doesn't take into account alignment. ---------------------------------------------------------------------------*/ -static size_t -H5O_cstore_size (H5F_t *f, const void *mesg) -{ - size_t ret_value; - - FUNC_ENTER (H5O_cstore_size, FAIL); - - /* All contiguous data storage messages have the same data */ - ret_value=H5F_SIZEOF_ADDR(f)+H5F_SIZEOF_SIZE(f); - - FUNC_LEAVE (ret_value); -} - -/*-------------------------------------------------------------------------- - NAME - H5O_cstore_debug - PURPOSE - Prints debugging information for a contiguous storage message - USAGE - void *H5O_cstore_debug(f, mesg, stream, indent, fwidth) - H5F_t *f; IN: pointer to the HDF5 file struct - const void *mesg; IN: Pointer to the source contiguous storage - struct - FILE *stream; IN: Pointer to the stream for output data - intn indent; IN: Amount to indent information by - intn fwidth; IN: Field width (?) - RETURNS - SUCCEED/FAIL - DESCRIPTION - This function prints debugging output to the stream passed as a - parameter. ---------------------------------------------------------------------------*/ -static herr_t -H5O_cstore_debug (H5F_t *f, const void *mesg, FILE *stream, - intn indent, intn fwidth) -{ - const H5O_cstore_t *store = (const H5O_cstore_t *)mesg; - - FUNC_ENTER (H5O_cstore_debug, FAIL); - - /* check args */ - assert (f); - assert (store); - assert (stream); - assert (indent>=0); - assert (fwidth>=0); - - fprintf (stream, "%*s%-*s ", indent, "", fwidth, - "Address:"); - H5F_addr_print (stream, &(store->addr)); - fprintf (stream, "\n"); - - fprintf (stream, "%*s%-*s %lu\n", indent, "", fwidth, - "Size (bytes):", - (unsigned long)(store->size)); - - FUNC_LEAVE (SUCCEED); -} - |