Lines Matching full:view

51 	struct raw3270_view *view;	/* Active view. */  member
95 * Wait queue for device init/delete, view delete.
126 x = max_t(int, 0, rp->view->cols + x); in raw3270_buffer_address()
128 y = max_t(int, 0, rp->view->rows + y); in raw3270_buffer_address()
129 addr = (y * rp->view->cols) + x; in raw3270_buffer_address()
249 static int __raw3270_start(struct raw3270 *rp, struct raw3270_view *view, in __raw3270_start() argument
252 rq->view = view; in __raw3270_start()
253 raw3270_get_view(view); in __raw3270_start()
260 raw3270_put_view(view); in __raw3270_start()
268 int raw3270_view_active(struct raw3270_view *view) in raw3270_view_active() argument
270 struct raw3270 *rp = view->dev; in raw3270_view_active()
272 return rp && rp->view == view; in raw3270_view_active()
275 int raw3270_start(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start() argument
281 spin_lock_irqsave(get_ccwdev_lock(view->dev->cdev), flags); in raw3270_start()
282 rp = view->dev; in raw3270_start()
283 if (!rp || rp->view != view) in raw3270_start()
288 rc = __raw3270_start(rp, view, rq); in raw3270_start()
289 spin_unlock_irqrestore(get_ccwdev_lock(view->dev->cdev), flags); in raw3270_start()
294 int raw3270_start_request(struct raw3270_view *view, struct raw3270_request *rq, in raw3270_start_request() argument
306 return raw3270_start(view, rq); in raw3270_start_request()
310 int raw3270_start_locked(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start_locked() argument
315 rp = view->dev; in raw3270_start_locked()
316 if (!rp || rp->view != view) in raw3270_start_locked()
321 rc = __raw3270_start(rp, view, rq); in raw3270_start_locked()
326 int raw3270_start_irq(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start_irq() argument
330 rp = view->dev; in raw3270_start_irq()
331 rq->view = view; in raw3270_start_irq()
332 raw3270_get_view(view); in raw3270_start_irq()
344 struct raw3270_view *view; in raw3270_irq() local
351 view = rq ? rq->view : rp->view; in raw3270_irq()
368 /* Call interrupt handler of the view */ in raw3270_irq()
369 if (view) in raw3270_irq()
370 view->fn->intv(view, rq, irb); in raw3270_irq()
383 raw3270_put_view(view); in raw3270_irq()
401 raw3270_put_view(view); in raw3270_irq()
539 struct raw3270_view *view; in raw3270_resize_work() local
542 list_for_each_entry(view, &rp->view_list, list) { in raw3270_resize_work()
543 if (view->fn->resize) in raw3270_resize_work()
544 view->fn->resize(view, rp->model, rp->rows, rp->cols, in raw3270_resize_work()
550 /* Setup processing done, now activate a view */ in raw3270_resize_work()
551 list_for_each_entry(view, &rp->view_list, list) { in raw3270_resize_work()
552 rp->view = view; in raw3270_resize_work()
553 if (view->fn->activate(view) == 0) in raw3270_resize_work()
555 rp->view = NULL; in raw3270_resize_work()
561 rp->view = NULL; in raw3270_size_device_done()
568 struct raw3270 *rp = rq->view->dev; in raw3270_read_modified_cb()
615 struct raw3270 *rp = rq->view->dev; in raw3270_reset_device_cb()
636 if (rp->init_reset.view) in __raw3270_reset_device()
662 int raw3270_reset(struct raw3270_view *view) in raw3270_reset() argument
667 rp = view->dev; in raw3270_reset()
668 if (!rp || rp->view != view) in raw3270_reset()
673 rc = raw3270_reset_device(view->dev); in raw3270_reset()
681 struct raw3270_view *view; in __raw3270_disconnect() local
684 rp->view = &rp->init_view; in __raw3270_disconnect()
688 view = rq->view; in __raw3270_disconnect()
693 raw3270_put_view(view); in __raw3270_disconnect()
699 static void raw3270_init_irq(struct raw3270_view *view, struct raw3270_request *rq, in raw3270_init_irq() argument
714 rp = view->dev; in raw3270_init_irq()
755 rp->view = &rp->init_view; in raw3270_setup_device()
881 * view in the panic() context, due to locking restrictions.
883 int raw3270_view_lock_unavailable(struct raw3270_view *view) in raw3270_view_lock_unavailable() argument
885 struct raw3270 *rp = view->dev; in raw3270_view_lock_unavailable()
894 static int raw3270_assign_activate_view(struct raw3270 *rp, struct raw3270_view *view) in raw3270_assign_activate_view() argument
896 rp->view = view; in raw3270_assign_activate_view()
897 return view->fn->activate(view); in raw3270_assign_activate_view()
900 static int __raw3270_activate_view(struct raw3270 *rp, struct raw3270_view *view) in __raw3270_activate_view() argument
905 if (rp->view == view) in __raw3270_activate_view()
911 if (rp->view && rp->view->fn->deactivate) { in __raw3270_activate_view()
912 oldview = rp->view; in __raw3270_activate_view()
916 rc = raw3270_assign_activate_view(rp, view); in __raw3270_activate_view()
920 /* Didn't work. Try to reactivate the old view. */ in __raw3270_activate_view()
927 /* Didn't work as well. Try any other view. */ in __raw3270_activate_view()
929 if (nv == view || nv == oldview) in __raw3270_activate_view()
934 rp->view = NULL; in __raw3270_activate_view()
940 * Activate a view.
942 int raw3270_activate_view(struct raw3270_view *view) in raw3270_activate_view() argument
948 rp = view->dev; in raw3270_activate_view()
952 rc = __raw3270_activate_view(rp, view); in raw3270_activate_view()
959 * Deactivate current view.
961 void raw3270_deactivate_view(struct raw3270_view *view) in raw3270_deactivate_view() argument
966 rp = view->dev; in raw3270_deactivate_view()
970 if (rp->view == view) { in raw3270_deactivate_view()
971 view->fn->deactivate(view); in raw3270_deactivate_view()
972 rp->view = NULL; in raw3270_deactivate_view()
973 /* Move deactivated view to end of list. */ in raw3270_deactivate_view()
974 list_del_init(&view->list); in raw3270_deactivate_view()
975 list_add_tail(&view->list, &rp->view_list); in raw3270_deactivate_view()
976 /* Try to activate another view. */ in raw3270_deactivate_view()
978 list_for_each_entry(view, &rp->view_list, list) { in raw3270_deactivate_view()
979 rp->view = view; in raw3270_deactivate_view()
980 if (view->fn->activate(view) == 0) in raw3270_deactivate_view()
982 rp->view = NULL; in raw3270_deactivate_view()
991 * Add view to device with minor "minor".
993 int raw3270_add_view(struct raw3270_view *view, struct raw3270_fn *fn, in raw3270_add_view() argument
1008 atomic_set(&view->ref_count, 2); in raw3270_add_view()
1009 view->dev = rp; in raw3270_add_view()
1010 view->fn = fn; in raw3270_add_view()
1011 view->model = rp->model; in raw3270_add_view()
1012 view->rows = rp->rows; in raw3270_add_view()
1013 view->cols = rp->cols; in raw3270_add_view()
1014 view->ascebc = rp->ascebc; in raw3270_add_view()
1015 spin_lock_init(&view->lock); in raw3270_add_view()
1016 lockdep_set_subclass(&view->lock, subclass); in raw3270_add_view()
1017 list_add(&view->list, &rp->view_list); in raw3270_add_view()
1028 * Find specific view of device with minor "minor".
1033 struct raw3270_view *view, *tmp; in raw3270_find_view() local
1037 view = ERR_PTR(-ENODEV); in raw3270_find_view()
1045 view = tmp; in raw3270_find_view()
1053 return view; in raw3270_find_view()
1058 * Remove view from device and free view structure via call to view->fn->free.
1060 void raw3270_del_view(struct raw3270_view *view) in raw3270_del_view() argument
1066 rp = view->dev; in raw3270_del_view()
1068 if (rp->view == view) { in raw3270_del_view()
1069 view->fn->deactivate(view); in raw3270_del_view()
1070 rp->view = NULL; in raw3270_del_view()
1072 list_del_init(&view->list); in raw3270_del_view()
1073 if (!rp->view && raw3270_state_ready(rp)) { in raw3270_del_view()
1074 /* Try to activate another view. */ in raw3270_del_view()
1077 rp->view = nv; in raw3270_del_view()
1084 atomic_dec(&view->ref_count); in raw3270_del_view()
1085 wait_event(raw3270_wait_queue, atomic_read(&view->ref_count) == 0); in raw3270_del_view()
1086 if (view->fn->free) in raw3270_del_view()
1087 view->fn->free(view); in raw3270_del_view()
1245 /* Deactivate current view and remove all views. */ in raw3270_remove()
1247 if (rp->view) { in raw3270_remove()
1248 if (rp->view->fn->deactivate) in raw3270_remove()
1249 rp->view->fn->deactivate(rp->view); in raw3270_remove()
1250 rp->view = NULL; in raw3270_remove()