1
1

Added a new macro for preparing send descriptors.

This commit was SVN r2586.
Этот коммит содержится в:
Sayantan Sur 2004-09-10 01:34:55 +00:00
родитель 6eb4391a3c
Коммит 85ea6e24dc
2 изменённых файлов: 26 добавлений и 3 удалений

Просмотреть файл

@ -453,6 +453,8 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
{
int rc, i;
VAPI_ret_t ret;
VAPI_qp_num_t qp_num;
ib_buffer_t *ib_buf_ptr;
/* Establish Reliable Connection */
rc = mca_ptl_ib_rc_qp_init(ib_state->nic,
@ -479,6 +481,8 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
return OMPI_ERR_OUT_OF_RESOURCE;
}
qp_num = peer_conn->rres->qp_num;
/* Register the buffers */
for(i = 0; i < NUM_IB_SEND_BUF; i++) {
@ -488,12 +492,14 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
if(rc != OMPI_SUCCESS) {
return OMPI_ERROR;
}
ib_buf_ptr = &peer_conn->lres->send[i];
IB_PREPARE_SEND_DESC(ib_buf_ptr, qp_num);
}
for(i = 0; i < NUM_IB_RECV_BUF; i++) {
ib_buffer_t *ib_buf_ptr;
rc = mca_ptl_ib_register_mem(ib_state->nic, ib_state->ptag,
(void*) peer_conn->lres->recv[i].buf,
4096, &peer_conn->lres->recv[i].hndl);
@ -501,7 +507,9 @@ int mca_ptl_ib_peer_connect(mca_ptl_ib_state_t *ib_state,
return OMPI_ERROR;
}
IB_PREPARE_RECV_DESC((&peer_conn->lres->recv[i]));
ib_buf_ptr = &peer_conn->lres->recv[i];
IB_PREPARE_RECV_DESC(ib_buf_ptr);
}
/* Post receives */

Просмотреть файл

@ -151,6 +151,21 @@ typedef struct mca_ptl_ib_peer_conn_t mca_ptl_ib_peer_conn_t;
(MT_virt_addr_t) ib_buf_ptr->buf; \
}
#define IB_PREPARE_SEND_DESC(ib_buf_ptr, qp) { \
ib_buf_ptr->desc.sr.comp_type = VAPI_SIGNALED; \
ib_buf_ptr->desc.sr.opcode = VAPI_SEND; \
ib_buf_ptr->desc.sr.remote_qkey = 0; \
ib_buf_ptr->desc.sr.remote_qp = qp; \
ib_buf_ptr->desc.sr.id = (VAPI_virt_addr_t) \
(MT_virt_addr_t) ib_buf_ptr; \
ib_buf_ptr->desc.rr.sg_lst_len = 1; \
ib_buf_ptr->desc.rr.sg_lst_p = &ib_buf_ptr->desc.sg_entry; \
ib_buf_ptr->desc.sg_entry.len = 4096; \
ib_buf_ptr->desc.sg_entry.lkey = ib_buf_ptr->hndl.lkey; \
ib_buf_ptr->desc.sg_entry.addr = (VAPI_virt_addr_t) \
(MT_virt_addr_t) ib_buf_ptr->buf; \
}
int mca_ptl_ib_init_module(mca_ptl_ib_state_t*, int);
int mca_ptl_ib_get_num_hcas(uint32_t*);
int mca_ptl_ib_init_peer(mca_ptl_ib_state_t*, mca_ptl_ib_peer_conn_t*);