1139826Simp/* SPDX-License-Identifier: GPL-2.0-or-later */
253541Sshin/* -*- linux-c -*- --------------------------------------------------------- *
353541Sshin *
453541Sshin * linux/include/linux/devpts_fs.h
553541Sshin *
653541Sshin *  Copyright 1998-2004 H. Peter Anvin -- All Rights Reserved
753541Sshin *
853541Sshin * ------------------------------------------------------------------------- */
953541Sshin
1053541Sshin#ifndef _LINUX_DEVPTS_FS_H
1153541Sshin#define _LINUX_DEVPTS_FS_H
1253541Sshin
1353541Sshin#include <linux/errno.h>
1453541Sshin
1553541Sshin#ifdef CONFIG_UNIX98_PTYS
1653541Sshin
1753541Sshinstruct pts_fs_info;
1853541Sshin
1953541Sshinstruct vfsmount *devpts_mntget(struct file *, struct pts_fs_info *);
2053541Sshinstruct pts_fs_info *devpts_acquire(struct file *);
2153541Sshinvoid devpts_release(struct pts_fs_info *);
2253541Sshin
2353541Sshinint devpts_new_index(struct pts_fs_info *);
2453541Sshinvoid devpts_kill_index(struct pts_fs_info *, int);
2553541Sshin
2653541Sshin/* mknod in devpts */
2753541Sshinstruct dentry *devpts_pty_new(struct pts_fs_info *, int, void *);
2853541Sshin/* get private structure */
29174510Sobrienvoid *devpts_get_priv(struct dentry *);
3053541Sshin/* unlink */
3153541Sshinvoid devpts_pty_kill(struct dentry *);
3253541Sshin
3353541Sshin/* in pty.c */
3453541Sshinint ptm_open_peer(struct file *master, struct tty_struct *tty, int flags);
3553541Sshin
3653541Sshin#else
3753541Sshinstatic inline int
3853541Sshinptm_open_peer(struct file *master, struct tty_struct *tty, int flags)
3953541Sshin{
4053541Sshin	return -EIO;
4153541Sshin}
4253541Sshin#endif
4353541Sshin
4453541Sshin
4553541Sshin#endif /* _LINUX_DEVPTS_FS_H */
4653541Sshin