1
1

fix shmem mmap build on solaris. thanks terry.

This commit was SVN r24805.
Этот коммит содержится в:
Samuel Gutierrez 2011-06-22 16:05:50 +00:00
родитель 856a9c43b1
Коммит 867df203bc

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

@ -39,9 +39,11 @@
#ifdef HAVE_STRING_H
#include <string.h>
#endif /* HAVE_STRING_H */
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif /* HAVE_NETDB_H */
#include "opal/constants.h"
#include "opal_stdint.h"
#include "opal/util/output.h"
#include "opal/util/path.h"
#include "opal/util/show_help.h"
@ -110,11 +112,11 @@ shmem_ds_reset(opal_shmem_ds_t *ds_buf)
OPAL_OUTPUT_VERBOSE(
(70, opal_shmem_base_output,
"%s: %s: shmem_ds_resetting "
"(opid: %lu id: %d, size: %"PRIsize_t", name: %s)\n",
"(opid: %lu id: %d, size: %lu, name: %s)\n",
mca_shmem_mmap_component.super.base_version.mca_type_name,
mca_shmem_mmap_component.super.base_version.mca_component_name,
(unsigned long)ds_buf->opid, ds_buf->seg_id, ds_buf->seg_size,
ds_buf->seg_name)
(unsigned long)ds_buf->opid, ds_buf->seg_id,
(unsigned long)ds_buf->seg_size, ds_buf->seg_name)
);
ds_buf->opid = 0;
@ -169,15 +171,15 @@ ds_copy(const opal_shmem_ds_t *from,
OPAL_OUTPUT_VERBOSE(
(70, opal_shmem_base_output,
"%s: %s: ds_copy complete "
"from: (opid: %lu, id: %d, size: %"PRIsize_t", "
"from: (opid: %lu, id: %d, size: %lu, "
"name: %s flags: 0x%02x) "
"to: (opid: %lu, id: %d, size: %"PRIsize_t", "
"to: (opid: %lu, id: %d, size: %lu, "
"name: %s flags: 0x%02x)\n",
mca_shmem_mmap_component.super.base_version.mca_type_name,
mca_shmem_mmap_component.super.base_version.mca_component_name,
(unsigned long)from->opid, from->seg_id, from->seg_size,
(unsigned long)from->opid, from->seg_id, (unsigned long)from->seg_size,
from->seg_name, from->flags, (unsigned long)to->opid, to->seg_id,
to->seg_size, to->seg_name, to->flags)
(unsigned long)to->seg_size, to->seg_name, to->flags)
);
return OPAL_SUCCESS;
@ -241,7 +243,8 @@ segment_create(opal_shmem_ds_t *ds_buf,
rc = OPAL_ERROR;
goto out;
}
else if (MAP_FAILED == (seg_hdrp = mmap(NULL, real_size,
else if (MAP_FAILED == (seg_hdrp = (opal_shmem_seg_hdr_t *)
mmap(NULL, real_size,
PROT_READ | PROT_WRITE, MAP_SHARED,
ds_buf->seg_id, 0))) {
int err = errno;
@ -278,11 +281,11 @@ segment_create(opal_shmem_ds_t *ds_buf,
OPAL_OUTPUT_VERBOSE(
(70, opal_shmem_base_output,
"%s: %s: create successful "
"(opid: %lu id: %d, size: %"PRIsize_t", name: %s)\n",
"(opid: %lu id: %d, size: %lu, name: %s)\n",
mca_shmem_mmap_component.super.base_version.mca_type_name,
mca_shmem_mmap_component.super.base_version.mca_component_name,
(unsigned long)ds_buf->opid, ds_buf->seg_id, ds_buf->seg_size,
ds_buf->seg_name)
(unsigned long)ds_buf->opid, ds_buf->seg_id,
(unsigned long)ds_buf->seg_size, ds_buf->seg_name)
);
}
@ -307,7 +310,7 @@ out:
/* an error occured, so invalidate the shmem object and munmap if needed */
if (OPAL_SUCCESS != rc) {
if (MAP_FAILED != seg_hdrp) {
munmap(seg_hdrp, real_size);
munmap((void *)seg_hdrp, real_size);
}
shmem_ds_reset(ds_buf);
}
@ -334,7 +337,7 @@ segment_attach(opal_shmem_ds_t *ds_buf)
"open(2)", "", strerror(err), err);
return NULL;
}
else if (MAP_FAILED == (ds_buf->seg_base_addr =
else if (MAP_FAILED == (ds_buf->seg_base_addr = (unsigned char *)
mmap(NULL, ds_buf->seg_size,
PROT_READ | PROT_WRITE, MAP_SHARED,
ds_buf->seg_id, 0))) {
@ -372,11 +375,11 @@ segment_attach(opal_shmem_ds_t *ds_buf)
OPAL_OUTPUT_VERBOSE(
(70, opal_shmem_base_output,
"%s: %s: attach successful "
"(opid: %lu id: %d, size: %"PRIsize_t", name: %s)\n",
"(opid: %lu id: %d, size: %lu, name: %s)\n",
mca_shmem_mmap_component.super.base_version.mca_type_name,
mca_shmem_mmap_component.super.base_version.mca_component_name,
(unsigned long)ds_buf->opid, ds_buf->seg_id, ds_buf->seg_size,
ds_buf->seg_name)
(unsigned long)ds_buf->opid, ds_buf->seg_id,
(unsigned long)ds_buf->seg_size, ds_buf->seg_name)
);
/* update returned base pointer with an offset that hides our stuff */
@ -392,14 +395,14 @@ segment_detach(opal_shmem_ds_t *ds_buf)
OPAL_OUTPUT_VERBOSE(
(70, opal_shmem_base_output,
"%s: %s: detaching "
"(opid: %lu id: %d, size: %"PRIsize_t", name: %s)\n",
"(opid: %lu id: %d, size: %lu, name: %s)\n",
mca_shmem_mmap_component.super.base_version.mca_type_name,
mca_shmem_mmap_component.super.base_version.mca_component_name,
(unsigned long)ds_buf->opid, ds_buf->seg_id, ds_buf->seg_size,
ds_buf->seg_name)
(unsigned long)ds_buf->opid, ds_buf->seg_id,
(unsigned long)ds_buf->seg_size, ds_buf->seg_name)
);
if (0 != munmap(ds_buf->seg_base_addr, ds_buf->seg_size)) {
if (0 != munmap((void *)ds_buf->seg_base_addr, ds_buf->seg_size)) {
int err = errno;
char hn[MAXHOSTNAMELEN];
gethostname(hn, MAXHOSTNAMELEN - 1);
@ -421,11 +424,12 @@ segment_unlink(opal_shmem_ds_t *ds_buf)
{
OPAL_OUTPUT_VERBOSE(
(70, opal_shmem_base_output,
"%s: %s: unlinking "
"(opid: %lu id: %d, size: %"PRIsize_t", name: %s)\n",
"%s: %s: unlinking"
"(opid: %lu id: %d, size: %lu, name: %s)\n",
mca_shmem_mmap_component.super.base_version.mca_type_name,
mca_shmem_mmap_component.super.base_version.mca_component_name,
(unsigned long)ds_buf->opid, ds_buf->seg_id, ds_buf->seg_size,
(unsigned long)ds_buf->opid, ds_buf->seg_id,
(unsigned long)ds_buf->seg_size,
ds_buf->seg_name)
);