summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wendling <wendling@ncsa.uiuc.edu>2003-03-20 17:39:06 (GMT)
committerBill Wendling <wendling@ncsa.uiuc.edu>2003-03-20 17:39:06 (GMT)
commita90774e8cc0028b9935c6dfadb2a316337e4eea4 (patch)
tree2a922d79ef410a3f80e9cf4d905c29aaaf76f7c4
parent9f7ef95fcd3eebe2f8edea204052c4f93776649b (diff)
downloadhdf5-a90774e8cc0028b9935c6dfadb2a316337e4eea4.zip
hdf5-a90774e8cc0028b9935c6dfadb2a316337e4eea4.tar.gz
hdf5-a90774e8cc0028b9935c6dfadb2a316337e4eea4.tar.bz2
[svn-r6514] Purpose:
Bug fix and Update Description: From Quincey's comments on the code I checked in last night: - In H5F_close call, the "private" processes should call the H5F_flush with the "CLEAR_ONLY" flag. - There's no need for a special case for FPHDF5 in the FD_real_alloc function since FPHDF5 doesn't define an alloc function. - The return type of H5Pset_fapl_fphdf5 should be herr_t instead of hid_t. I don't know how it got that way in the first place. - The variable names for MPI types and the structure typedefs should be switched: H5FP_request/H5FP_request_t to H5FP_request_t/H5FP_request and so on. - In the H5FP.c module, I was commiting the H5FP_request MPI datatype but using the wrong offset field... Platforms tested: Linux...will test on others, but these are mostly FPHDF5 changes. Misc. update:
-rw-r--r--src/H5F.c19
-rw-r--r--src/H5FD.c11
-rw-r--r--src/H5FDfphdf5.c10
-rw-r--r--src/H5FP.c100
-rw-r--r--src/H5FPclient.c76
-rw-r--r--src/H5FPprivate.h16
-rw-r--r--src/H5FPserver.c61
7 files changed, 146 insertions, 147 deletions
diff --git a/src/H5F.c b/src/H5F.c
index c096c21..21db0ba 100644
--- a/src/H5F.c
+++ b/src/H5F.c
@@ -2979,6 +2979,10 @@ H5F_close(H5F_t *f)
/* Only flush at this point if the file will be closed */
if (closing) {
+ /* Dump debugging info */
+ H5AC_debug(f);
+ H5F_istore_stats(f, FALSE);
+
#ifdef H5_HAVE_FPHDF5
/*
* We only want the captain to perform the flush of the metadata
@@ -2988,19 +2992,24 @@ H5F_close(H5F_t *f)
H5FD_fphdf5_is_captain(f->shared->lf)) {
#endif /* H5_HAVE_FPHDF5 */
- /* Dump debugging info */
- H5AC_debug(f);
- H5F_istore_stats(f, FALSE);
-
/* Flush and destroy all caches */
if (H5F_flush(f, H5AC_dxpl_id, H5F_SCOPE_LOCAL,
H5F_FLUSH_INVALIDATE | H5F_FLUSH_CLOSING) < 0)
HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache");
#ifdef H5_HAVE_FPHDF5
+ } else {
+ /*
+ * If this isn't the captain process, flush but only clear
+ * the flags.
+ */
+ if (H5F_flush(f, H5AC_dxpl_id, H5F_SCOPE_LOCAL,
+ H5F_FLUSH_INVALIDATE | H5F_FLUSH_CLOSING | H5F_FLUSH_CLEAR_ONLY) < 0)
+ HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "unable to flush cache");
+
}
- /* Wait for the captain to finish up... */
+ /* Let's all meet up now... */
if (H5FD_is_fphdf5_driver(f->shared->lf))
MPI_Barrier(H5FP_SAP_BARRIER_COMM);
#endif /* H5_HAVE_FPHDF5 */
diff --git a/src/H5FD.c b/src/H5FD.c
index e003c82..a183b48 100644
--- a/src/H5FD.c
+++ b/src/H5FD.c
@@ -1890,16 +1890,6 @@ H5FD_real_alloc(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size)
assert(type >= 0 && type < H5FD_MEM_NTYPES);
assert(size > 0);
-#ifdef H5_HAVE_FPHDF5
- /*
- * When we're using the FPHDF5 driver, and this section of code is
- * only reached via the SAP. So just update the EOA and be done with
- * it.
- */
- if ((ret_value = H5FD_update_eoa(file, type, dxpl_id, size)) == HADDR_UNDEF)
- HGOTO_ERROR(H5E_VFL, H5E_NOSPACE, HADDR_UNDEF,
- "driver eoa update request failed");
-#else
/*
* Dispatch to driver `alloc' callback or extend the end-of-address
* marker
@@ -1913,7 +1903,6 @@ H5FD_real_alloc(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size)
HGOTO_ERROR(H5E_VFL, H5E_NOSPACE, HADDR_UNDEF,
"driver eoa update request failed");
}
-#endif /* H5_HAVE_FPHDF5 */
done:
FUNC_LEAVE_NOAPI(ret_value);
diff --git a/src/H5FDfphdf5.c b/src/H5FDfphdf5.c
index 365325c..ce293bb 100644
--- a/src/H5FDfphdf5.c
+++ b/src/H5FDfphdf5.c
@@ -197,7 +197,7 @@ done:
* Modifications:
*-------------------------------------------------------------------------
*/
-hid_t
+herr_t
H5Pset_fapl_fphdf5(hid_t fapl_id, MPI_Comm comm, MPI_Comm barrier_comm,
MPI_Info info, unsigned sap_rank)
{
@@ -207,7 +207,7 @@ H5Pset_fapl_fphdf5(hid_t fapl_id, MPI_Comm comm, MPI_Comm barrier_comm,
herr_t ret_value;
FUNC_ENTER_API(H5Pset_fapl_fphdf5, FAIL);
- H5TRACE5("i","iMcMcMiIu",fapl_id,comm,barrier_comm,info,sap_rank);
+ H5TRACE5("e","iMcMcMiIu",fapl_id,comm,barrier_comm,info,sap_rank);
if (fapl_id == H5P_DEFAULT)
HGOTO_ERROR(H5E_PLIST, H5E_BADVALUE, FAIL,
@@ -1402,7 +1402,7 @@ H5FD_fphdf5_write(H5FD_t *_file, H5FD_mem_t mem_type, hid_t dxpl_id,
FUNC_ENTER_NOAPI(H5FD_fphdf5_write, FAIL);
-HDfprintf(stderr, "%s: Entering: rank==%d, addr==%Hd, size==%d\n",
+HDfprintf(stderr, "%s: Entering: rank==%d, addr==%a, size==%Zu\n",
FUNC, file->mpi_rank, addr, size);
/* check args */
@@ -1536,7 +1536,7 @@ H5FD_fphdf5_write_real(H5FD_t *_file, hid_t dxpl_id, MPI_Offset mpi_off, int siz
FUNC_ENTER_NOAPI(H5FD_fphdf5_write_real, FAIL);
-HDfprintf(stderr, "%s: %d: Entering: addr=%Hd, size=%d\n", FUNC,
+HDfprintf(stderr, "%s: %d: Entering: addr=%a, size=%Zu\n", FUNC,
H5FD_fphdf5_mpi_rank(_file), (haddr_t)mpi_off, size);
/* check args */
@@ -1607,7 +1607,7 @@ HDfprintf(stderr, "%s: %d: Entering: addr=%Hd, size=%d\n", FUNC,
int i;
sleep(3);
- HDfprintf(stderr, "%s: writing at %Hd\n", FUNC, (haddr_t)mpi_off);
+ HDfprintf(stderr, "%s: writing at %a\n", FUNC, (haddr_t)mpi_off);
for (i = 0; i < size; ++i) {
if (i % 7 == 0)
diff --git a/src/H5FP.c b/src/H5FP.c
index 0921a2c..ab92b54 100644
--- a/src/H5FP.c
+++ b/src/H5FP.c
@@ -29,10 +29,10 @@
#define INTERFACE_INIT NULL
static int interface_initialize_g = 0;
-MPI_Datatype H5FP_request_t; /* MPI datatype for the H5FP_request obj*/
-MPI_Datatype H5FP_reply_t; /* MPI datatype for the H5FP_reply obj */
-MPI_Datatype H5FP_read_t; /* MPI datatype for the H5FP_read obj */
-MPI_Datatype H5FP_alloc_t; /* MPI datatype for the H5FP_alloc obj */
+MPI_Datatype H5FP_request; /* MPI datatype for the H5FP_request_t type */
+MPI_Datatype H5FP_reply; /* MPI datatype for the H5FP_reply_t type */
+MPI_Datatype H5FP_read; /* MPI datatype for the H5FP_read_t type */
+MPI_Datatype H5FP_alloc; /* MPI datatype for the H5FP_alloc_t type */
/* SAP specific variables */
MPI_Comm H5FP_SAP_COMM; /* Comm we use: Supplied by user */
@@ -72,10 +72,10 @@ H5FPinit(MPI_Comm comm, int sap_rank, MPI_Comm *sap_comm, MPI_Comm *sap_barrier_
H5TRACE4("e","McIs*Mc*Mc",comm,sap_rank,sap_comm,sap_barrier_comm);
/* initialize to NULL so that we can release if an error occurs */
- H5FP_request_t = MPI_DATATYPE_NULL;
- H5FP_reply_t = MPI_DATATYPE_NULL;
- H5FP_read_t = MPI_DATATYPE_NULL;
- H5FP_alloc_t = MPI_DATATYPE_NULL;
+ H5FP_request = MPI_DATATYPE_NULL;
+ H5FP_reply = MPI_DATATYPE_NULL;
+ H5FP_read = MPI_DATATYPE_NULL;
+ H5FP_alloc = MPI_DATATYPE_NULL;
*sap_comm = H5FP_SAP_COMM = MPI_COMM_NULL;
*sap_barrier_comm = H5FP_SAP_BARRIER_COMM = MPI_COMM_NULL;
@@ -144,20 +144,20 @@ H5FPinit(MPI_Comm comm, int sap_rank, MPI_Comm *sap_comm, MPI_Comm *sap_barrier_
done:
if (ret_value == FAIL) {
/* we've encountered an error...clean up */
- if (H5FP_request_t != MPI_DATATYPE_NULL)
- if (MPI_Type_free(&H5FP_request_t) != MPI_SUCCESS)
+ if (H5FP_request != MPI_DATATYPE_NULL)
+ if (MPI_Type_free(&H5FP_request) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
- if (H5FP_reply_t != MPI_DATATYPE_NULL)
- if (MPI_Type_free(&H5FP_reply_t) != MPI_SUCCESS)
+ if (H5FP_reply != MPI_DATATYPE_NULL)
+ if (MPI_Type_free(&H5FP_reply) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
- if (H5FP_read_t != MPI_DATATYPE_NULL)
- if (MPI_Type_free(&H5FP_read_t) != MPI_SUCCESS)
+ if (H5FP_read != MPI_DATATYPE_NULL)
+ if (MPI_Type_free(&H5FP_read) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
- if (H5FP_alloc_t != MPI_DATATYPE_NULL)
- if (MPI_Type_free(&H5FP_alloc_t) != MPI_SUCCESS)
+ if (H5FP_alloc != MPI_DATATYPE_NULL)
+ if (MPI_Type_free(&H5FP_alloc) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
if (H5FP_SAP_BARRIER_COMM != MPI_COMM_NULL)
@@ -208,16 +208,16 @@ H5FPfinalize(void)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "Error stopping the SAP");
/* Release the MPI types we created */
- if (MPI_Type_free(&H5FP_request_t) != MPI_SUCCESS)
+ if (MPI_Type_free(&H5FP_request) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
- if (MPI_Type_free(&H5FP_reply_t) != MPI_SUCCESS)
+ if (MPI_Type_free(&H5FP_reply) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
- if (MPI_Type_free(&H5FP_read_t) != MPI_SUCCESS)
+ if (MPI_Type_free(&H5FP_read) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
- if (MPI_Type_free(&H5FP_alloc_t) != MPI_SUCCESS)
+ if (MPI_Type_free(&H5FP_alloc) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_free failed");
/* Release the barrier communicator */
@@ -315,8 +315,8 @@ done:
/*
* Function: H5FP_commit_sap_datatypes
- * Purpose: Commit the H5FP_request_t, H5FP_reply_t, H5FP_read_t, and
- * H5FP_alloc_t structure datatypes to MPI.
+ * Purpose: Commit the H5FP_request, H5FP_reply, H5FP_read, and
+ * H5FP_alloc structure datatypes to MPI.
* Return: Success: SUCCEED
* Failure: FAIL
* Programmer: Bill Wendling, 26. July, 2002
@@ -325,17 +325,19 @@ done:
static herr_t
H5FP_commit_sap_datatypes(void)
{
- int block_length[5], i;
- MPI_Aint displs[5];
- MPI_Datatype old_types[5];
- H5FP_request sap_req;
- H5FP_read sap_read;
- H5FP_alloc sap_alloc;
- herr_t ret_value = SUCCEED;
+ int block_length[5];
+ int i;
+ MPI_Aint displs[5];
+ MPI_Datatype old_types[5];
+ H5FP_request_t sap_req;
+ H5FP_reply_t sap_reply;
+ H5FP_read_t sap_read;
+ H5FP_alloc_t sap_alloc;
+ herr_t ret_value = SUCCEED;
FUNC_ENTER_NOAPI(H5FP_commit_sap_datatypes, FAIL);
- /* Commit the H5FP_request_t datatype */
+ /* Commit the H5FP_request datatype */
block_length[0] = 8;
block_length[1] = 1;
block_length[2] = 4;
@@ -346,7 +348,7 @@ H5FP_commit_sap_datatypes(void)
old_types[2] = MPI_LONG_LONG_INT;
old_types[3] = HADDR_AS_MPI_TYPE;
old_types[4] = MPI_UNSIGNED_CHAR;
- MPI_Address(&sap_req.req_type, &displs[0]);
+ MPI_Address(&sap_req.req_id, &displs[0]);
MPI_Address(&sap_req.feature_flags, &displs[1]);
MPI_Address(&sap_req.meta_block_size, &displs[2]);
MPI_Address(&sap_req.addr, &displs[3]);
@@ -356,26 +358,28 @@ H5FP_commit_sap_datatypes(void)
for (i = 4; i >= 0; --i)
displs[i] -= displs[0];
- if (MPI_Type_struct(5, block_length, displs, old_types,
- &H5FP_request_t) != MPI_SUCCESS)
+ if (MPI_Type_struct(5, block_length, displs, old_types, &H5FP_request) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_struct failed");
- if (MPI_Type_commit(&H5FP_request_t) != MPI_SUCCESS)
+ if (MPI_Type_commit(&H5FP_request) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_commit failed");
- /* Commit the H5FP_reply_t datatype */
+ /* Commit the H5FP_reply datatype */
block_length[0] = 4;
- displs[0] = 0;
old_types[0] = MPI_INT;
+ MPI_Address(&sap_reply.req_id, &displs[0]);
+
+ /* Calculate the displacements */
+ for (i = 0; i >= 0; --i)
+ displs[i] -= displs[0];
- if (MPI_Type_struct(1, block_length, displs, old_types,
- &H5FP_reply_t) != MPI_SUCCESS)
+ if (MPI_Type_struct(1, block_length, displs, old_types, &H5FP_reply) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_struct failed");
- if (MPI_Type_commit(&H5FP_reply_t) != MPI_SUCCESS)
+ if (MPI_Type_commit(&H5FP_reply) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_commit failed");
- /* Commit the H5FP_read_t datatype */
+ /* Commit the H5FP_read datatype */
block_length[0] = 5;
block_length[1] = 1;
old_types[0] = MPI_UNSIGNED;
@@ -387,14 +391,13 @@ H5FP_commit_sap_datatypes(void)
for (i = 1; i >= 0; --i)
displs[i] -= displs[0];
- if (MPI_Type_struct(2, block_length, displs, old_types,
- &H5FP_read_t) != MPI_SUCCESS)
+ if (MPI_Type_struct(2, block_length, displs, old_types, &H5FP_read) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_struct failed");
- if (MPI_Type_commit(&H5FP_read_t) != MPI_SUCCESS)
+ if (MPI_Type_commit(&H5FP_read) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_commit failed");
- /* Commit the H5FP_alloc_t datatype */
+ /* Commit the H5FP_alloc datatype */
block_length[0] = 4;
block_length[1] = 1;
old_types[0] = MPI_UNSIGNED;
@@ -406,11 +409,10 @@ H5FP_commit_sap_datatypes(void)
for (i = 1; i >= 0; --i)
displs[i] -= displs[0];
- if (MPI_Type_struct(2, block_length, displs, old_types,
- &H5FP_alloc_t) != MPI_SUCCESS)
+ if (MPI_Type_struct(2, block_length, displs, old_types, &H5FP_alloc) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_struct failed");
- if (MPI_Type_commit(&H5FP_alloc_t) != MPI_SUCCESS)
+ if (MPI_Type_commit(&H5FP_alloc) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Type_commit failed");
done:
@@ -429,7 +431,7 @@ done:
static herr_t
H5FP_request_sap_stop(void)
{
- H5FP_request req;
+ H5FP_request_t req;
int mrc, my_rank;
herr_t ret_value = SUCCEED;
@@ -444,7 +446,7 @@ H5FP_request_sap_stop(void)
req.req_id = 0;
req.proc_rank = my_rank;
- if (MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if (MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM) != MPI_SUCCESS)
HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "MPI_Send failed");
diff --git a/src/H5FPclient.c b/src/H5FPclient.c
index 0abbcb2..12080fa 100644
--- a/src/H5FPclient.c
+++ b/src/H5FPclient.c
@@ -74,7 +74,7 @@ H5FP_request_open(H5FP_obj_t obj_type, haddr_t maxaddr,
hsize_t sdata_block_size, hsize_t threshold,
hsize_t alignment, unsigned *file_id, unsigned *req_id)
{
- H5FP_request req;
+ H5FP_request_t req;
MPI_Status mpi_status;
int mrc, my_rank;
int ret_value = SUCCEED;
@@ -108,7 +108,7 @@ H5FP_request_open(H5FP_obj_t obj_type, haddr_t maxaddr,
req.threshold = threshold;
req.alignment = alignment;
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -139,7 +139,7 @@ H5FP_request_lock(unsigned file_id, unsigned char *obj_oid,
H5FP_lock_t rw_lock, int last, unsigned *req_id,
H5FP_status_t *status)
{
- H5FP_request req;
+ H5FP_request_t req;
int mrc, my_rank;
int ret_value = SUCCEED;
@@ -164,7 +164,7 @@ H5FP_request_lock(unsigned file_id, unsigned char *obj_oid,
req.proc_rank = my_rank;
H5FP_COPY_OID(req.oid, obj_oid);
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS) {
*status = H5FP_STATUS_LOCK_FAILED;
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -175,12 +175,12 @@ H5FP_request_lock(unsigned file_id, unsigned char *obj_oid,
* On the last lock in the lock-group to be acquired, we expect a
* reply from the SAP
*/
- H5FP_reply sap_reply;
- MPI_Status mpi_status;
+ H5FP_reply_t sap_reply;
+ MPI_Status mpi_status;
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply, (int)H5FP_sap_rank,
H5FP_TAG_REPLY, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -211,7 +211,7 @@ herr_t
H5FP_request_release_lock(unsigned file_id, unsigned char *obj_oid,
int last, unsigned *req_id, H5FP_status_t *status)
{
- H5FP_request req;
+ H5FP_request_t req;
int mrc, my_rank;
herr_t ret_value = SUCCEED;
@@ -235,7 +235,7 @@ H5FP_request_release_lock(unsigned file_id, unsigned char *obj_oid,
req.md_size = 0;
req.proc_rank = my_rank;
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS) {
*status = H5FP_STATUS_LOCK_RELEASE_FAILED;
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -246,12 +246,12 @@ H5FP_request_release_lock(unsigned file_id, unsigned char *obj_oid,
* On the last lock released in this lock-group, we expect a
* reply from the SAP
*/
- H5FP_reply sap_reply;
- MPI_Status mpi_status;
+ H5FP_reply_t sap_reply;
+ MPI_Status mpi_status;
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply, (int)H5FP_sap_rank,
H5FP_TAG_REPLY, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -288,8 +288,8 @@ H5FP_request_read_metadata(H5FD_t *file, unsigned file_id, hid_t dxpl_id,
size_t size, uint8_t **buf, int *bytes_read,
unsigned *req_id, H5FP_status_t *status)
{
- H5FP_request req;
- H5FP_read sap_read;
+ H5FP_request_t req;
+ H5FP_read_t sap_read;
MPI_Status mpi_status;
int mrc, my_rank;
herr_t ret_value = SUCCEED;
@@ -315,13 +315,13 @@ H5FP_request_read_metadata(H5FD_t *file, unsigned file_id, hid_t dxpl_id,
req.proc_rank = my_rank;
req.addr = addr;
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_read, 1, H5FP_read_t, (int)H5FP_sap_rank, H5FP_TAG_READ,
+ if ((mrc = MPI_Recv(&sap_read, 1, H5FP_read, (int)H5FP_sap_rank, H5FP_TAG_READ,
H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -388,9 +388,9 @@ H5FP_request_write_metadata(H5FD_t *file, unsigned file_id, hid_t dxpl_id,
int mdata_size, const char *mdata,
unsigned *req_id, H5FP_status_t *status)
{
- H5FP_reply sap_reply;
+ H5FP_reply_t sap_reply;
MPI_Status mpi_status;
- H5FP_request req;
+ H5FP_request_t req;
int mrc, my_rank;
herr_t ret_value = SUCCEED;
@@ -415,7 +415,7 @@ H5FP_request_write_metadata(H5FD_t *file, unsigned file_id, hid_t dxpl_id,
req.addr = addr;
req.md_size = mdata_size;
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -425,7 +425,7 @@ H5FP_request_write_metadata(H5FD_t *file, unsigned file_id, hid_t dxpl_id,
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply, (int)H5FP_sap_rank,
H5FP_TAG_REPLY, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -481,8 +481,8 @@ herr_t
H5FP_request_flush_metadata(H5FD_t *file, unsigned file_id, hid_t dxpl_id,
unsigned *req_id, H5FP_status_t *status)
{
- H5FP_reply sap_reply;
- H5FP_request req;
+ H5FP_reply_t sap_reply;
+ H5FP_request_t req;
MPI_Status mpi_status;
int mrc, my_rank;
int ret_value = SUCCEED;
@@ -504,13 +504,13 @@ H5FP_request_flush_metadata(H5FD_t *file, unsigned file_id, hid_t dxpl_id,
req.file_id = file_id;
req.proc_rank = my_rank;
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply, (int)H5FP_sap_rank,
H5FP_TAG_REPLY, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -564,8 +564,8 @@ herr_t
H5FP_request_close(H5FD_t *file, unsigned file_id, unsigned *req_id,
H5FP_status_t *status)
{
- H5FP_reply sap_reply;
- H5FP_request req;
+ H5FP_reply_t sap_reply;
+ H5FP_request_t req;
MPI_Status mpi_status;
int mrc;
herr_t ret_value = SUCCEED;
@@ -583,13 +583,13 @@ H5FP_request_close(H5FD_t *file, unsigned file_id, unsigned *req_id,
req.file_id = file_id;
req.proc_rank = H5FD_fphdf5_mpi_rank(file);
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply, (int)H5FP_sap_rank,
H5FP_TAG_REPLY, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -615,8 +615,8 @@ herr_t
H5FP_request_allocate(H5FD_t *file, H5FD_mem_t mem_type, hsize_t size,
haddr_t *addr, unsigned *req_id, H5FP_status_t *status)
{
- H5FP_alloc sap_alloc;
- H5FP_request req;
+ H5FP_alloc_t sap_alloc;
+ H5FP_request_t req;
MPI_Status mpi_status;
int mrc;
herr_t ret_value = SUCCEED;
@@ -637,13 +637,13 @@ H5FP_request_allocate(H5FD_t *file, H5FD_mem_t mem_type, hsize_t size,
req.mem_type = mem_type;
req.meta_block_size = size; /* use this field as the size to allocate */
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_alloc, 1, H5FP_alloc_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_alloc, 1, H5FP_alloc, (int)H5FP_sap_rank,
H5FP_TAG_ALLOC, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -670,8 +670,8 @@ herr_t
H5FP_request_free(H5FD_t *file, H5FD_mem_t mem_type, haddr_t addr,
hsize_t size, unsigned *req_id, H5FP_status_t *status)
{
- H5FP_reply sap_reply;
- H5FP_request req;
+ H5FP_reply_t sap_reply;
+ H5FP_request_t req;
MPI_Status mpi_status;
int mrc;
herr_t ret_value = SUCCEED;
@@ -693,13 +693,13 @@ H5FP_request_free(H5FD_t *file, H5FD_mem_t mem_type, haddr_t addr,
req.addr = addr;
req.meta_block_size = size; /* use this field as the size to free */
- if ((mrc = MPI_Send(&req, 1, H5FP_request_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Send(&req, 1, H5FP_request, (int)H5FP_sap_rank,
H5FP_TAG_REQUEST, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_reply, 1, H5FP_reply, (int)H5FP_sap_rank,
H5FP_TAG_REPLY, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -746,7 +746,7 @@ H5FP_gen_request_id()
static herr_t
H5FP_dump_to_file(H5FD_t *file, hid_t dxpl_id)
{
- H5FP_read sap_read;
+ H5FP_read_t sap_read;
hid_t new_dxpl_id = FAIL;
H5P_genplist_t *plist = NULL, *old_plist;
unsigned dumping = 1;
@@ -788,7 +788,7 @@ H5FP_dump_to_file(H5FD_t *file, hid_t dxpl_id)
HDmemset(&mpi_status, 0, sizeof(mpi_status));
- if ((mrc = MPI_Recv(&sap_read, 1, H5FP_read_t, (int)H5FP_sap_rank,
+ if ((mrc = MPI_Recv(&sap_read, 1, H5FP_read, (int)H5FP_sap_rank,
H5FP_TAG_DUMP, H5FP_SAP_COMM, &mpi_status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
diff --git a/src/H5FPprivate.h b/src/H5FPprivate.h
index 0b08d45..101e3a7 100644
--- a/src/H5FPprivate.h
+++ b/src/H5FPprivate.h
@@ -183,9 +183,9 @@ typedef struct {
hsize_t alignment; /* Alignment (really!) */
haddr_t addr; /* Address of the metadata */
unsigned char oid[H5R_OBJ_REF_BUF_SIZE]; /* Buffer to store OID of object */
-} H5FP_request;
+} H5FP_request_t;
-extern MPI_Datatype H5FP_request_t; /* MPI datatype for the H5FP_request obj*/
+extern MPI_Datatype H5FP_request; /* MPI datatype for the H5FP_request obj */
/*===----------------------------------------------------------------------===
* H5FP_reply
@@ -198,9 +198,9 @@ typedef struct {
unsigned file_id; /* File ID assigned to an open file */
H5FP_status_t status; /* Status of the request */
unsigned md_size; /* Size of the metadata sent in next msg */
-} H5FP_reply;
+} H5FP_reply_t;
-extern MPI_Datatype H5FP_reply_t; /* MPI datatype for the H5FP_reply obj */
+extern MPI_Datatype H5FP_reply; /* MPI datatype for the H5FP_reply obj */
/*===----------------------------------------------------------------------===
* H5FP_read
@@ -215,9 +215,9 @@ typedef struct {
H5FD_mem_t mem_type; /* Type of memory updated, if req'd */
unsigned md_size; /* Size of the metadata sent in next msg */
MPI_Offset addr; /* Address of the metadata */
-} H5FP_read;
+} H5FP_read_t;
-extern MPI_Datatype H5FP_read_t; /* MPI datatype for the H5FP_read obj */
+extern MPI_Datatype H5FP_read; /* MPI datatype for the H5FP_read obj */
/*===----------------------------------------------------------------------===
* H5FP_alloc
@@ -231,9 +231,9 @@ typedef struct {
H5FP_status_t status; /* Status of the request */
H5FD_mem_t mem_type; /* Type of memory updated, if req'd */
haddr_t addr; /* Address of the metadata */
-} H5FP_alloc;
+} H5FP_alloc_t;
-extern MPI_Datatype H5FP_alloc_t; /* MPI datatype for the H5FP_alloc obj */
+extern MPI_Datatype H5FP_alloc; /* MPI datatype for the H5FP_alloc obj */
/* Handy #define for copying OIDs */
#define H5FP_COPY_OID(dst, src) HDmemcpy((dst), (src), H5R_OBJ_REF_BUF_SIZE)
diff --git a/src/H5FPserver.c b/src/H5FPserver.c
index 3d3913f..dc85ad2 100644
--- a/src/H5FPserver.c
+++ b/src/H5FPserver.c
@@ -107,7 +107,7 @@ typedef struct {
static H5TB_TREE *file_info_tree;
/* local functions */
-static herr_t H5FP_sap_receive(H5FP_request *req, int source, int tag, char **buf);
+static herr_t H5FP_sap_receive(H5FP_request_t *req, int source, int tag, char **buf);
/* local functions to generate unique ids for messages */
static unsigned H5FP_gen_sap_file_id(void);
@@ -151,16 +151,16 @@ static H5FP_mdata_mod *H5FP_new_file_mod_node(unsigned rank,
static herr_t H5FP_free_mod_node(H5FP_mdata_mod *info);
/* local request handling functions */
-static herr_t H5FP_sap_handle_open_request(H5FP_request *req, unsigned md_size);
-static herr_t H5FP_sap_handle_lock_request(H5FP_request *req);
-static herr_t H5FP_sap_handle_release_lock_request(H5FP_request *req);
-static herr_t H5FP_sap_handle_read_request(H5FP_request *req);
-static herr_t H5FP_sap_handle_write_request(H5FP_request *req,
+static herr_t H5FP_sap_handle_open_request(H5FP_request_t *req, unsigned md_size);
+static herr_t H5FP_sap_handle_lock_request(H5FP_request_t *req);
+static herr_t H5FP_sap_handle_release_lock_request(H5FP_request_t *req);
+static herr_t H5FP_sap_handle_read_request(H5FP_request_t *req);
+static herr_t H5FP_sap_handle_write_request(H5FP_request_t *req,
char *mdata,
unsigned md_size);
-static herr_t H5FP_sap_handle_flush_request(H5FP_request *req);
-static herr_t H5FP_sap_handle_close_request(H5FP_request *req);
-static herr_t H5FP_sap_handle_alloc_request(H5FP_request *req);
+static herr_t H5FP_sap_handle_flush_request(H5FP_request_t *req);
+static herr_t H5FP_sap_handle_close_request(H5FP_request_t *req);
+static herr_t H5FP_sap_handle_alloc_request(H5FP_request_t *req);
/*
*===----------------------------------------------------------------------===
@@ -185,7 +185,7 @@ H5FP_sap_receive_loop(void)
herr_t ret_value = SUCCEED;
int comm_size;
int stop = 0;
- H5FP_request req;
+ H5FP_request_t req;
FUNC_ENTER_NOAPI(H5FP_sap_receive_loop, FAIL);
@@ -266,7 +266,7 @@ done:
* Modifications:
*/
static herr_t
-H5FP_sap_receive(H5FP_request *req, int source, int tag, char **buf)
+H5FP_sap_receive(H5FP_request_t *req, int source, int tag, char **buf)
{
MPI_Status status;
herr_t ret_value = SUCCEED;
@@ -276,7 +276,7 @@ H5FP_sap_receive(H5FP_request *req, int source, int tag, char **buf)
HDmemset(&status, 0, sizeof(status));
- if ((mrc = MPI_Recv(req, 1, H5FP_request_t, source, tag,
+ if ((mrc = MPI_Recv(req, 1, H5FP_request, source, tag,
H5FP_SAP_COMM, &status)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Recv failed", mrc);
@@ -752,7 +752,7 @@ H5FP_remove_file_id_from_list(unsigned file_id)
static herr_t
H5FP_send_reply(unsigned to, unsigned req_id, unsigned file_id, H5FP_status_t status)
{
- H5FP_reply reply;
+ H5FP_reply_t reply;
herr_t ret_value = SUCCEED;
int mrc;
@@ -762,7 +762,7 @@ H5FP_send_reply(unsigned to, unsigned req_id, unsigned file_id, H5FP_status_t st
reply.file_id = file_id;
reply.status = status;
- if ((mrc = MPI_Send(&reply, 1, H5FP_reply_t, (int)to, H5FP_TAG_REPLY,
+ if ((mrc = MPI_Send(&reply, 1, H5FP_reply, (int)to, H5FP_TAG_REPLY,
H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -782,7 +782,7 @@ done:
static herr_t
H5FP_dump(H5FP_file_info *info, unsigned to, unsigned req_id, unsigned file_id)
{
- H5FP_read r;
+ H5FP_read_t r;
H5TB_NODE *node;
herr_t ret_value = SUCCEED;
int mrc;
@@ -809,7 +809,7 @@ H5FP_dump(H5FP_file_info *info, unsigned to, unsigned req_id, unsigned file_id)
r.addr = m->addr;
r.md_size = m->md_size;
- if ((mrc = MPI_Send(&r, 1, H5FP_read_t, (int)to, H5FP_TAG_DUMP,
+ if ((mrc = MPI_Send(&r, 1, H5FP_read, (int)to, H5FP_TAG_DUMP,
H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -826,7 +826,7 @@ H5FP_dump(H5FP_file_info *info, unsigned to, unsigned req_id, unsigned file_id)
r.md_size = 0;
r.status = H5FP_STATUS_DUMPING_FINISHED;
- if ((mrc = MPI_Send(&r, 1, H5FP_read_t, (int)to, H5FP_TAG_DUMP,
+ if ((mrc = MPI_Send(&r, 1, H5FP_read, (int)to, H5FP_TAG_DUMP,
H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -835,9 +835,8 @@ H5FP_dump(H5FP_file_info *info, unsigned to, unsigned req_id, unsigned file_id)
if ((info->mod_tree = H5TB_dmake((H5TB_cmp_t)H5FP_file_mod_cmp,
sizeof(H5FP_mdata_mod), FALSE)) == NULL)
- HGOTO_ERROR(H5E_FPHDF5, H5E_CANTMAKETREE, NULL, "cannot make TBBT tree");
+ HGOTO_ERROR(H5E_FPHDF5, H5E_CANTMAKETREE, FAIL, "cannot make TBBT tree");
- info->mod_tree = NULL;
info->num_mods = 0;
done:
@@ -875,7 +874,7 @@ H5FP_gen_sap_file_id()
* Modifications:
*/
static herr_t
-H5FP_sap_handle_open_request(H5FP_request *req, unsigned UNUSED md_size)
+H5FP_sap_handle_open_request(H5FP_request_t *req, unsigned UNUSED md_size)
{
herr_t ret_value = SUCCEED;
int mrc;
@@ -918,7 +917,7 @@ done:
* Modifications:
*/
static herr_t
-H5FP_sap_handle_lock_request(H5FP_request *req)
+H5FP_sap_handle_lock_request(H5FP_request_t *req)
{
struct lock_group {
unsigned char oid[sizeof(req->oid)];
@@ -1123,7 +1122,7 @@ HDfprintf(stderr, "%s: locking failure (%d)!!\n", FUNC, ret_value);
* Modifications:
*/
static herr_t
-H5FP_sap_handle_release_lock_request(H5FP_request *req)
+H5FP_sap_handle_release_lock_request(H5FP_request_t *req)
{
struct release_group {
unsigned char oid[sizeof(req->oid)];
@@ -1232,10 +1231,10 @@ done:
* Modifications:
*/
static herr_t
-H5FP_sap_handle_read_request(H5FP_request *req)
+H5FP_sap_handle_read_request(H5FP_request_t *req)
{
H5FP_file_info *info;
- H5FP_read r;
+ H5FP_read_t r;
herr_t ret_value = SUCCEED;
char *metadata = NULL;
int mrc;
@@ -1276,7 +1275,7 @@ H5FP_sap_handle_read_request(H5FP_request *req)
}
}
- if ((mrc = MPI_Send(&r, 1, H5FP_read_t, (int)req->proc_rank,
+ if ((mrc = MPI_Send(&r, 1, H5FP_read, (int)req->proc_rank,
H5FP_TAG_READ, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
@@ -1304,7 +1303,7 @@ done:
* Modifications:
*/
static herr_t
-H5FP_sap_handle_write_request(H5FP_request *req, char *mdata, unsigned md_size)
+H5FP_sap_handle_write_request(H5FP_request_t *req, char *mdata, unsigned md_size)
{
H5FP_file_info *info;
H5FP_status_t exit_state = H5FP_STATUS_OK;
@@ -1388,7 +1387,7 @@ done:
* Modifications:
*/
static herr_t
-H5FP_sap_handle_flush_request(H5FP_request *req)
+H5FP_sap_handle_flush_request(H5FP_request_t *req)
{
H5FP_file_info *info;
H5FP_status_t exit_state = H5FP_STATUS_OK;
@@ -1430,7 +1429,7 @@ done:
* Modifications:
*/
static herr_t
-H5FP_sap_handle_close_request(H5FP_request *req)
+H5FP_sap_handle_close_request(H5FP_request_t *req)
{
H5FP_file_info *info;
H5FP_status_t exit_state = H5FP_STATUS_OK;
@@ -1468,9 +1467,9 @@ done:
* Modifications:
*/
static herr_t
-H5FP_sap_handle_alloc_request(H5FP_request *req)
+H5FP_sap_handle_alloc_request(H5FP_request_t *req)
{
- H5FP_alloc sap_alloc;
+ H5FP_alloc_t sap_alloc;
H5FP_file_info *info;
int mrc;
herr_t ret_value = SUCCEED;
@@ -1502,7 +1501,7 @@ H5FP_sap_handle_alloc_request(H5FP_request *req)
HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL,
"SAP unable to allocate file memory");
- if ((mrc = MPI_Send(&sap_alloc, 1, H5FP_alloc_t, (int)req->proc_rank,
+ if ((mrc = MPI_Send(&sap_alloc, 1, H5FP_alloc, (int)req->proc_rank,
H5FP_TAG_ALLOC, H5FP_SAP_COMM)) != MPI_SUCCESS)
HMPI_GOTO_ERROR(FAIL, "MPI_Send failed", mrc);
}