HDassert( (cache_ptr)->magic == H5C__H5C_T_MAGIC );                 \
    HDassert( (entry_ptr) );                                            \
                                                                        \
    /* Remove entry and insert at the head of the list. */              \
    H5C__COLL_DLL_REMOVE((entry_ptr), (cache_ptr)->coll_head_ptr,       \
                         (cache_ptr)->coll_tail_ptr,                    \
                         (cache_ptr)->coll_list_len,                    \
                         (cache_ptr)->coll_list_size,                   \
                         (fail_val))                                    \
                                                                        \
        H5C__COLL_DLL_PREPEND((entry_ptr), (cache_ptr)->coll_head_ptr,  \
                              (cache_ptr)->coll_tail_ptr,               \
                              (cache_ptr)->coll_list_len,               \
                              (cache_ptr)->coll_list_size,              \
                              (fail_val))                               \
    H5C__COLL_DLL_PREPEND((entry_ptr), (cache_ptr)->coll_head_ptr,      \
                          (cache_ptr)->coll_tail_ptr,                   \
                          (cache_ptr)->coll_list_len,                   \
                          (cache_ptr)->coll_list_size,                  \
                          (fail_val))                                   \
                                                                        \
} /* H5C__MOVE_TO_TOP_IN_COLL_LIST */
#endif /* H5_HAVE_PARALLEL */
/****************************/
/* Package Private Typedefs */
/****************************/
/****************************************************************************
#ifdef H5_HAVE_PARALLEL
typedef struct H5C_collective_write_t {
    size_t length;
    hbool_t free_buf;
    void *buf;
    haddr_t offset;
} H5C_collective_write_t;
#endif /* H5_HAVE_PARALLEL */
/*****************************/
/* Package Private Variables */
/*****************************/
/******************************/
/* Package Private Prototypes */
/******************************/
H5_DLL herr_t H5C__flush_single_entry(const H5F_t *f, hid_t dxpl_id,
    H5C_cache_entry_t *entry_ptr, unsigned flags, int64_t *entry_size_change_ptr, H5SL_t *collective_write_list);
#ifdef H5_HAVE_PARALLEL
H5_DLL herr_t H5C_collective_write(H5F_t *f, hid_t dxpl_id, H5SL_t *collective_write_list);
H5_DLL herr_t H5C_collective_write_free(void *_item, void *key, void *op_data);
#endif /* H5_HAVE_PARALLEL */
#endif /* _H5Cpkg_H */