Lines Matching refs:handle

146 	struct vmci_handle handle;  member
186 struct vmci_handle handle; member
805 struct vmci_handle handle) in qp_list_find() argument
809 if (vmci_handle_is_invalid(handle)) in qp_list_find()
813 if (vmci_handle_is_equal(entry->handle, handle)) in qp_list_find()
824 qp_guest_handle_to_entry(struct vmci_handle handle) in qp_guest_handle_to_entry() argument
827 struct qp_entry *qp = qp_list_find(&qp_guest_endpoints, handle); in qp_guest_handle_to_entry()
838 qp_broker_handle_to_entry(struct vmci_handle handle) in qp_broker_handle_to_entry() argument
841 struct qp_entry *qp = qp_list_find(&qp_broker_list, handle); in qp_broker_handle_to_entry()
852 static int qp_notify_peer_local(bool attach, struct vmci_handle handle) in qp_notify_peer_local() argument
865 ev.payload.handle = handle; in qp_notify_peer_local()
878 qp_guest_endpoint_create(struct vmci_handle handle, in qp_guest_endpoint_create() argument
892 if (vmci_handle_is_invalid(handle)) { in qp_guest_endpoint_create()
895 handle = vmci_make_handle(context_id, VMCI_INVALID_ID); in qp_guest_endpoint_create()
913 handle); in qp_guest_endpoint_create()
914 entry->qp.handle = vmci_resource_handle(&entry->resource); in qp_guest_endpoint_create()
916 qp_list_find(&qp_guest_endpoints, entry->qp.handle)) { in qp_guest_endpoint_create()
918 handle.context, handle.resource, result); in qp_guest_endpoint_create()
966 alloc_msg->handle = entry->qp.handle; in qp_alloc_hypercall()
987 static int qp_detatch_hypercall(struct vmci_handle handle) in qp_detatch_hypercall() argument
994 detach_msg.hdr.payload_size = sizeof(handle); in qp_detatch_hypercall()
995 detach_msg.handle = handle; in qp_detatch_hypercall()
1023 static int qp_detatch_guest_work(struct vmci_handle handle) in qp_detatch_guest_work() argument
1031 entry = qp_guest_handle_to_entry(handle); in qp_detatch_guest_work()
1041 result = qp_notify_peer_local(false, handle); in qp_detatch_guest_work()
1050 result = qp_detatch_hypercall(handle); in qp_detatch_guest_work()
1093 static int qp_alloc_guest_work(struct vmci_handle *handle, in qp_alloc_guest_work() argument
1116 queue_pair_entry = qp_guest_handle_to_entry(*handle); in qp_alloc_guest_work()
1141 result = qp_notify_peer_local(true, *handle); in qp_alloc_guest_work()
1168 queue_pair_entry = qp_guest_endpoint_create(*handle, peer, flags, in qp_alloc_guest_work()
1202 if (queue_pair_entry->qp.handle.context != context_id || in qp_alloc_guest_work()
1228 *handle = queue_pair_entry->qp.handle; in qp_alloc_guest_work()
1239 vmci_q_header_init((*produce_q)->q_header, *handle); in qp_alloc_guest_work()
1240 vmci_q_header_init((*consume_q)->q_header, *handle); in qp_alloc_guest_work()
1282 static int qp_broker_create(struct vmci_handle handle, in qp_broker_create() argument
1308 if (handle.context != context_id && handle.context != peer) in qp_broker_create()
1341 entry->qp.handle = handle; in qp_broker_create()
1416 handle); in qp_broker_create()
1419 handle.context, handle.resource, result); in qp_broker_create()
1423 entry->qp.handle = vmci_resource_handle(&entry->resource); in qp_broker_create()
1426 entry->qp.handle); in qp_broker_create()
1428 entry->qp.handle); in qp_broker_create()
1431 vmci_ctx_qp_create(context, entry->qp.handle); in qp_broker_create()
1452 struct vmci_handle handle, in qp_notify_peer() argument
1459 if (vmci_handle_is_invalid(handle) || my_id == VMCI_INVALID_ID || in qp_notify_peer()
1478 ev.payload.handle = handle; in qp_notify_peer()
1664 qp_notify_peer(true, entry->qp.handle, context_id, in qp_broker_attach()
1668 entry->create_id, entry->qp.handle.context, in qp_broker_attach()
1669 entry->qp.handle.resource); in qp_broker_attach()
1684 vmci_ctx_qp_create(context, entry->qp.handle); in qp_broker_attach()
1696 static int qp_broker_alloc(struct vmci_handle handle, in qp_broker_alloc() argument
1715 if (vmci_handle_is_invalid(handle) || in qp_broker_alloc()
1719 handle.context == VMCI_INVALID_ID) { in qp_broker_alloc()
1733 if (!is_local && vmci_ctx_qp_exists(context, handle)) { in qp_broker_alloc()
1735 context_id, handle.context, handle.resource); in qp_broker_alloc()
1740 if (handle.resource != VMCI_INVALID_ID) in qp_broker_alloc()
1741 entry = qp_broker_handle_to_entry(handle); in qp_broker_alloc()
1746 qp_broker_create(handle, peer, flags, priv_flags, in qp_broker_alloc()
1770 static int qp_alloc_host_work(struct vmci_handle *handle, in qp_alloc_host_work() argument
1787 if (vmci_handle_is_invalid(*handle)) { in qp_alloc_host_work()
1791 new_handle = *handle; in qp_alloc_host_work()
1814 *handle = vmci_resource_handle(&entry->resource); in qp_alloc_host_work()
1816 *handle = VMCI_INVALID_HANDLE; in qp_alloc_host_work()
1829 int vmci_qp_alloc(struct vmci_handle *handle, in vmci_qp_alloc() argument
1841 if (!handle || !produce_q || !consume_q || in vmci_qp_alloc()
1846 return qp_alloc_guest_work(handle, produce_q, in vmci_qp_alloc()
1851 return qp_alloc_host_work(handle, produce_q, in vmci_qp_alloc()
1862 static int qp_detatch_host_work(struct vmci_handle handle) in qp_detatch_host_work() argument
1869 result = vmci_qp_broker_detach(handle, context); in qp_detatch_host_work()
1879 static int qp_detatch(struct vmci_handle handle, bool guest_endpoint) in qp_detatch() argument
1881 if (vmci_handle_is_invalid(handle)) in qp_detatch()
1885 return qp_detatch_guest_work(handle); in qp_detatch()
1887 return qp_detatch_host_work(handle); in qp_detatch()
1930 int vmci_qp_broker_alloc(struct vmci_handle handle, in vmci_qp_broker_alloc() argument
1942 return qp_broker_alloc(handle, peer, flags, priv_flags, in vmci_qp_broker_alloc()
1963 int vmci_qp_broker_set_page_store(struct vmci_handle handle, in vmci_qp_broker_set_page_store() argument
1972 if (vmci_handle_is_invalid(handle) || !context || in vmci_qp_broker_set_page_store()
1986 if (!vmci_ctx_qp_exists(context, handle)) { in vmci_qp_broker_set_page_store()
1988 context_id, handle.context, handle.resource); in vmci_qp_broker_set_page_store()
1993 entry = qp_broker_handle_to_entry(handle); in vmci_qp_broker_set_page_store()
2039 qp_notify_peer(true, handle, context_id, entry->create_id); in vmci_qp_broker_set_page_store()
2042 entry->create_id, entry->qp.handle.context, in vmci_qp_broker_set_page_store()
2043 entry->qp.handle.resource); in vmci_qp_broker_set_page_store()
2082 int vmci_qp_broker_detach(struct vmci_handle handle, struct vmci_ctx *context) in vmci_qp_broker_detach() argument
2090 if (vmci_handle_is_invalid(handle) || !context || in vmci_qp_broker_detach()
2097 if (!vmci_ctx_qp_exists(context, handle)) { in vmci_qp_broker_detach()
2099 context_id, handle.context, handle.resource); in vmci_qp_broker_detach()
2104 entry = qp_broker_handle_to_entry(handle); in vmci_qp_broker_detach()
2107 context_id, handle.context, handle.resource); in vmci_qp_broker_detach()
2149 handle.context, handle.resource, in vmci_qp_broker_detach()
2186 vmci_ctx_qp_destroy(context, handle); in vmci_qp_broker_detach()
2188 qp_notify_peer(false, handle, context_id, peer_id); in vmci_qp_broker_detach()
2197 vmci_ctx_qp_destroy(context, handle); in vmci_qp_broker_detach()
2212 int vmci_qp_broker_map(struct vmci_handle handle, in vmci_qp_broker_map() argument
2220 if (vmci_handle_is_invalid(handle) || !context || in vmci_qp_broker_map()
2226 if (!vmci_ctx_qp_exists(context, handle)) { in vmci_qp_broker_map()
2228 context_id, handle.context, handle.resource); in vmci_qp_broker_map()
2233 entry = qp_broker_handle_to_entry(handle); in vmci_qp_broker_map()
2236 context_id, handle.context, handle.resource); in vmci_qp_broker_map()
2322 int vmci_qp_broker_unmap(struct vmci_handle handle, in vmci_qp_broker_unmap() argument
2330 if (vmci_handle_is_invalid(handle) || !context || in vmci_qp_broker_unmap()
2336 if (!vmci_ctx_qp_exists(context, handle)) { in vmci_qp_broker_unmap()
2338 context_id, handle.context, handle.resource); in vmci_qp_broker_unmap()
2343 entry = qp_broker_handle_to_entry(handle); in vmci_qp_broker_unmap()
2346 context_id, handle.context, handle.resource); in vmci_qp_broker_unmap()
2362 handle.context, handle.resource, result); in vmci_qp_broker_unmap()
2409 qp_detatch_hypercall(entry->handle); in vmci_qp_guest_endpoints_exit()
2680 struct vmci_handle *handle, in vmci_qpair_alloc() argument
2751 retval = vmci_qp_alloc(handle, in vmci_qpair_alloc()
2768 my_qpair->handle = *handle; in vmci_qpair_alloc()
2791 result = qp_detatch(old_qpair->handle, old_qpair->guest_endpoint); in vmci_qpair_detach()
2804 old_qpair->handle = VMCI_INVALID_HANDLE; in vmci_qpair_detach()