Lines Matching refs:seg

903 	rsmseg_handle_t *seg;  in rsm_memseg_export_destroy()  local
914 seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_destroy()
916 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
917 if (seg->rsmseg_pollfd_refcnt) { in rsm_memseg_export_destroy()
918 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
924 seg->rsmseg_state = EXPORT_BIND; in rsm_memseg_export_destroy()
926 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
928 (void) close(seg->rsmseg_fd); in rsm_memseg_export_destroy()
929 mutex_destroy(&seg->rsmseg_lock); in rsm_memseg_export_destroy()
930 free((void *)seg); in rsm_memseg_export_destroy()
943 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_rebind() local
950 if (!seg) { in rsm_memseg_export_rebind()
969 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_rebind()
970 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_REBIND, &msg) < 0) { in rsm_memseg_export_rebind()
971 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_rebind()
977 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_rebind()
993 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_publish() local
1004 if (!seg) { in rsm_memseg_export_publish()
1016 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1017 if (seg->rsmseg_state != EXPORT_BIND) { in rsm_memseg_export_publish()
1018 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1031 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1041 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_PUBLISH, &msg) < 0) { in rsm_memseg_export_publish()
1042 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1048 seg->rsmseg_keyid = msg.key; in rsm_memseg_export_publish()
1049 seg->rsmseg_state = EXPORT_PUBLISH; in rsm_memseg_export_publish()
1050 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_publish()
1066 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_unpublish() local
1071 if (!seg) { in rsm_memseg_export_unpublish()
1077 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1078 if (seg->rsmseg_state != EXPORT_PUBLISH) { in rsm_memseg_export_unpublish()
1079 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1082 seg->rsmseg_keyid)); in rsm_memseg_export_unpublish()
1086 msg.key = seg->rsmseg_keyid; in rsm_memseg_export_unpublish()
1087 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_UNPUBLISH, &msg) < 0) { in rsm_memseg_export_unpublish()
1088 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1094 seg->rsmseg_state = EXPORT_BIND; in rsm_memseg_export_unpublish()
1095 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_unpublish()
1110 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_export_republish() local
1115 if (!seg) { in rsm_memseg_export_republish()
1121 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1122 if (seg->rsmseg_state != EXPORT_PUBLISH) { in rsm_memseg_export_republish()
1123 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1130 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1136 msg.key = seg->rsmseg_keyid; in rsm_memseg_export_republish()
1140 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_REPUBLISH, &msg) < 0) { in rsm_memseg_export_republish()
1141 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1146 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_export_republish()
1299 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_disconnect() local
1305 if (!seg) { in rsm_memseg_import_disconnect()
1311 if (seg->rsmseg_state != IMPORT_CONNECT) { in rsm_memseg_import_disconnect()
1312 if (seg->rsmseg_flags & RSM_IMPLICIT_MAP) { in rsm_memseg_import_disconnect()
1326 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1327 if (seg->rsmseg_pollfd_refcnt) { in rsm_memseg_import_disconnect()
1328 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1333 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1335 e = seg->rsmseg_ops->rsm_memseg_import_disconnect(im_memseg); in rsm_memseg_import_disconnect()
1338 (void) close(seg->rsmseg_fd); in rsm_memseg_import_disconnect()
1339 mutex_destroy(&seg->rsmseg_lock); in rsm_memseg_import_disconnect()
1340 free((void *)seg); in rsm_memseg_import_disconnect()
1354 __rsm_import_verify_access(rsmseg_handle_t *seg, in __rsm_import_verify_access() argument
1366 if (!seg) { in __rsm_import_verify_access()
1393 if (seg->rsmseg_state != IMPORT_CONNECT && in __rsm_import_verify_access()
1394 seg->rsmseg_state != IMPORT_MAP) { in __rsm_import_verify_access()
1401 if (seg->rsmseg_state == IMPORT_CONNECT) { in __rsm_import_verify_access()
1402 error = __rsm_import_implicit_map(seg, RSM_IOTYPE_PUTGET); in __rsm_import_verify_access()
1410 if ((seg->rsmseg_perm & perm) != perm) { in __rsm_import_verify_access()
1416 if (seg->rsmseg_state == IMPORT_MAP) { in __rsm_import_verify_access()
1417 if ((offset < seg->rsmseg_mapoffset) || in __rsm_import_verify_access()
1418 (offset + len > seg->rsmseg_mapoffset + in __rsm_import_verify_access()
1419 seg->rsmseg_maplen)) { in __rsm_import_verify_access()
1425 if ((len + offset) > seg->rsmseg_size) { in __rsm_import_verify_access()
1432 if ((seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) && in __rsm_import_verify_access()
1433 (seg->rsmseg_barrier == NULL)) { in __rsm_import_verify_access()
1446 __rsm_import_implicit_map(rsmseg_handle_t *seg, int iotype) in __rsm_import_implicit_map() argument
1457 mapping_reqd = seg->rsmseg_controller->cntr_lib_attr-> in __rsm_import_implicit_map()
1460 mapping_reqd = seg->rsmseg_controller->cntr_lib_attr-> in __rsm_import_implicit_map()
1465 va = mmap(NULL, seg->rsmseg_size, prot, in __rsm_import_implicit_map()
1466 flag, seg->rsmseg_fd, 0); in __rsm_import_implicit_map()
1485 seg->rsmseg_vaddr = va; in __rsm_import_implicit_map()
1486 seg->rsmseg_maplen = seg->rsmseg_size; in __rsm_import_implicit_map()
1487 seg->rsmseg_mapoffset = 0; in __rsm_import_implicit_map()
1488 seg->rsmseg_state = IMPORT_MAP; in __rsm_import_implicit_map()
1489 seg->rsmseg_flags |= RSM_IMPLICIT_MAP; in __rsm_import_implicit_map()
1504 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get8() local
1510 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt, in rsm_memseg_import_get8()
1514 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get8()
1515 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get8()
1517 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get8()
1525 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get8()
1545 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get16() local
1551 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*2, in rsm_memseg_import_get16()
1555 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get16()
1556 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get16()
1558 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get16()
1566 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get16()
1587 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get32() local
1593 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*4, in rsm_memseg_import_get32()
1597 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get32()
1598 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get32()
1600 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get32()
1608 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get32()
1628 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get64() local
1634 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*8, in rsm_memseg_import_get64()
1638 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get64()
1639 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get64()
1641 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get64()
1649 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get64()
1669 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get() local
1675 e = __rsm_import_verify_access(seg, offset, (caddr_t)dst_addr, length, in rsm_memseg_import_get()
1679 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_get()
1680 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_get()
1682 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get()
1690 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_get()
1709 rsmseg_handle_t *seg; in rsm_memseg_import_getv() local
1723 seg = (rsmseg_handle_t *)sg_io->remote_handle; in rsm_memseg_import_getv()
1724 if (seg == NULL) { in rsm_memseg_import_getv()
1730 cntrl = (rsm_controller_t *)seg->rsmseg_controller; in rsm_memseg_import_getv()
1744 if (seg->rsmseg_state == IMPORT_CONNECT) { in rsm_memseg_import_getv()
1745 e = __rsm_import_implicit_map(seg, RSM_IOTYPE_SCATGATH); in rsm_memseg_import_getv()
1803 e = rsm_intr_signal_post(seg, sigpost_flags); in rsm_memseg_import_getv()
1826 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put8() local
1834 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt, in rsm_memseg_import_put8()
1838 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put8()
1839 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put8()
1841 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put8()
1849 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put8()
1869 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put16() local
1877 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*2, in rsm_memseg_import_put16()
1881 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put16()
1882 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put16()
1884 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put16()
1892 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put16()
1913 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put32() local
1921 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*4, in rsm_memseg_import_put32()
1925 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put32()
1926 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put32()
1928 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put32()
1936 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put32()
1956 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put64() local
1964 e = __rsm_import_verify_access(seg, offset, (caddr_t)datap, rep_cnt*8, in rsm_memseg_import_put64()
1968 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put64()
1969 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put64()
1971 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put64()
1979 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put64()
1999 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_put() local
2005 e = __rsm_import_verify_access(seg, offset, (caddr_t)src_addr, length, in rsm_memseg_import_put()
2009 rsm_segops_t *ops = seg->rsmseg_ops; in rsm_memseg_import_put()
2010 rsmbar_handle_t *bar = (rsmbar_handle_t *)seg->rsmseg_barrier; in rsm_memseg_import_put()
2012 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put()
2020 if (seg->rsmseg_barmode == RSM_BARRIER_MODE_IMPLICIT) { in rsm_memseg_import_put()
2039 rsmseg_handle_t *seg; in rsm_memseg_import_putv() local
2054 seg = (rsmseg_handle_t *)sg_io->remote_handle; in rsm_memseg_import_putv()
2055 if (seg == NULL) { in rsm_memseg_import_putv()
2061 cntrl = (rsm_controller_t *)seg->rsmseg_controller; in rsm_memseg_import_putv()
2076 if (seg->rsmseg_state == IMPORT_CONNECT) { in rsm_memseg_import_putv()
2077 e = __rsm_import_implicit_map(seg, RSM_IOTYPE_SCATGATH); in rsm_memseg_import_putv()
2135 e = rsm_intr_signal_post(seg, sigpost_flags); in rsm_memseg_import_putv()
2160 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_map() local
2168 if (!seg) { in rsm_memseg_import_map()
2183 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2185 if (seg->rsmseg_state == IMPORT_MAP) { in rsm_memseg_import_map()
2186 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2193 if (seg->rsmseg_state != IMPORT_CONNECT) { in rsm_memseg_import_map()
2194 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2202 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2209 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2213 if (offset + length > seg->rsmseg_size) { in rsm_memseg_import_map()
2216 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2241 va = mmap(*address, length, prot, flag, seg->rsmseg_fd, offset); in rsm_memseg_import_map()
2247 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2271 seg->rsmseg_vaddr = va; in rsm_memseg_import_map()
2272 seg->rsmseg_maplen = length; in rsm_memseg_import_map()
2273 seg->rsmseg_mapoffset = offset; in rsm_memseg_import_map()
2274 seg->rsmseg_state = IMPORT_MAP; in rsm_memseg_import_map()
2276 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_map()
2292 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_unmap() local
2297 if (!seg) { in rsm_memseg_import_unmap()
2303 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_import_unmap()
2304 if (seg->rsmseg_state != IMPORT_MAP) { in rsm_memseg_import_unmap()
2305 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_unmap()
2309 seg->rsmseg_mapoffset = 0; /* reset the offset */ in rsm_memseg_import_unmap()
2310 seg->rsmseg_state = IMPORT_CONNECT; in rsm_memseg_import_unmap()
2311 seg->rsmseg_flags &= ~RSM_IMPLICIT_MAP; in rsm_memseg_import_unmap()
2312 (void) munmap(seg->rsmseg_vaddr, seg->rsmseg_maplen); in rsm_memseg_import_unmap()
2314 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_import_unmap()
2331 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_init_barrier() local
2337 if (!seg) { in rsm_memseg_import_init_barrier()
2349 bar->rsmbar_seg = seg; in rsm_memseg_import_init_barrier()
2351 seg->rsmseg_barrier = barrier; /* used in put/get fns */ in rsm_memseg_import_init_barrier()
2356 return (seg->rsmseg_ops->rsm_memseg_import_init_barrier(im_memseg, in rsm_memseg_import_init_barrier()
2490 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_get_mode() local
2495 if (seg) { in rsm_memseg_import_get_mode()
2496 *mode = seg->rsmseg_barmode; in rsm_memseg_import_get_mode()
2500 return (seg->rsmseg_ops->rsm_memseg_import_get_mode(im_memseg, in rsm_memseg_import_get_mode()
2515 rsmseg_handle_t *seg = (rsmseg_handle_t *)im_memseg; in rsm_memseg_import_set_mode() local
2519 if (seg) { in rsm_memseg_import_set_mode()
2522 seg->rsmseg_barmode = mode; in rsm_memseg_import_set_mode()
2526 return (seg->rsmseg_ops->rsm_memseg_import_set_mode( in rsm_memseg_import_set_mode()
2546 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_intr_signal_post() local
2553 if (!seg) { in rsm_intr_signal_post()
2559 if (ioctl(seg->rsmseg_fd, RSM_IOCTL_RING_BELL, &msg) < 0) { in rsm_intr_signal_post()
2574 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_intr_signal_wait() local
2581 if (!seg) { in rsm_intr_signal_wait()
2587 fds.fd = seg->rsmseg_fd; in rsm_intr_signal_wait()
2590 rnum = seg->rsmseg_rnum; in rsm_intr_signal_wait()
2780 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_get_pollfd() local
2785 if (!seg) { in rsm_memseg_get_pollfd()
2791 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_get_pollfd()
2793 poll_fd->fd = seg->rsmseg_fd; in rsm_memseg_get_pollfd()
2795 seg->rsmseg_pollfd_refcnt++; in rsm_memseg_get_pollfd()
2796 if (seg->rsmseg_pollfd_refcnt == 1) { in rsm_memseg_get_pollfd()
2798 err = _rsm_insert_pollfd_table(seg->rsmseg_fd, in rsm_memseg_get_pollfd()
2799 seg->rsmseg_rnum); in rsm_memseg_get_pollfd()
2802 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_get_pollfd()
2819 rsmseg_handle_t *seg = (rsmseg_handle_t *)memseg; in rsm_memseg_release_pollfd() local
2824 if (!seg) { in rsm_memseg_release_pollfd()
2830 mutex_lock(&seg->rsmseg_lock); in rsm_memseg_release_pollfd()
2832 if (seg->rsmseg_pollfd_refcnt) { in rsm_memseg_release_pollfd()
2833 seg->rsmseg_pollfd_refcnt--; in rsm_memseg_release_pollfd()
2834 if (seg->rsmseg_pollfd_refcnt == 0) { in rsm_memseg_release_pollfd()
2836 _rsm_remove_pollfd_table(seg->rsmseg_fd); in rsm_memseg_release_pollfd()
2840 mutex_unlock(&seg->rsmseg_lock); in rsm_memseg_release_pollfd()