* make gm wire-up endian safe
This commit was SVN r9179.
Этот коммит содержится в:
родитель
d9fd35d399
Коммит
579e74290f
@ -422,6 +422,7 @@ mca_btl_gm_modex_send(void)
|
|||||||
for (i = 0; i < mca_btl_gm_component.gm_num_btls; i++) {
|
for (i = 0; i < mca_btl_gm_component.gm_num_btls; i++) {
|
||||||
mca_btl_gm_module_t *btl = mca_btl_gm_component.gm_btls[i];
|
mca_btl_gm_module_t *btl = mca_btl_gm_component.gm_btls[i];
|
||||||
addrs[i] = btl->gm_addr;
|
addrs[i] = btl->gm_addr;
|
||||||
|
MCA_BTL_GM_ADDR_HTON(addrs[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rc = mca_pml_base_modex_send (&mca_btl_gm_component.super.btl_version, addrs, size);
|
rc = mca_pml_base_modex_send (&mca_btl_gm_component.super.btl_version, addrs, size);
|
||||||
|
@ -25,6 +25,11 @@
|
|||||||
#include "ompi/mca/btl/btl.h"
|
#include "ompi/mca/btl/btl.h"
|
||||||
#include "btl_gm_frag.h"
|
#include "btl_gm_frag.h"
|
||||||
#include "btl_gm.h"
|
#include "btl_gm.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_ARPA_INET_H
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@ -43,7 +48,26 @@ struct mca_btl_gm_addr_t {
|
|||||||
unsigned int port_id;
|
unsigned int port_id;
|
||||||
};
|
};
|
||||||
typedef struct mca_btl_gm_addr_t mca_btl_gm_addr_t;
|
typedef struct mca_btl_gm_addr_t mca_btl_gm_addr_t;
|
||||||
|
|
||||||
|
#if GM_API_VERSION > 0x200
|
||||||
|
#define MCA_BTL_GM_ADDR_HTON(addr) \
|
||||||
|
addr.global_id = htonl(addr.global_id); \
|
||||||
|
addr.node_id = htonl(addr.node_id); \
|
||||||
|
addr.port_id = htonl(addr.port_id);
|
||||||
|
|
||||||
|
#define MCA_BTL_GM_ADDR_NTOH(addr) \
|
||||||
|
addr.global_id = ntohl(addr.global_id); \
|
||||||
|
addr.node_id = ntohl(addr.node_id); \
|
||||||
|
addr.port_id = ntohl(addr.port_id);
|
||||||
|
#else
|
||||||
|
#define MCA_BTL_GM_ADDR_HTON(addr) \
|
||||||
|
addr.node_id = htonl(addr.node_id); \
|
||||||
|
addr.port_id = htonl(addr.port_id);
|
||||||
|
|
||||||
|
#define MCA_BTL_GM_ADDR_NTOH(addr) \
|
||||||
|
addr.node_id = ntohl(addr.node_id); \
|
||||||
|
addr.port_id = ntohl(addr.port_id);
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An abstraction that represents a connection to a endpoint process.
|
* An abstraction that represents a connection to a endpoint process.
|
||||||
|
@ -102,7 +102,7 @@ mca_btl_gm_proc_t* mca_btl_gm_proc_create(ompi_proc_t* ompi_proc)
|
|||||||
{
|
{
|
||||||
mca_btl_gm_proc_t* gm_proc = NULL;
|
mca_btl_gm_proc_t* gm_proc = NULL;
|
||||||
size_t size;
|
size_t size;
|
||||||
int rc;
|
int rc, i;
|
||||||
|
|
||||||
/* Check if we have already created a GM proc
|
/* Check if we have already created a GM proc
|
||||||
* structure for this ompi process */
|
* structure for this ompi process */
|
||||||
@ -148,6 +148,11 @@ mca_btl_gm_proc_t* mca_btl_gm_proc_create(ompi_proc_t* ompi_proc)
|
|||||||
OBJ_RELEASE(gm_proc);
|
OBJ_RELEASE(gm_proc);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0 ; i < gm_proc->proc_addr_count; ++i) {
|
||||||
|
MCA_BTL_GM_ADDR_NTOH(gm_proc->proc_addrs[i]);
|
||||||
|
}
|
||||||
|
|
||||||
return gm_proc;
|
return gm_proc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user