153838Spendry /* 263231Sbostic * Copyright (c) 1992, 1993 363231Sbostic * The Regents of the University of California. All rights reserved. 453838Spendry * 553838Spendry * This code is derived from software donated to Berkeley by 653838Spendry * Jan-Simon Pendry. 753838Spendry * 853838Spendry * %sccs.include.redist.c% 953838Spendry * 10*68727Smckusick * @(#)fdesc.h 8.8 (Berkeley) 04/03/95 1153838Spendry * 1259255Spendry * $Id: fdesc.h,v 1.8 1993/04/06 15:28:33 jsp Exp $ 1353838Spendry */ 1453838Spendry 1553838Spendry #ifdef KERNEL 1653838Spendry struct fdescmount { 1753838Spendry struct vnode *f_root; /* Root node */ 1853838Spendry }; 1953838Spendry 2059255Spendry #define FD_ROOT 2 2159255Spendry #define FD_DEVFD 3 2259255Spendry #define FD_STDIN 4 2359255Spendry #define FD_STDOUT 5 2459255Spendry #define FD_STDERR 6 2559255Spendry #define FD_CTTY 7 2659255Spendry #define FD_DESC 8 2759255Spendry #define FD_MAX 12 2859255Spendry 2959255Spendry typedef enum { 3059255Spendry Froot, 3159255Spendry Fdevfd, 3259255Spendry Fdesc, 3359255Spendry Flink, 3459255Spendry Fctty 3559255Spendry } fdntype; 3659255Spendry 3753838Spendry struct fdescnode { 3867715Smckusick LIST_ENTRY(fdescnode) fd_hash; /* Hash list */ 3965513Spendry struct vnode *fd_vnode; /* Back ptr to vnode */ 4059255Spendry fdntype fd_type; /* Type of this node */ 4159255Spendry unsigned fd_fd; /* Fd to be dup'ed */ 4259255Spendry char *fd_link; /* Link to fd/n */ 4359255Spendry int fd_ix; /* filesystem index */ 4453838Spendry }; 4553838Spendry 4653838Spendry #define VFSTOFDESC(mp) ((struct fdescmount *)((mp)->mnt_data)) 4753838Spendry #define VTOFDESC(vp) ((struct fdescnode *)(vp)->v_data) 4853838Spendry 4959255Spendry extern dev_t devctty; 5068616Smckusick extern int fdesc_init __P((struct vfsconf *)); 5165513Spendry extern int fdesc_root __P((struct mount *, struct vnode **)); 5259255Spendry extern int fdesc_allocvp __P((fdntype, int, struct mount *, struct vnode **)); 5353838Spendry extern int (**fdesc_vnodeop_p)(); 5453838Spendry extern struct vfsops fdesc_vfsops; 5553838Spendry #endif /* KERNEL */ 56