Lines Matching defs:fedata

55 	struct pvcalls_fedata *fedata;
76 struct pvcalls_fedata *fedata;
88 struct pvcalls_fedata *fedata,
262 struct pvcalls_fedata *fedata;
266 fedata = dev_get_drvdata(&dev->dev);
278 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
313 struct pvcalls_fedata *fedata,
329 map->fedata = fedata;
334 ret = xenbus_map_ring_valloc(fedata->dev, &ref, 1, &page);
346 ret = xenbus_map_ring_valloc(fedata->dev, map->ring->ref,
353 fedata->dev->otherend_id, evtchn,
368 down(&fedata->socket_lock);
369 list_add_tail(&map->list, &fedata->socket_mappings);
370 up(&fedata->socket_lock);
381 down(&fedata->socket_lock);
383 pvcalls_back_release_active(fedata->dev, fedata, map);
384 up(&fedata->socket_lock);
391 struct pvcalls_fedata *fedata;
398 fedata = dev_get_drvdata(&dev->dev);
414 map = pvcalls_new_active_socket(fedata,
423 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
433 struct pvcalls_fedata *fedata,
458 struct pvcalls_fedata *fedata,
478 struct pvcalls_fedata *fedata;
484 fedata = dev_get_drvdata(&dev->dev);
486 down(&fedata->socket_lock);
487 list_for_each_entry_safe(map, n, &fedata->socket_mappings, list) {
490 up(&fedata->socket_lock);
491 ret = pvcalls_back_release_active(dev, fedata, map);
495 mappass = radix_tree_lookup(&fedata->socketpass_mappings,
498 radix_tree_delete(&fedata->socketpass_mappings, mappass->id);
499 up(&fedata->socket_lock);
500 ret = pvcalls_back_release_passive(dev, fedata, mappass);
502 up(&fedata->socket_lock);
505 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
519 struct pvcalls_fedata *fedata;
527 fedata = mappass->fedata;
554 map = pvcalls_new_active_socket(fedata,
571 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
576 RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&fedata->ring, notify);
578 notify_remote_via_irq(fedata->irq);
586 struct pvcalls_fedata *fedata;
594 fedata = mappass->fedata;
597 rsp = RING_GET_RESPONSE(&fedata->ring,
598 fedata->ring.rsp_prod_pvt++);
607 RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&fedata->ring, notify);
609 notify_remote_via_irq(mappass->fedata->irq);
619 struct pvcalls_fedata *fedata;
624 fedata = dev_get_drvdata(&dev->dev);
649 map->fedata = fedata;
652 down(&fedata->socket_lock);
653 ret = radix_tree_insert(&fedata->socketpass_mappings, map->id,
655 up(&fedata->socket_lock);
673 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
684 struct pvcalls_fedata *fedata;
689 fedata = dev_get_drvdata(&dev->dev);
691 down(&fedata->socket_lock);
692 map = radix_tree_lookup(&fedata->socketpass_mappings, req->u.listen.id);
693 up(&fedata->socket_lock);
700 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
711 struct pvcalls_fedata *fedata;
717 fedata = dev_get_drvdata(&dev->dev);
719 down(&fedata->socket_lock);
720 mappass = radix_tree_lookup(&fedata->socketpass_mappings,
722 up(&fedata->socket_lock);
745 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
756 struct pvcalls_fedata *fedata;
765 fedata = dev_get_drvdata(&dev->dev);
767 down(&fedata->socket_lock);
768 mappass = radix_tree_lookup(&fedata->socketpass_mappings,
770 up(&fedata->socket_lock);
801 rsp = RING_GET_RESPONSE(&fedata->ring, fedata->ring.rsp_prod_pvt++);
838 struct pvcalls_fedata *fedata;
841 fedata = dev_get_drvdata(&dev->dev);
843 &fedata->ring, fedata->ring.rsp_prod_pvt++);
853 static void pvcalls_back_work(struct pvcalls_fedata *fedata)
857 struct xenbus_device *dev = fedata->dev;
860 while (RING_HAS_UNCONSUMED_REQUESTS(&fedata->ring)) {
861 RING_COPY_REQUEST(&fedata->ring,
862 fedata->ring.req_cons++,
867 &fedata->ring, notify);
873 notify_remote_via_irq(fedata->irq);
877 RING_FINAL_CHECK_FOR_REQUESTS(&fedata->ring, more);
884 struct pvcalls_fedata *fedata = NULL;
888 fedata = dev_get_drvdata(&dev->dev);
889 if (fedata) {
890 pvcalls_back_work(fedata);
926 struct pvcalls_fedata *fedata = NULL;
928 fedata = kzalloc(sizeof(struct pvcalls_fedata), GFP_KERNEL);
929 if (!fedata)
932 fedata->irq = -1;
953 fedata->irq = err;
955 err = request_threaded_irq(fedata->irq, NULL, pvcalls_back_event,
961 (void **)&fedata->sring);
965 BACK_RING_INIT(&fedata->ring, fedata->sring, XEN_PAGE_SIZE * 1);
966 fedata->dev = dev;
968 INIT_LIST_HEAD(&fedata->socket_mappings);
969 INIT_RADIX_TREE(&fedata->socketpass_mappings, GFP_KERNEL);
970 sema_init(&fedata->socket_lock, 1);
971 dev_set_drvdata(&dev->dev, fedata);
974 list_add_tail(&fedata->list, &pvcalls_back_global.frontends);
980 if (fedata->irq >= 0)
981 unbind_from_irqhandler(fedata->irq, dev);
982 if (fedata->sring != NULL)
983 xenbus_unmap_ring_vfree(dev, fedata->sring);
984 kfree(fedata);
990 struct pvcalls_fedata *fedata;
997 fedata = dev_get_drvdata(&dev->dev);
999 down(&fedata->socket_lock);
1000 list_for_each_entry_safe(map, n, &fedata->socket_mappings, list) {
1002 pvcalls_back_release_active(dev, fedata, map);
1005 radix_tree_for_each_slot(slot, &fedata->socketpass_mappings, &iter, 0) {
1013 radix_tree_delete(&fedata->socketpass_mappings,
1015 pvcalls_back_release_passive(dev, fedata, mappass);
1018 up(&fedata->socket_lock);
1020 unbind_from_irqhandler(fedata->irq, dev);
1021 xenbus_unmap_ring_vfree(dev, fedata->sring);
1023 list_del(&fedata->list);
1024 kfree(fedata);
1227 struct pvcalls_fedata *fedata, *nfedata;
1230 list_for_each_entry_safe(fedata, nfedata,
1232 backend_disconnect(fedata->dev);