|
@@ -254,6 +254,18 @@ static int pty_bsd_ioctl(struct tty_struct *tty, struct file *file,
|
|
static int legacy_count = CONFIG_LEGACY_PTY_COUNT;
|
|
static int legacy_count = CONFIG_LEGACY_PTY_COUNT;
|
|
module_param(legacy_count, int, 0);
|
|
module_param(legacy_count, int, 0);
|
|
|
|
|
|
|
|
+static const struct tty_operations pty_ops_bsd = {
|
|
|
|
+ .open = pty_open,
|
|
|
|
+ .close = pty_close,
|
|
|
|
+ .write = pty_write,
|
|
|
|
+ .write_room = pty_write_room,
|
|
|
|
+ .flush_buffer = pty_flush_buffer,
|
|
|
|
+ .chars_in_buffer = pty_chars_in_buffer,
|
|
|
|
+ .unthrottle = pty_unthrottle,
|
|
|
|
+ .set_termios = pty_set_termios,
|
|
|
|
+ .ioctl = pty_bsd_ioctl,
|
|
|
|
+};
|
|
|
|
+
|
|
static void __init legacy_pty_init(void)
|
|
static void __init legacy_pty_init(void)
|
|
{
|
|
{
|
|
if (legacy_count <= 0)
|
|
if (legacy_count <= 0)
|
|
@@ -284,7 +296,6 @@ static void __init legacy_pty_init(void)
|
|
pty_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW;
|
|
pty_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW;
|
|
pty_driver->other = pty_slave_driver;
|
|
pty_driver->other = pty_slave_driver;
|
|
tty_set_operations(pty_driver, &pty_ops);
|
|
tty_set_operations(pty_driver, &pty_ops);
|
|
- pty_driver->ioctl = pty_bsd_ioctl;
|
|
|
|
|
|
|
|
pty_slave_driver->owner = THIS_MODULE;
|
|
pty_slave_driver->owner = THIS_MODULE;
|
|
pty_slave_driver->driver_name = "pty_slave";
|
|
pty_slave_driver->driver_name = "pty_slave";
|
|
@@ -377,6 +388,19 @@ static int pty_unix98_ioctl(struct tty_struct *tty, struct file *file,
|
|
return -ENOIOCTLCMD;
|
|
return -ENOIOCTLCMD;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static const struct tty_operations pty_unix98_ops = {
|
|
|
|
+ .open = pty_open,
|
|
|
|
+ .close = pty_close,
|
|
|
|
+ .write = pty_write,
|
|
|
|
+ .write_room = pty_write_room,
|
|
|
|
+ .flush_buffer = pty_flush_buffer,
|
|
|
|
+ .chars_in_buffer = pty_chars_in_buffer,
|
|
|
|
+ .unthrottle = pty_unthrottle,
|
|
|
|
+ .set_termios = pty_set_termios,
|
|
|
|
+ .ioctl = pty_unix98_ioctl
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+
|
|
static void __init unix98_pty_init(void)
|
|
static void __init unix98_pty_init(void)
|
|
{
|
|
{
|
|
ptm_driver = alloc_tty_driver(NR_UNIX98_PTY_MAX);
|
|
ptm_driver = alloc_tty_driver(NR_UNIX98_PTY_MAX);
|
|
@@ -403,8 +427,7 @@ static void __init unix98_pty_init(void)
|
|
ptm_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW |
|
|
ptm_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW |
|
|
TTY_DRIVER_DYNAMIC_DEV | TTY_DRIVER_DEVPTS_MEM;
|
|
TTY_DRIVER_DYNAMIC_DEV | TTY_DRIVER_DEVPTS_MEM;
|
|
ptm_driver->other = pts_driver;
|
|
ptm_driver->other = pts_driver;
|
|
- tty_set_operations(ptm_driver, &pty_ops);
|
|
|
|
- ptm_driver->ioctl = pty_unix98_ioctl;
|
|
|
|
|
|
+ tty_set_operations(ptm_driver, &pty_unix98_ops);
|
|
|
|
|
|
pts_driver->owner = THIS_MODULE;
|
|
pts_driver->owner = THIS_MODULE;
|
|
pts_driver->driver_name = "pty_slave";
|
|
pts_driver->driver_name = "pty_slave";
|