🐞 fix(components/drivers/tty/pty.c): fix ptmx not init (#6970)

* 🐞 fix(components/drivers/tty/tty.c): fix wrong log format

* 🐞 fix(components/drivers/tty/pty.c): fix ptmx not init

*  feat(components/drivers/tty/pty.c): pts default use ECHO, ONLCR

* 🌈 style(components/drivers/tty/tty.c): format
This commit is contained in:
xqyjlj 2023-02-25 15:33:28 +08:00 committed by GitHub
parent 7763183074
commit e50a7e3f85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 4 deletions

View File

@ -211,6 +211,12 @@ static int ptmx_open(struct dfs_fd *fd)
ret = ld->ops->open(fd); ret = ld->ops->open(fd);
} }
rt_device_t device = (rt_device_t)fd->vnode->data;
if(fd->vnode->ref_count == 1)
{
ret = rt_device_open(device, fd->flags);
}
return ret; return ret;
} }
#ifdef RT_USING_DEVICE_OPS #ifdef RT_USING_DEVICE_OPS
@ -286,7 +292,8 @@ static int pts_register(struct tty_struct *ptm_drv, struct tty_struct *pts_drv,
extern struct termios tty_std_termios; extern struct termios tty_std_termios;
pts_drv->init_termios = tty_std_termios; pts_drv->init_termios = tty_std_termios;
pts_drv->init_termios.c_cflag = B38400 | CS8 | CREAD; pts_drv->init_termios.c_cflag = B38400 | CS8 | CREAD;
pts_drv->init_termios.c_lflag |= ICANON; pts_drv->init_termios.c_lflag |= ECHO | ICANON;
pts_drv->init_termios.c_oflag |= ONLCR;
pts_drv->init_termios.__c_ispeed = 38400; pts_drv->init_termios.__c_ispeed = 38400;
pts_drv->init_termios.__c_ospeed = 38400; pts_drv->init_termios.__c_ospeed = 38400;

View File

@ -200,7 +200,7 @@ int __tty_check_change(struct tty_struct *tty, int sig)
if (!tty_pgrp) if (!tty_pgrp)
{ {
LOG_D(tty, "sig=%d, tty->pgrp == -1!\n", sig); LOG_D("sig=%d, tty->pgrp == -1!\n", sig);
} }
return ret; return ret;
} }
@ -275,7 +275,7 @@ static int tiocsctty(struct tty_struct *tty, int arg)
if (current->leader && if (current->leader &&
(current->session == tty->session)) (current->session == tty->session))
{ {
return 0; return 0;
} }
/* /*
@ -284,7 +284,7 @@ static int tiocsctty(struct tty_struct *tty, int arg)
*/ */
if (!current->leader || current->tty) if (!current->leader || current->tty)
{ {
return -EPERM; return -EPERM;
} }
if (tty->session > 0) if (tty->session > 0)