Please, help us to better serve our user community by answering the following short survey: https://www.hdfgroup.org/website-survey/
HDF5  1.14.4.3
API Reference
 
Loading...
Searching...
No Matches
H5FDioc_priv.h File Reference
#include <stdatomic.h>
#include "H5private.h"
#include "H5CXprivate.h"
#include "H5Dprivate.h"
#include "H5Eprivate.h"
#include "H5FDioc.h"
#include "H5Iprivate.h"
#include "H5MMprivate.h"
#include "H5Pprivate.h"
#include "H5subfiling_common.h"
#include "H5subfiling_err.h"
#include "mercury_thread.h"
#include "mercury_thread_mutex.h"
#include "mercury_thread_pool.h"

Data Structures

struct  ioc_io_queue_entry_t
 
struct  ioc_io_queue_t
 
struct  io_req_t
 

Macros

#define H5FD_IOC__IO_Q_ENTRY_MAGIC   0x1357
 
#define H5FD_IOC__Q_APPEND(q_ptr, entry_ptr)
 
#define H5FD_IOC__Q_REMOVE(q_ptr, entry_ptr)
 
#define H5FD_IOC__IO_Q_MAGIC   0x2468
 

Functions

H5_DLL int initialize_ioc_threads (void *_sf_context)
 
H5_DLL int finalize_ioc_threads (void *_sf_context)
 
H5_DLL herr_t ioc__write_independent_async (int64_t context_id, int64_t offset, int64_t elements, const void *data, io_req_t **io_req)
 
H5_DLL herr_t ioc__read_independent_async (int64_t context_id, int64_t offset, int64_t elements, void *data, io_req_t **io_req)
 
H5_DLL herr_t ioc__async_completion (MPI_Request *mpi_reqs, size_t num_reqs)
 
H5_DLL int wait_for_thread_main (void)
 

Variables

int * H5FD_IOC_tag_ub_val_ptr
 

Macro Definition Documentation

◆ H5FD_IOC__IO_Q_ENTRY_MAGIC

#define H5FD_IOC__IO_Q_ENTRY_MAGIC   0x1357

◆ H5FD_IOC__IO_Q_MAGIC

#define H5FD_IOC__IO_Q_MAGIC   0x2468

◆ H5FD_IOC__Q_APPEND

#define H5FD_IOC__Q_APPEND (   q_ptr,
  entry_ptr 
)
Value:
do { \
assert(q_ptr); \
assert((q_ptr)->magic == H5FD_IOC__IO_Q_MAGIC); \
assert((((q_ptr)->q_len == 0) && ((q_ptr)->q_head == NULL) && ((q_ptr)->q_tail == NULL)) || \
(((q_ptr)->q_len > 0) && ((q_ptr)->q_head != NULL) && ((q_ptr)->q_tail != NULL))); \
assert(entry_ptr); \
assert((entry_ptr)->magic == H5FD_IOC__IO_Q_ENTRY_MAGIC); \
assert((entry_ptr)->next == NULL); \
assert((entry_ptr)->prev == NULL); \
assert((entry_ptr)->in_progress == false); \
\
if ( ((q_ptr)->q_head) == NULL ) \
{ \
((q_ptr)->q_head) = (entry_ptr); \
((q_ptr)->q_tail) = (entry_ptr); \
} \
else \
{ \
((q_ptr)->q_tail)->next = (entry_ptr); \
(entry_ptr)->prev = ((q_ptr)->q_tail); \
((q_ptr)->q_tail) = (entry_ptr); \
} \
((q_ptr)->q_len)++; \
} while ( false ) /* H5FD_IOC__Q_APPEND() */
#define H5FD_IOC__IO_Q_ENTRY_MAGIC
Definition H5FDioc_priv.h:76
#define H5FD_IOC__IO_Q_MAGIC
Definition H5FDioc_priv.h:361

◆ H5FD_IOC__Q_REMOVE

#define H5FD_IOC__Q_REMOVE (   q_ptr,
  entry_ptr 
)

Function Documentation

◆ finalize_ioc_threads()

H5_DLL int finalize_ioc_threads ( void *  _sf_context)

◆ initialize_ioc_threads()

H5_DLL int initialize_ioc_threads ( void *  _sf_context)

◆ ioc__async_completion()

H5_DLL herr_t ioc__async_completion ( MPI_Request *  mpi_reqs,
size_t  num_reqs 
)

◆ ioc__read_independent_async()

H5_DLL herr_t ioc__read_independent_async ( int64_t  context_id,
int64_t  offset,
int64_t  elements,
void *  data,
io_req_t **  io_req 
)

◆ ioc__write_independent_async()

H5_DLL herr_t ioc__write_independent_async ( int64_t  context_id,
int64_t  offset,
int64_t  elements,
const void *  data,
io_req_t **  io_req 
)

◆ wait_for_thread_main()

H5_DLL int wait_for_thread_main ( void  )

Variable Documentation

◆ H5FD_IOC_tag_ub_val_ptr

int* H5FD_IOC_tag_ub_val_ptr
extern