int mca_rcache_vma_find(struct mca_rcache_base_module_t* rcache, void* addr, size_t size, mca_mpool_base_registration_t **reg) { void* base_addr; void* bound_addr; if(size == 0) { return OMPI_ERROR; } base_addr = down_align_addr(addr, mca_mpool_base_page_size_log); bound_addr = up_align_addr((void*) ((unsigned long) addr + size - 1), mca_mpool_base_page_size_log); *reg = mca_rcache_vma_tree_find((mca_rcache_vma_module_t*)rcache, (unsigned char*)base_addr, (unsigned char*)bound_addr); return OMPI_SUCCESS; }
int mca_rcache_vma_find(struct mca_rcache_base_module_t* rcache, void* addr, size_t size, mca_mpool_base_registration_t **reg) { int rc; unsigned char* bound_addr; if(size == 0) { return OMPI_ERROR; } bound_addr = addr + size - 1; /* Check to ensure that the cache is valid */ if (OPAL_UNLIKELY(opal_memory_changed() && NULL != opal_memory->memoryc_process && OPAL_SUCCESS != (rc = opal_memory->memoryc_process()))) { return rc; } *reg = mca_rcache_vma_tree_find((mca_rcache_vma_module_t*)rcache, (unsigned char*)addr, bound_addr); return OMPI_SUCCESS; }