xref: /csrg-svn/sys/miscfs/fdesc/fdesc.h (revision 59255)
153838Spendry /*
253838Spendry  * Copyright (c) 1992 The Regents of the University of California
353838Spendry  * Copyright (c) 1990, 1992 Jan-Simon Pendry
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*59255Spendry  *	@(#)fdesc.h	7.2 (Berkeley) 04/22/93
1253838Spendry  *
13*59255Spendry  * $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 
21*59255Spendry #define FD_ROOT		2
22*59255Spendry #define FD_DEVFD	3
23*59255Spendry #define FD_STDIN	4
24*59255Spendry #define FD_STDOUT	5
25*59255Spendry #define FD_STDERR	6
26*59255Spendry #define FD_CTTY		7
27*59255Spendry #define FD_DESC		8
28*59255Spendry #define FD_MAX		12
29*59255Spendry 
30*59255Spendry typedef enum {
31*59255Spendry 	Froot,
32*59255Spendry 	Fdevfd,
33*59255Spendry 	Fdesc,
34*59255Spendry 	Flink,
35*59255Spendry 	Fctty
36*59255Spendry } fdntype;
37*59255Spendry 
3853838Spendry struct fdescnode {
39*59255Spendry 	fdntype		fd_type;	/* Type of this node */
40*59255Spendry 	unsigned	fd_fd;		/* Fd to be dup'ed */
41*59255Spendry 	char		*fd_link;	/* Link to fd/n */
42*59255Spendry 	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 
48*59255Spendry extern dev_t devctty;
49*59255Spendry 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