/** * Detects whether two memory segments intersect. * * @param[in] reg_entry the registration entry * @param[in] buf starting address for the contiguous memory region * @param[in] len length of the contiguous memory region * * @pre NULL != reg_entry * @pre NULL != buf * @pre len >= 0 * * @return RR_SUCCESS on success */ static reg_return_t reg_entry_intersects(reg_entry_t *reg_entry, void *buf, size_t len) { /* preconditions */ assert(NULL != reg_entry); assert(NULL != buf); assert(len >= 0); return seg_intersects( reg_entry->buf, reg_entry->len, buf, len); }
/** * Detects whether two memory segments intersect. * * @param[in] reg_entry the registration entry * @param[in] buf starting address for the contiguous memory region * @param[in] len length of the contiguous memory region * * @pre NULL != reg_entry * @pre NULL != buf * @pre len >= 0 * * @return RR_SUCCESS on success */ STATIC reg_return_t reg_entry_intersects(reg_entry_t *reg_entry, void *buf, int len) { #if DEBUG printf("[%d] reg_entry_intersects(reg_entry=%p, buf=%p, len=%d)\n", g_state.rank, reg_entry, buf, len); #endif /* preconditions */ COMEX_ASSERT(NULL != reg_entry); COMEX_ASSERT(NULL != buf); COMEX_ASSERT(len >= 0); return seg_intersects( reg_entry->buf, reg_entry->len, buf, len); }
/** * Detects whether two dmapp segments intersect. * * @param[in] first the original registration entry * @param[in] second segment to test against * * @return RR_SUCCESS on success */ static reg_return_t dmapp_seg_intersects(dmapp_seg_desc_t first, dmapp_seg_desc_t second) { return seg_intersects(first.addr, first.len, second.addr, second.len); }