Lines Matching refs:rings
65 Xen9pfsRing *rings; member
144 xen_9pfs_in_sg(&xen_9pfs->rings[pdu->tag % xen_9pfs->num_rings], in xen_9pfs_pdu_vmarshal()
168 xen_9pfs_out_sg(&xen_9pfs->rings[pdu->tag % xen_9pfs->num_rings], in xen_9pfs_pdu_vunmarshal()
187 Xen9pfsRing *ring = &xen_9pfs->rings[pdu->tag % xen_9pfs->num_rings]; in xen_9pfs_init_out_iov_from_pdu()
204 Xen9pfsRing *ring = &xen_9pfs->rings[pdu->tag % xen_9pfs->num_rings]; in xen_9pfs_init_in_iov_from_pdu()
234 Xen9pfsRing *ring = &priv->rings[pdu->tag % priv->num_rings]; in xen_9pfs_push_and_notify()
345 if (xen_9pdev->rings[i].evtchndev != NULL) { in xen_9pfs_disconnect()
346 qemu_set_fd_handler(qemu_xen_evtchn_fd(xen_9pdev->rings[i].evtchndev), in xen_9pfs_disconnect()
348 qemu_xen_evtchn_unbind(xen_9pdev->rings[i].evtchndev, in xen_9pfs_disconnect()
349 xen_9pdev->rings[i].local_port); in xen_9pfs_disconnect()
350 xen_9pdev->rings[i].evtchndev = NULL; in xen_9pfs_disconnect()
352 if (xen_9pdev->rings[i].data != NULL) { in xen_9pfs_disconnect()
354 xen_9pdev->rings[i].data, in xen_9pfs_disconnect()
355 xen_9pdev->rings[i].intf->ref, in xen_9pfs_disconnect()
356 (1 << xen_9pdev->rings[i].ring_order)); in xen_9pfs_disconnect()
357 xen_9pdev->rings[i].data = NULL; in xen_9pfs_disconnect()
359 if (xen_9pdev->rings[i].intf != NULL) { in xen_9pfs_disconnect()
361 xen_9pdev->rings[i].intf, in xen_9pfs_disconnect()
362 xen_9pdev->rings[i].ref); in xen_9pfs_disconnect()
363 xen_9pdev->rings[i].intf = NULL; in xen_9pfs_disconnect()
365 if (xen_9pdev->rings[i].bh != NULL) { in xen_9pfs_disconnect()
366 qemu_bh_delete(xen_9pdev->rings[i].bh); in xen_9pfs_disconnect()
367 xen_9pdev->rings[i].bh = NULL; in xen_9pfs_disconnect()
379 g_free(xen_9pdev->rings); in xen_9pfs_disconnect()
380 xen_9pdev->rings = NULL; in xen_9pfs_disconnect()
406 xen_9pdev->rings = g_new0(Xen9pfsRing, xen_9pdev->num_rings); in xen_9pfs_connect()
411 xen_9pdev->rings[i].priv = xen_9pdev; in xen_9pfs_connect()
412 xen_9pdev->rings[i].evtchn = -1; in xen_9pfs_connect()
413 xen_9pdev->rings[i].local_port = -1; in xen_9pfs_connect()
417 &xen_9pdev->rings[i].ref) == -1) { in xen_9pfs_connect()
424 &xen_9pdev->rings[i].evtchn) == -1) { in xen_9pfs_connect()
430 xen_9pdev->rings[i].intf = in xen_9pfs_connect()
432 xen_9pdev->rings[i].ref, in xen_9pfs_connect()
434 if (!xen_9pdev->rings[i].intf) { in xen_9pfs_connect()
437 ring_order = xen_9pdev->rings[i].intf->ring_order; in xen_9pfs_connect()
441 xen_9pdev->rings[i].ring_order = ring_order; in xen_9pfs_connect()
442 xen_9pdev->rings[i].data = in xen_9pfs_connect()
444 xen_9pdev->rings[i].intf->ref, in xen_9pfs_connect()
447 if (!xen_9pdev->rings[i].data) { in xen_9pfs_connect()
450 xen_9pdev->rings[i].ring.in = xen_9pdev->rings[i].data; in xen_9pfs_connect()
451 xen_9pdev->rings[i].ring.out = xen_9pdev->rings[i].data + in xen_9pfs_connect()
454 xen_9pdev->rings[i].bh = qemu_bh_new_guarded(xen_9pfs_bh, in xen_9pfs_connect()
455 &xen_9pdev->rings[i], in xen_9pfs_connect()
457 xen_9pdev->rings[i].out_cons = 0; in xen_9pfs_connect()
458 xen_9pdev->rings[i].out_size = 0; in xen_9pfs_connect()
459 xen_9pdev->rings[i].inprogress = false; in xen_9pfs_connect()
462 xen_9pdev->rings[i].evtchndev = qemu_xen_evtchn_open(); in xen_9pfs_connect()
463 if (xen_9pdev->rings[i].evtchndev == NULL) { in xen_9pfs_connect()
466 qemu_set_cloexec(qemu_xen_evtchn_fd(xen_9pdev->rings[i].evtchndev)); in xen_9pfs_connect()
467 xen_9pdev->rings[i].local_port = qemu_xen_evtchn_bind_interdomain in xen_9pfs_connect()
468 (xen_9pdev->rings[i].evtchndev, in xen_9pfs_connect()
470 xen_9pdev->rings[i].evtchn); in xen_9pfs_connect()
471 if (xen_9pdev->rings[i].local_port == -1) { in xen_9pfs_connect()
474 xen_9pdev->rings[i].evtchn); in xen_9pfs_connect()
478 qemu_set_fd_handler(qemu_xen_evtchn_fd(xen_9pdev->rings[i].evtchndev), in xen_9pfs_connect()
479 xen_9pfs_evtchn_event, NULL, &xen_9pdev->rings[i]); in xen_9pfs_connect()