xref: /csrg-svn/sys/miscfs/fdesc/fdesc.h (revision 63231)
153838Spendry /*
2*63231Sbostic  * Copyright (c) 1992, 1993
3*63231Sbostic  *	The Regents of the University of California.  All rights reserved.
453838Spendry  * All rights reserved.
553838Spendry  *
653838Spendry  * This code is derived from software donated to Berkeley by
753838Spendry  * Jan-Simon Pendry.
853838Spendry  *
953838Spendry  * %sccs.include.redist.c%
1053838Spendry  *
11*63231Sbostic  *	@(#)fdesc.h	8.1 (Berkeley) 06/10/93
1253838Spendry  *
1359255Spendry  * $Id: fdesc.h,v 1.8 1993/04/06 15:28:33 jsp Exp $
1453838Spendry  */
1553838Spendry 
1653838Spendry #ifdef KERNEL
1753838Spendry struct fdescmount {
1853838Spendry 	struct vnode	*f_root;	/* Root node */
1953838Spendry };
2053838Spendry 
2159255Spendry #define FD_ROOT		2
2259255Spendry #define FD_DEVFD	3
2359255Spendry #define FD_STDIN	4
2459255Spendry #define FD_STDOUT	5
2559255Spendry #define FD_STDERR	6
2659255Spendry #define FD_CTTY		7
2759255Spendry #define FD_DESC		8
2859255Spendry #define FD_MAX		12
2959255Spendry 
3059255Spendry typedef enum {
3159255Spendry 	Froot,
3259255Spendry 	Fdevfd,
3359255Spendry 	Fdesc,
3459255Spendry 	Flink,
3559255Spendry 	Fctty
3659255Spendry } fdntype;
3759255Spendry 
3853838Spendry struct fdescnode {
3959255Spendry 	fdntype		fd_type;	/* Type of this node */
4059255Spendry 	unsigned	fd_fd;		/* Fd to be dup'ed */
4159255Spendry 	char		*fd_link;	/* Link to fd/n */
4259255Spendry 	int		fd_ix;		/* filesystem index */
4353838Spendry };
4453838Spendry 
4553838Spendry #define VFSTOFDESC(mp)	((struct fdescmount *)((mp)->mnt_data))
4653838Spendry #define	VTOFDESC(vp) ((struct fdescnode *)(vp)->v_data)
4753838Spendry 
4859255Spendry extern dev_t devctty;
4959255Spendry extern int fdesc_allocvp __P((fdntype, int, struct mount *, struct vnode **));
5053838Spendry extern int (**fdesc_vnodeop_p)();
5153838Spendry extern struct vfsops fdesc_vfsops;
5253838Spendry #endif /* KERNEL */
53