/* * Shutdown fullscreen view. */ static void fs3270_save_callback(struct raw3270_request *rq, void *data) { struct fs3270 *fp; fp = (struct fs3270 *) rq->view; /* Correct idal buffer element 0 address. */ fp->rdbuf->data[0] -= 5; fp->rdbuf->size += 5; /* * If the rdbuf command failed or the idal buffer is * to small for the amount of data returned by the * rdbuf command, then we have no choice but to send * a SIGHUP to the application. */ if (rq->rc != 0 || rq->rescnt == 0) { if (fp->fs_pid) kill_pid(fp->fs_pid, SIGHUP, 1); fp->rdbuf_size = 0; } else fp->rdbuf_size = fp->rdbuf->size - rq->rescnt; raw3270_request_reset(rq); wake_up(&fp->wait); }
/* * Switch to the fullscreen view. */ static void fs3270_reset_callback(struct raw3270_request *rq, void *data) { struct fs3270 *fp; fp = (struct fs3270 *) rq->view; raw3270_request_reset(rq); wake_up(&fp->wait); }
static void fs3270_restore_callback(struct raw3270_request *rq, void *data) { struct fs3270 *fp; fp = (struct fs3270 *) rq->view; if (rq->rc != 0 || rq->rescnt != 0) { if (fp->fs_pid) kill_pid(fp->fs_pid, SIGHUP, 1); } fp->rdbuf_size = 0; raw3270_request_reset(rq); wake_up(&fp->wait); }
static void fs3270_reset_callback(struct raw3270_request *rq, void *data) { raw3270_request_reset(rq); }