Lines Matching full:view
52 struct raw3270_view *view; /* Active view. */ member
96 * Wait queue for device init/delete, view delete.
127 x = max_t(int, 0, rp->view->cols + x); in raw3270_buffer_address()
129 y = max_t(int, 0, rp->view->rows + y); in raw3270_buffer_address()
130 addr = (y * rp->view->cols) + x; in raw3270_buffer_address()
250 static int __raw3270_start(struct raw3270 *rp, struct raw3270_view *view, in __raw3270_start() argument
253 rq->view = view; in __raw3270_start()
254 raw3270_get_view(view); in __raw3270_start()
261 raw3270_put_view(view); in __raw3270_start()
269 int raw3270_view_active(struct raw3270_view *view) in raw3270_view_active() argument
271 struct raw3270 *rp = view->dev; in raw3270_view_active()
273 return rp && rp->view == view; in raw3270_view_active()
276 int raw3270_start(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start() argument
282 spin_lock_irqsave(get_ccwdev_lock(view->dev->cdev), flags); in raw3270_start()
283 rp = view->dev; in raw3270_start()
284 if (!rp || rp->view != view) in raw3270_start()
289 rc = __raw3270_start(rp, view, rq); in raw3270_start()
290 spin_unlock_irqrestore(get_ccwdev_lock(view->dev->cdev), flags); in raw3270_start()
295 int raw3270_start_request(struct raw3270_view *view, struct raw3270_request *rq, in raw3270_start_request() argument
307 return raw3270_start(view, rq); in raw3270_start_request()
311 int raw3270_start_locked(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start_locked() argument
316 rp = view->dev; in raw3270_start_locked()
317 if (!rp || rp->view != view) in raw3270_start_locked()
322 rc = __raw3270_start(rp, view, rq); in raw3270_start_locked()
327 int raw3270_start_irq(struct raw3270_view *view, struct raw3270_request *rq) in raw3270_start_irq() argument
331 rp = view->dev; in raw3270_start_irq()
332 rq->view = view; in raw3270_start_irq()
333 raw3270_get_view(view); in raw3270_start_irq()
345 struct raw3270_view *view; in raw3270_irq() local
352 view = rq ? rq->view : rp->view; in raw3270_irq()
369 /* Call interrupt handler of the view */ in raw3270_irq()
370 if (view) in raw3270_irq()
371 view->fn->intv(view, rq, irb); in raw3270_irq()
384 raw3270_put_view(view); in raw3270_irq()
402 raw3270_put_view(view); in raw3270_irq()
540 struct raw3270_view *view; in raw3270_resize_work() local
543 list_for_each_entry(view, &rp->view_list, list) { in raw3270_resize_work()
544 if (view->fn->resize) in raw3270_resize_work()
545 view->fn->resize(view, rp->model, rp->rows, rp->cols, in raw3270_resize_work()
551 /* Setup processing done, now activate a view */ in raw3270_resize_work()
552 list_for_each_entry(view, &rp->view_list, list) { in raw3270_resize_work()
553 rp->view = view; in raw3270_resize_work()
554 if (view->fn->activate(view) == 0) in raw3270_resize_work()
556 rp->view = NULL; in raw3270_resize_work()
562 rp->view = NULL; in raw3270_size_device_done()
569 struct raw3270 *rp = rq->view->dev; in raw3270_read_modified_cb()
616 struct raw3270 *rp = rq->view->dev; in raw3270_reset_device_cb()
637 if (rp->init_reset.view) in __raw3270_reset_device()
663 int raw3270_reset(struct raw3270_view *view) in raw3270_reset() argument
668 rp = view->dev; in raw3270_reset()
669 if (!rp || rp->view != view) in raw3270_reset()
674 rc = raw3270_reset_device(view->dev); in raw3270_reset()
682 struct raw3270_view *view; in __raw3270_disconnect() local
685 rp->view = &rp->init_view; in __raw3270_disconnect()
689 view = rq->view; in __raw3270_disconnect()
694 raw3270_put_view(view); in __raw3270_disconnect()
700 static void raw3270_init_irq(struct raw3270_view *view, struct raw3270_request *rq, in raw3270_init_irq() argument
715 rp = view->dev; in raw3270_init_irq()
756 rp->view = &rp->init_view; in raw3270_setup_device()
882 * view in the panic() context, due to locking restrictions.
884 int raw3270_view_lock_unavailable(struct raw3270_view *view) in raw3270_view_lock_unavailable() argument
886 struct raw3270 *rp = view->dev; in raw3270_view_lock_unavailable()
895 static int raw3270_assign_activate_view(struct raw3270 *rp, struct raw3270_view *view) in raw3270_assign_activate_view() argument
897 rp->view = view; in raw3270_assign_activate_view()
898 return view->fn->activate(view); in raw3270_assign_activate_view()
901 static int __raw3270_activate_view(struct raw3270 *rp, struct raw3270_view *view) in __raw3270_activate_view() argument
906 if (rp->view == view) in __raw3270_activate_view()
912 if (rp->view && rp->view->fn->deactivate) { in __raw3270_activate_view()
913 oldview = rp->view; in __raw3270_activate_view()
917 rc = raw3270_assign_activate_view(rp, view); in __raw3270_activate_view()
921 /* Didn't work. Try to reactivate the old view. */ in __raw3270_activate_view()
928 /* Didn't work as well. Try any other view. */ in __raw3270_activate_view()
930 if (nv == view || nv == oldview) in __raw3270_activate_view()
935 rp->view = NULL; in __raw3270_activate_view()
941 * Activate a view.
943 int raw3270_activate_view(struct raw3270_view *view) in raw3270_activate_view() argument
949 rp = view->dev; in raw3270_activate_view()
953 rc = __raw3270_activate_view(rp, view); in raw3270_activate_view()
960 * Deactivate current view.
962 void raw3270_deactivate_view(struct raw3270_view *view) in raw3270_deactivate_view() argument
967 rp = view->dev; in raw3270_deactivate_view()
971 if (rp->view == view) { in raw3270_deactivate_view()
972 view->fn->deactivate(view); in raw3270_deactivate_view()
973 rp->view = NULL; in raw3270_deactivate_view()
974 /* Move deactivated view to end of list. */ in raw3270_deactivate_view()
975 list_del_init(&view->list); in raw3270_deactivate_view()
976 list_add_tail(&view->list, &rp->view_list); in raw3270_deactivate_view()
977 /* Try to activate another view. */ in raw3270_deactivate_view()
979 list_for_each_entry(view, &rp->view_list, list) { in raw3270_deactivate_view()
980 rp->view = view; in raw3270_deactivate_view()
981 if (view->fn->activate(view) == 0) in raw3270_deactivate_view()
983 rp->view = NULL; in raw3270_deactivate_view()
992 * Add view to device with minor "minor".
994 int raw3270_add_view(struct raw3270_view *view, struct raw3270_fn *fn, in raw3270_add_view() argument
1009 atomic_set(&view->ref_count, 2); in raw3270_add_view()
1010 view->dev = rp; in raw3270_add_view()
1011 view->fn = fn; in raw3270_add_view()
1012 view->model = rp->model; in raw3270_add_view()
1013 view->rows = rp->rows; in raw3270_add_view()
1014 view->cols = rp->cols; in raw3270_add_view()
1015 view->ascebc = rp->ascebc; in raw3270_add_view()
1016 spin_lock_init(&view->lock); in raw3270_add_view()
1017 lockdep_set_subclass(&view->lock, subclass); in raw3270_add_view()
1018 list_add(&view->list, &rp->view_list); in raw3270_add_view()
1029 * Find specific view of device with minor "minor".
1034 struct raw3270_view *view, *tmp; in raw3270_find_view() local
1038 view = ERR_PTR(-ENODEV); in raw3270_find_view()
1046 view = tmp; in raw3270_find_view()
1054 return view; in raw3270_find_view()
1059 * Remove view from device and free view structure via call to view->fn->free.
1061 void raw3270_del_view(struct raw3270_view *view) in raw3270_del_view() argument
1067 rp = view->dev; in raw3270_del_view()
1069 if (rp->view == view) { in raw3270_del_view()
1070 view->fn->deactivate(view); in raw3270_del_view()
1071 rp->view = NULL; in raw3270_del_view()
1073 list_del_init(&view->list); in raw3270_del_view()
1074 if (!rp->view && raw3270_state_ready(rp)) { in raw3270_del_view()
1075 /* Try to activate another view. */ in raw3270_del_view()
1078 rp->view = nv; in raw3270_del_view()
1085 atomic_dec(&view->ref_count); in raw3270_del_view()
1086 wait_event(raw3270_wait_queue, atomic_read(&view->ref_count) == 0); in raw3270_del_view()
1087 if (view->fn->free) in raw3270_del_view()
1088 view->fn->free(view); in raw3270_del_view()
1246 /* Deactivate current view and remove all views. */ in raw3270_remove()
1248 if (rp->view) { in raw3270_remove()
1249 if (rp->view->fn->deactivate) in raw3270_remove()
1250 rp->view->fn->deactivate(rp->view); in raw3270_remove()
1251 rp->view = NULL; in raw3270_remove()