tubttyscl.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
- /*
- * IBM/3270 Driver -- Copyright (C) 2000, 2001 UTS Global LLC
- *
- * tubttyscl.c -- Linemode tty driver scroll-timing functions
- *
- *
- *
- *
- *
- * Author: Richard Hitt
- */
- #include "tubio.h"
- void tty3270_scl_settimer(tub_t *);
- void tty3270_scl_resettimer(tub_t *);
- static void tty3270_scl_timeout(unsigned long);
- void
- tty3270_scl_settimer(tub_t *tubp)
- {
- struct timer_list *tp = &tubp->tty_stimer;
- if (tubp->flags & TUB_SCROLLTIMING)
- return;
- if (tubp->tty_scrolltime == 0)
- return;
- init_timer(tp);
- tp->expires = jiffies + HZ * tubp->tty_scrolltime;
- tp->data = (unsigned long)tubp;
- tp->function = tty3270_scl_timeout;
- add_timer(tp);
- tubp->flags |= TUB_SCROLLTIMING;
- }
- void
- tty3270_scl_resettimer(tub_t *tubp)
- {
- struct timer_list *tp = &tubp->tty_stimer;
- if ((tubp->flags & TUB_SCROLLTIMING) == 0)
- return;
- del_timer(tp);
- tubp->flags &= ~TUB_SCROLLTIMING;
- }
- static void
- tty3270_scl_timeout(unsigned long data)
- {
- tub_t *tubp = (void *)data;
- long flags;
- TUBLOCK(tubp->irq, flags);
- tubp->stat = TBS_RUNNING;
- tty3270_scl_resettimer(tubp);
- tubp->cmd = TBC_CLRUPDLOG;
- tty3270_build(tubp);
- TUBUNLOCK(tubp->irq, flags);
- }
- int
- tty3270_scl_set(tub_t *tubp, char *buf, int count)
- {
- if (strncmp(buf, "scrolltime=", 11) == 0) {
- tubp->tty_scrolltime =
- simple_strtoul(buf + 11, 0, 0);
- return count;
- }
- return 0;
- }
- int
- tty3270_scl_init(tub_t *tubp)
- {
- extern int tubscrolltime;
- tubp->tty_scrolltime = tubscrolltime;
- if (tubp->tty_scrolltime < 0)
- tubp->tty_scrolltime = DEFAULT_SCROLLTIME;
- return 0;
- }
- void
- tty3270_scl_fini(tub_t *tubp)
- {
- if ((tubp->flags & TUB_OPEN_STET) == 0)
- tty3270_scl_resettimer(tubp);
- }