static int x25_asy_open_tty(struct tty_struct *tty) { struct x25_asy *sl; int err; if (tty->ops->write == NULL) return -EOPNOTSUPP; /* OK. Find a free X.25 channel to use. */ sl = x25_asy_alloc(); if (sl == NULL) return -ENFILE; sl->tty = tty; tty->disc_data = sl; tty->receive_room = 65536; tty_driver_flush_buffer(tty); tty_ldisc_flush(tty); /* Restore default settings */ sl->dev->type = ARPHRD_X25; /* Perform the low-level X.25 async init */ err = x25_asy_open(sl->dev); if (err) { x25_asy_free(sl); return err; } /* Done. We have linked the TTY line to a channel. */ return 0; }
static int x25_asy_open_tty(struct tty_struct *tty) { struct x25_asy *sl = tty->disc_data; int err; if (tty->ops->write == NULL) return -EOPNOTSUPP; /* First make sure we're not already connected. */ if (sl && sl->magic == X25_ASY_MAGIC) return -EEXIST; /* OK. Find a free X.25 channel to use. */ sl = x25_asy_alloc(); if (sl == NULL) return -ENFILE; sl->tty = tty; tty->disc_data = sl; tty->receive_room = 65536; tty_driver_flush_buffer(tty); tty_ldisc_flush(tty); /* Restore default settings */ sl->dev->type = ARPHRD_X25; /* Perform the low-level X.25 async init */ err = x25_asy_open(sl->dev); if (err) return err; /* Done. We have linked the TTY line to a channel. */ return sl->dev->base_addr; }
static int x25_asy_open_tty(struct tty_struct *tty) { struct x25_asy *sl = tty->disc_data; int err; if (tty->ops->write == NULL) return -EOPNOTSUPP; /* */ if (sl && sl->magic == X25_ASY_MAGIC) return -EEXIST; /* */ sl = x25_asy_alloc(); if (sl == NULL) return -ENFILE; sl->tty = tty; tty->disc_data = sl; tty->receive_room = 65536; tty_driver_flush_buffer(tty); tty_ldisc_flush(tty); /* */ sl->dev->type = ARPHRD_X25; /* */ err = x25_asy_open(sl->dev); if (err) return err; /* */ return 0; }
static int x25_asy_open_tty(struct tty_struct *tty) { struct x25_asy *sl = (struct x25_asy *) tty->disc_data; int err; /* First make sure we're not already connected. */ if (sl && sl->magic == X25_ASY_MAGIC) { return -EEXIST; } /* OK. Find a free X.25 channel to use. */ if ((sl = x25_asy_alloc()) == NULL) { return -ENFILE; } sl->tty = tty; tty->disc_data = sl; if (tty->driver->flush_buffer) { tty->driver->flush_buffer(tty); } if (tty->ldisc.flush_buffer) { tty->ldisc.flush_buffer(tty); } /* Restore default settings */ sl->dev->type = ARPHRD_X25; /* Perform the low-level X.25 async init */ if ((err = x25_asy_open(sl->dev))) return err; /* Done. We have linked the TTY line to a channel. */ return sl->dev->base_addr; }