summaryrefslogtreecommitdiffstats
path: root/src/H5Ocstore.c
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-01-16 19:52:04 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-01-16 19:52:04 (GMT)
commit74618e3670ed6c8db4c01dd30d1d7bba70447027 (patch)
tree7cb9ab8c0802eb8a46edc885dd8d6167a3c98d24 /src/H5Ocstore.c
parente59138031958a1ceb6105de0e1b222f85f2ac017 (diff)
downloadhdf5-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.c258
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);
-}
-