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