mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 13:44:15 +08:00
tty: Move and rename send_prio_char() as tty_send_xchar()
Relocate the file-scope function, send_prio_char(), as a global helper tty_send_xchar(). Remove the global declarations for tty_write_lock()/tty_write_unlock(), as these are file-scope only now. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c545b66c69
commit
136d5258b2
@ -1023,14 +1023,14 @@ static ssize_t tty_read(struct file *file, char __user *buf, size_t count,
|
||||
return i;
|
||||
}
|
||||
|
||||
void tty_write_unlock(struct tty_struct *tty)
|
||||
static void tty_write_unlock(struct tty_struct *tty)
|
||||
__releases(&tty->atomic_write_lock)
|
||||
{
|
||||
mutex_unlock(&tty->atomic_write_lock);
|
||||
wake_up_interruptible_poll(&tty->write_wait, POLLOUT);
|
||||
}
|
||||
|
||||
int tty_write_lock(struct tty_struct *tty, int ndelay)
|
||||
static int tty_write_lock(struct tty_struct *tty, int ndelay)
|
||||
__acquires(&tty->atomic_write_lock)
|
||||
{
|
||||
if (!mutex_trylock(&tty->atomic_write_lock)) {
|
||||
@ -1217,6 +1217,35 @@ ssize_t redirected_tty_write(struct file *file, const char __user *buf,
|
||||
return tty_write(file, buf, count, ppos);
|
||||
}
|
||||
|
||||
/**
|
||||
* tty_send_xchar - send priority character
|
||||
*
|
||||
* Send a high priority character to the tty even if stopped
|
||||
*
|
||||
* Locking: none for xchar method, write ordering for write method.
|
||||
*/
|
||||
|
||||
int tty_send_xchar(struct tty_struct *tty, char ch)
|
||||
{
|
||||
int was_stopped = tty->stopped;
|
||||
|
||||
if (tty->ops->send_xchar) {
|
||||
tty->ops->send_xchar(tty, ch);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (tty_write_lock(tty, 0) < 0)
|
||||
return -ERESTARTSYS;
|
||||
|
||||
if (was_stopped)
|
||||
start_tty(tty);
|
||||
tty->ops->write(tty, &ch, 1);
|
||||
if (was_stopped)
|
||||
stop_tty(tty);
|
||||
tty_write_unlock(tty);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char ptychar[] = "pqrstuvwxyzabcde";
|
||||
|
||||
/**
|
||||
|
@ -911,35 +911,6 @@ static int set_ltchars(struct tty_struct *tty, struct ltchars __user *ltchars)
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* send_prio_char - send priority character
|
||||
*
|
||||
* Send a high priority character to the tty even if stopped
|
||||
*
|
||||
* Locking: none for xchar method, write ordering for write method.
|
||||
*/
|
||||
|
||||
static int send_prio_char(struct tty_struct *tty, char ch)
|
||||
{
|
||||
int was_stopped = tty->stopped;
|
||||
|
||||
if (tty->ops->send_xchar) {
|
||||
tty->ops->send_xchar(tty, ch);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (tty_write_lock(tty, 0) < 0)
|
||||
return -ERESTARTSYS;
|
||||
|
||||
if (was_stopped)
|
||||
start_tty(tty);
|
||||
tty->ops->write(tty, &ch, 1);
|
||||
if (was_stopped)
|
||||
stop_tty(tty);
|
||||
tty_write_unlock(tty);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* tty_change_softcar - carrier change ioctl helper
|
||||
* @tty: tty to update
|
||||
@ -1194,11 +1165,11 @@ int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file,
|
||||
break;
|
||||
case TCIOFF:
|
||||
if (STOP_CHAR(tty) != __DISABLED_CHAR)
|
||||
return send_prio_char(tty, STOP_CHAR(tty));
|
||||
return tty_send_xchar(tty, STOP_CHAR(tty));
|
||||
break;
|
||||
case TCION:
|
||||
if (START_CHAR(tty) != __DISABLED_CHAR)
|
||||
return send_prio_char(tty, START_CHAR(tty));
|
||||
return tty_send_xchar(tty, START_CHAR(tty));
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
|
@ -418,6 +418,7 @@ extern void tty_unregister_device(struct tty_driver *driver, unsigned index);
|
||||
extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
|
||||
int buflen);
|
||||
extern void tty_write_message(struct tty_struct *tty, char *msg);
|
||||
extern int tty_send_xchar(struct tty_struct *tty, char ch);
|
||||
extern int tty_put_char(struct tty_struct *tty, unsigned char c);
|
||||
extern int tty_chars_in_buffer(struct tty_struct *tty);
|
||||
extern int tty_write_room(struct tty_struct *tty);
|
||||
@ -502,8 +503,6 @@ extern struct tty_struct *tty_pair_get_pty(struct tty_struct *tty);
|
||||
extern struct mutex tty_mutex;
|
||||
extern spinlock_t tty_files_lock;
|
||||
|
||||
extern void tty_write_unlock(struct tty_struct *tty);
|
||||
extern int tty_write_lock(struct tty_struct *tty, int ndelay);
|
||||
#define tty_is_writelocked(tty) (mutex_is_locked(&tty->atomic_write_lock))
|
||||
|
||||
extern void tty_port_init(struct tty_port *port);
|
||||
|
Loading…
Reference in New Issue
Block a user