Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556// SPDX-License-Identifier: GPL-2.0#include <linux/tty.h>#include <linux/module.h>#include <linux/kallsyms.h>#include <linux/semaphore.h>#include <linux/sched.h>#include "tty.h"
/* Legacy tty mutex glue */
/* * Getting the big tty mutex. */
void tty_lock(struct tty_struct *tty){ tty_kref_get(tty); mutex_lock(&tty->legacy_mutex);}EXPORT_SYMBOL(tty_lock);
int tty_lock_interruptible(struct tty_struct *tty){ int ret;
tty_kref_get(tty); ret = mutex_lock_interruptible(&tty->legacy_mutex); if (ret) tty_kref_put(tty); return ret;}
void tty_unlock(struct tty_struct *tty){ mutex_unlock(&tty->legacy_mutex); tty_kref_put(tty);}EXPORT_SYMBOL(tty_unlock);
void tty_lock_slave(struct tty_struct *tty){ if (tty && tty != tty->link) tty_lock(tty);}
void tty_unlock_slave(struct tty_struct *tty){ if (tty && tty != tty->link) tty_unlock(tty);}
void tty_set_lock_subclass(struct tty_struct *tty){ lockdep_set_subclass(&tty->legacy_mutex, TTY_LOCK_SLAVE);}