Lines Matching refs:seg
905 rsmseg_handle_t *seg; in rsm_memseg_export_destroy() local
916 seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_destroy()
918 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
919 if (seg->rsmseg_pollfd_refcnt) { in rsm_memseg_export_destroy()
920 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
926 seg->rsmseg_state = EXPORT_BIND; in rsm_memseg_export_destroy()
928 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
930 (void) close(seg->rsmseg_fd); in rsm_memseg_export_destroy()
931 mutex_destroy(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
932 free((void *)seg); in rsm_memseg_export_destroy()
945 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_rebind() local
952 if (!seg) { in rsm_memseg_export_rebind()
971 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_rebind()
972 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_REBIND, &msg) < 0) { in rsm_memseg_export_rebind()
973 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_rebind()
979 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_rebind()
995 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_publish() local
1006 if (!seg) { in rsm_memseg_export_publish()
1018 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1019 if (seg->rsmseg_state != EXPORT_BIND) { in rsm_memseg_export_publish()
1020 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1033 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1043 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_PUBLISH, &msg) < 0) { in rsm_memseg_export_publish()
1044 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1050 seg->rsmseg_keyid = msg.key; in rsm_memseg_export_publish()
1051 seg->rsmseg_state = EXPORT_PUBLISH; in rsm_memseg_export_publish()
1052 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1068 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_unpublish() local
1073 if (!seg) { in rsm_memseg_export_unpublish()
1079 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1080 if (seg->rsmseg_state != EXPORT_PUBLISH) { in rsm_memseg_export_unpublish()
1081 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1084 seg->rsmseg_keyid)); in rsm_memseg_export_unpublish()
1088 msg.key = seg->rsmseg_keyid; in rsm_memseg_export_unpublish()
1089 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_UNPUBLISH, &msg) < 0) { in rsm_memseg_export_unpublish()
1090 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1096 seg->rsmseg_state = EXPORT_BIND; in rsm_memseg_export_unpublish()
1097 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1112 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_republish() local
1117 if (!seg) { in rsm_memseg_export_republish()
1123 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1124 if (seg->rsmseg_state != EXPORT_PUBLISH) { in rsm_memseg_export_republish()
1125 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1132 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1138 msg.key = seg->rsmseg_keyid; in rsm_memseg_export_republish()
1142 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_REPUBLISH, &msg) < 0) { in rsm_memseg_export_republish()
1143 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1148 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1301 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_disconnect() local
1307 if (!seg) { in rsm_memseg_import_disconnect()
1313 if (seg->rsmseg_state != IMPORT_CONNECT) { in rsm_memseg_import_disconnect()
1314 if (seg->rsmseg_flags & RSM_IMPLICIT_MAP) { in rsm_memseg_import_disconnect()
1328 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1329 if (seg->rsmseg_pollfd_refcnt) { in rsm_memseg_import_disconnect()
1330 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1335 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1337 e = seg->rsmseg_ops->rsm_memseg_import_disconnect(im_memseg); in rsm_memseg_import_disconnect()
1340 (void) close(seg->rsmseg_fd); in rsm_memseg_import_disconnect()
1341 mutex_destroy(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1342 free((void *)seg); in rsm_memseg_import_disconnect()
1356 __rsm_import_verify_access(rsmseg_handle_t *seg, in __rsm_import_verify_access() argument
1368 if (!seg) { in __rsm_import_verify_access()
1395 if (seg->rsmseg_state != IMPORT_CONNECT && in __rsm_import_verify_access()
1396 seg->rsmseg_state != IMPORT_MAP) { in __rsm_import_verify_access()
1403 if (seg->rsmseg_state == IMPORT_CONNECT) { in __rsm_import_verify_access()
1404 error = __rsm_import_implicit_map(seg, RSM_IOTYPE_PUTGET); in __rsm_import_verify_access()
1412 if ((seg->rsmseg_perm & perm) != perm) { in __rsm_import_verify_access()
1418 if (seg->rsmseg_state == IMPORT_MAP) { in __rsm_import_verify_access()
1419 if ((offset < seg->rsmseg_mapoffset) || in __rsm_import_verify_access()
1420 (offset + len > seg->rsmseg_mapoffset + in __rsm_import_verify_access()
1421 seg->rsmseg_maplen)) { in __rsm_import_verify_access()
1427 if ((len + offset) > seg->rsmseg_size) { in __rsm_import_verify_access()
1434 if ((seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) && in __rsm_import_verify_access()
1435 (seg->rsmseg_barrier == NULL)) { in __rsm_import_verify_access()
1448 __rsm_import_implicit_map(rsmseg_handle_t *seg, int iotype) in __rsm_import_implicit_map() argument
1459 mapping_reqd = seg->rsmseg_controller->cntr_lib_attr-> in __rsm_import_implicit_map()
1462 mapping_reqd = seg->rsmseg_controller->cntr_lib_attr-> in __rsm_import_implicit_map()
1467 va = mmap(NULL, seg->rsmseg_size, prot, in __rsm_import_implicit_map()
1468 flag, seg->rsmseg_fd, 0); in __rsm_import_implicit_map()
1487 seg->rsmseg_vaddr = va; in __rsm_import_implicit_map()
1488 seg->rsmseg_maplen = seg->rsmseg_size; in __rsm_import_implicit_map()
1489 seg->rsmseg_mapoffset = 0; in __rsm_import_implicit_map()
1490 seg->rsmseg_state = IMPORT_MAP; in __rsm_import_implicit_map()
1491 seg->rsmseg_flags |= RSM_IMPLICIT_MAP; in __rsm_import_implicit_map()
1506 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get8() local
1512 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt, in rsm_memseg_import_get8()
1516 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get8()
1517 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get8()
1519 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get8()
1527 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get8()
1547 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get16() local
1553 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*2, in rsm_memseg_import_get16()
1557 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get16()
1558 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get16()
1560 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get16()
1568 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get16()
1589 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get32() local
1595 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*4, in rsm_memseg_import_get32()
1599 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get32()
1600 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get32()
1602 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get32()
1610 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get32()
1630 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get64() local
1636 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*8, in rsm_memseg_import_get64()
1640 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get64()
1641 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get64()
1643 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get64()
1651 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get64()
1671 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get() local
1677 e = __rsm_import_verify_access(seg, offset, (caddr_t)dst_addr, length, in rsm_memseg_import_get()
1681 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get()
1682 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get()
1684 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get()
1692 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get()
1711 rsmseg_handle_t *seg; in rsm_memseg_import_getv() local
1725 seg = (rsmseg_handle_t *)sg_io->remote_handle; in rsm_memseg_import_getv()
1726 if (seg == NULL) { in rsm_memseg_import_getv()
1732 cntrl = (rsm_controller_t *)seg->rsmseg_controller; in rsm_memseg_import_getv()
1746 if (seg->rsmseg_state == IMPORT_CONNECT) { in rsm_memseg_import_getv()
1747 e = __rsm_import_implicit_map(seg, RSM_IOTYPE_SCATGATH); in rsm_memseg_import_getv()
1805 e = rsm_intr_signal_post(seg, sigpost_flags); in rsm_memseg_import_getv()
1828 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put8() local
1836 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt, in rsm_memseg_import_put8()
1840 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put8()
1841 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put8()
1843 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put8()
1851 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put8()
1871 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put16() local
1879 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*2, in rsm_memseg_import_put16()
1883 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put16()
1884 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put16()
1886 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put16()
1894 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put16()
1915 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put32() local
1923 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*4, in rsm_memseg_import_put32()
1927 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put32()
1928 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put32()
1930 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put32()
1938 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put32()
1958 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put64() local
1966 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*8, in rsm_memseg_import_put64()
1970 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put64()
1971 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put64()
1973 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put64()
1981 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put64()
2001 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put() local
2007 e = __rsm_import_verify_access(seg, offset, (caddr_t)src_addr, length, in rsm_memseg_import_put()
2011 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put()
2012 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put()
2014 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put()
2022 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put()
2041 rsmseg_handle_t *seg; in rsm_memseg_import_putv() local
2056 seg = (rsmseg_handle_t *)sg_io->remote_handle; in rsm_memseg_import_putv()
2057 if (seg == NULL) { in rsm_memseg_import_putv()
2063 cntrl = (rsm_controller_t *)seg->rsmseg_controller; in rsm_memseg_import_putv()
2078 if (seg->rsmseg_state == IMPORT_CONNECT) { in rsm_memseg_import_putv()
2079 e = __rsm_import_implicit_map(seg, RSM_IOTYPE_SCATGATH); in rsm_memseg_import_putv()
2137 e = rsm_intr_signal_post(seg, sigpost_flags); in rsm_memseg_import_putv()
2162 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_map() local
2170 if (!seg) { in rsm_memseg_import_map()
2185 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2187 if (seg->rsmseg_state == IMPORT_MAP) { in rsm_memseg_import_map()
2188 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2195 if (seg->rsmseg_state != IMPORT_CONNECT) { in rsm_memseg_import_map()
2196 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2204 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2211 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2215 if (offset + length > seg->rsmseg_size) { in rsm_memseg_import_map()
2218 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2243 va = mmap(*address, length, prot, flag, seg->rsmseg_fd, offset); in rsm_memseg_import_map()
2249 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2273 seg->rsmseg_vaddr = va; in rsm_memseg_import_map()
2274 seg->rsmseg_maplen = length; in rsm_memseg_import_map()
2275 seg->rsmseg_mapoffset = offset; in rsm_memseg_import_map()
2276 seg->rsmseg_state = IMPORT_MAP; in rsm_memseg_import_map()
2278 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2294 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_unmap() local
2299 if (!seg) { in rsm_memseg_import_unmap()
2305 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_import_unmap()
2306 if (seg->rsmseg_state != IMPORT_MAP) { in rsm_memseg_import_unmap()
2307 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_unmap()
2311 seg->rsmseg_mapoffset = 0; /* reset the offset */ in rsm_memseg_import_unmap()
2312 seg->rsmseg_state = IMPORT_CONNECT; in rsm_memseg_import_unmap()
2313 seg->rsmseg_flags &= ~RSM_IMPLICIT_MAP; in rsm_memseg_import_unmap()
2314 (void) munmap(seg->rsmseg_vaddr, seg->rsmseg_maplen); in rsm_memseg_import_unmap()
2316 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_unmap()
2333 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_init_barrier() local
2339 if (!seg) { in rsm_memseg_import_init_barrier()
2351 bar->rsmbar_seg = seg; in rsm_memseg_import_init_barrier()
2353 seg->rsmseg_barrier = barrier; /* used in put/get fns */ in rsm_memseg_import_init_barrier()
2358 return (seg->rsmseg_ops->rsm_memseg_import_init_barrier(im_memseg, in rsm_memseg_import_init_barrier()
2492 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get_mode() local
2497 if (seg) { in rsm_memseg_import_get_mode()
2498 *mode = seg->rsmseg_barmode; in rsm_memseg_import_get_mode()
2502 return (seg->rsmseg_ops->rsm_memseg_import_get_mode(im_memseg, in rsm_memseg_import_get_mode()
2517 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_set_mode() local
2521 if (seg) { in rsm_memseg_import_set_mode()
2524 seg->rsmseg_barmode = mode; in rsm_memseg_import_set_mode()
2528 return (seg->rsmseg_ops->rsm_memseg_import_set_mode( in rsm_memseg_import_set_mode()
2548 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_intr_signal_post() local
2555 if (!seg) { in rsm_intr_signal_post()
2561 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_RING_BELL, &msg) < 0) { in rsm_intr_signal_post()
2576 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_intr_signal_wait() local
2583 if (!seg) { in rsm_intr_signal_wait()
2589 fds.fd = seg->rsmseg_fd; in rsm_intr_signal_wait()
2592 rnum = seg->rsmseg_rnum; in rsm_intr_signal_wait()
2782 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_get_pollfd() local
2787 if (!seg) { in rsm_memseg_get_pollfd()
2793 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_get_pollfd()
2795 poll_fd->fd = seg->rsmseg_fd; in rsm_memseg_get_pollfd()
2797 seg->rsmseg_pollfd_refcnt++; in rsm_memseg_get_pollfd()
2798 if (seg->rsmseg_pollfd_refcnt == 1) { in rsm_memseg_get_pollfd()
2800 err = _rsm_insert_pollfd_table(seg->rsmseg_fd, in rsm_memseg_get_pollfd()
2801 seg->rsmseg_rnum); in rsm_memseg_get_pollfd()
2804 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_get_pollfd()
2821 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_release_pollfd() local
2826 if (!seg) { in rsm_memseg_release_pollfd()
2832 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_release_pollfd()
2834 if (seg->rsmseg_pollfd_refcnt) { in rsm_memseg_release_pollfd()
2835 seg->rsmseg_pollfd_refcnt--; in rsm_memseg_release_pollfd()
2836 if (seg->rsmseg_pollfd_refcnt == 0) { in rsm_memseg_release_pollfd()
2838 _rsm_remove_pollfd_table(seg->rsmseg_fd); in rsm_memseg_release_pollfd()
2842 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_release_pollfd()