diff options
author | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-08-15 00:30:21 (GMT) |
---|---|---|
committer | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-08-15 00:30:21 (GMT) |
commit | ad13ea65abf246f25841f1bb32ee232c1767b9df (patch) | |
tree | 0ced53d37b2689643234f6919cc5f101bc905081 /src/H5FPprivate.h | |
parent | ef90db21a40b8892b79991ecb66b29b305e102de (diff) | |
download | hdf5-ad13ea65abf246f25841f1bb32ee232c1767b9df.zip hdf5-ad13ea65abf246f25841f1bb32ee232c1767b9df.tar.gz hdf5-ad13ea65abf246f25841f1bb32ee232c1767b9df.tar.bz2 |
[svn-r7367] Purpose:
Update
Description:
Added an extra flag to the clear functions that triggers a "destroy"
of the object being cleared if necessary. This is a fix for the
FPHDF5 stuff which had an object sticking around after it was
cleared. (In FPHDF5, some processes are in charge of destroying the
object, but all processes might actually allocate the object.)
Platforms tested:
AIX (Copper: Fortran & C++)
Linux (Verbena: Fortran & C++)
IRIX (Modi4: Parallel & Fortran)
(Sol is down)
Misc. update:
Diffstat (limited to 'src/H5FPprivate.h')
-rw-r--r-- | src/H5FPprivate.h | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/H5FPprivate.h b/src/H5FPprivate.h index 5ae04ca..0bc03c3 100644 --- a/src/H5FPprivate.h +++ b/src/H5FPprivate.h @@ -55,7 +55,8 @@ typedef enum { /* Allocation Requests */ H5FP_REQ_ALLOC, /* Allocate a region of metadata */ - H5FP_REQ_FREE /* Free a region of metadata */ + H5FP_REQ_FREE, /* Free a region of metadata */ + H5FP_REQ_UPDATE_EOMA_EOSDA /* Update the EOMA and EOSDA information */ } H5FP_req_t; /*===----------------------------------------------------------------------=== @@ -186,7 +187,7 @@ typedef struct { hsize_t threshold; /* Alignment threshold */ 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 */ + haddr_t oid; /* Buffer to store OID of object */ } H5FP_request_t; extern MPI_Datatype H5FP_request; /* MPI datatype for the H5FP_request obj */ @@ -240,9 +241,6 @@ typedef struct { 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) - /* SAP specific variables */ extern MPI_Comm H5FP_SAP_COMM; /* Comm we use: Supplied by user */ extern MPI_Comm H5FP_SAP_BARRIER_COMM; /* Comm if you want to do a barrier */ @@ -268,10 +266,10 @@ extern herr_t H5FP_request_open(H5FP_obj_t obj_type, hsize_t alignment, unsigned *file_id, unsigned *req_id); -extern herr_t H5FP_request_lock(unsigned sap_file_id, unsigned char *mdata, +extern herr_t H5FP_request_lock(unsigned sap_file_id, hobj_ref_t oid, H5FP_lock_t rw_lock, int last, unsigned *req_id, H5FP_status_t *status); -extern herr_t H5FP_request_release_lock(unsigned sap_file_id, unsigned char *mdata, +extern herr_t H5FP_request_release_lock(unsigned sap_file_id, hobj_ref_t oid, int last, unsigned *req_id, H5FP_status_t *status); extern herr_t H5FP_request_read_metadata(H5FD_t *file, unsigned sap_file_id, hid_t dxpl_id, @@ -291,7 +289,11 @@ extern herr_t H5FP_request_allocate(H5FD_t *file, H5FD_mem_t mem_type, hsize_t size, haddr_t *addr, haddr_t *eoa, unsigned *req_id, H5FP_status_t *status); -extern herr_t H5FP_request_free(H5FD_t *file, unsigned *req_id, H5FP_status_t *status); +extern 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); +extern herr_t H5FP_request_update_eoma_eosda(H5FD_t *file, unsigned *req_id, + H5FP_status_t *status); /* NOTE: Don't use these functions outside of the H5FP* modules! */ extern herr_t H5FP_send_metadata(const char *mdata, int len, int to); |