diff --git a/ompi/mca/bml/bml.h b/ompi/mca/bml/bml.h index 718e6de5d1..4f401f891c 100644 --- a/ompi/mca/bml/bml.h +++ b/ompi/mca/bml/bml.h @@ -1,3 +1,4 @@ +/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */ /* * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana * University Research and Technology @@ -10,7 +11,7 @@ * Copyright (c) 2004-2006 The Regents of the University of California. * All rights reserved. * Copyright (c) 2008 Cisco Systems, Inc. All rights reserved. - * Copyright (c) 2012 Los Alamos National Security, LLC. All rights + * Copyright (c) 2012-2014 Los Alamos National Security, LLC. All rights * reserved. * $COPYRIGHT$ * @@ -307,22 +308,26 @@ static inline int mca_bml_base_sendi( mca_bml_base_btl_t* bml_btl, payload_size, order, flags, tag, descriptor); } -static inline int mca_bml_base_put( mca_bml_base_btl_t* bml_btl, - mca_btl_base_descriptor_t* des) +static inline int mca_bml_base_put( mca_bml_base_btl_t* bml_btl, void *local_address, uint64_t remote_address, + struct mca_btl_base_registration_handle_t *local_handle, + struct mca_btl_base_registration_handle_t *remote_handle, size_t size, + int flags, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbdata) { mca_btl_base_module_t* btl = bml_btl->btl; - des->des_context = (void*) bml_btl; - return btl->btl_put( btl, bml_btl->btl_endpoint, des ); + return btl->btl_put( btl, bml_btl->btl_endpoint, local_address, remote_address, local_handle, + remote_handle, size, flags, cbfunc, (void *) bml_btl, cbdata); } -static inline int mca_bml_base_get( mca_bml_base_btl_t* bml_btl, - mca_btl_base_descriptor_t* des) +static inline int mca_bml_base_get( mca_bml_base_btl_t* bml_btl, void *local_address, uint64_t remote_address, + struct mca_btl_base_registration_handle_t *local_handle, + struct mca_btl_base_registration_handle_t *remote_handle, size_t size, + int flags, mca_btl_base_rdma_completion_fn_t cbfunc, void *cbdata) { mca_btl_base_module_t* btl = bml_btl->btl; - des->des_context = (void*) bml_btl; - return btl->btl_get( btl, bml_btl->btl_endpoint, des ); + return btl->btl_get( btl, bml_btl->btl_endpoint, local_address, remote_address, local_handle, + remote_handle, size, flags, cbfunc, (void *) bml_btl, cbdata); } @@ -344,22 +349,20 @@ static inline void mca_bml_base_prepare_src(mca_bml_base_btl_t* bml_btl, } } -static inline void mca_bml_base_prepare_dst(mca_bml_base_btl_t* bml_btl, - mca_mpool_base_registration_t* reg, - struct opal_convertor_t* conv, - uint8_t order, - size_t reserve, - size_t *size, - uint32_t flags, - mca_btl_base_descriptor_t** des) -{ +static inline void mca_bml_base_register_mem (mca_bml_base_btl_t* bml_btl, void *base, + size_t size, uint32_t flags, + mca_btl_base_registration_handle_t **handle) +{ mca_btl_base_module_t* btl = bml_btl->btl; - *des = btl->btl_prepare_dst( btl, bml_btl->btl_endpoint, reg, conv, - order, reserve, size, flags ); - if( OPAL_LIKELY((*des) != NULL) ) { - (*des)->des_context = (void*) bml_btl; - } + *handle = btl->btl_register_mem (btl, bml_btl->btl_endpoint, base, size, flags); +} + +static inline void mca_bml_base_deregister_mem (mca_bml_base_btl_t* bml_btl, mca_btl_base_registration_handle_t *handle) +{ + mca_btl_base_module_t* btl = bml_btl->btl; + + btl->btl_deregister_mem (btl, handle); } /*