blob: 2f79ac55c444f43189ff91025c4515b8e811ef2a [file] [log] [blame]
#ifndef __BACKPORT_LINUX_TTY_H
#define __BACKPORT_LINUX_TTY_H
#include_next <linux/tty.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) && \
LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
#define tty_set_termios LINUX_BACKPORT(tty_set_termios)
extern int tty_set_termios(struct tty_struct *tty, struct ktermios *kt);
#endif
/*
* This really belongs into uapi/asm-generic/termbits.h but
* that doesn't usually get included directly.
*/
#ifndef EXTPROC
#define EXTPROC 0200000
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
#include <linux/smp_lock.h>
static inline void tty_lock(void) __acquires(kernel_lock)
{
#ifdef CONFIG_LOCK_KERNEL
/* kernel_locked is 1 for !CONFIG_LOCK_KERNEL */
WARN_ON(kernel_locked());
#endif
lock_kernel();
}
static inline void tty_unlock(void) __releases(kernel_lock)
{
unlock_kernel();
}
#define tty_locked() (kernel_locked())
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
#define n_tty_ioctl_helper LINUX_BACKPORT(n_tty_ioctl_helper)
extern int n_tty_ioctl_helper(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg);
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
/* Backports tty_lock: Localise the lock */
#define tty_lock(__tty) tty_lock()
#define tty_unlock(__tty) tty_unlock()
#define tty_port_register_device(port, driver, index, device) \
tty_register_device(driver, index, device)
#endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
extern void tty_port_tty_wakeup(struct tty_port *port);
extern void tty_port_tty_hangup(struct tty_port *port, bool check_clocal);
#endif
#endif /* __BACKPORT_LINUX_TTY_H */