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