1 /* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * All rights reserved. 5 * 6 * This code is derived from software donated to Berkeley by 7 * Jan-Simon Pendry. 8 * 9 * %sccs.include.redist.c% 10 * 11 * @(#)fdesc.h 8.1 (Berkeley) 06/10/93 12 * 13 * $Id: fdesc.h,v 1.8 1993/04/06 15:28:33 jsp Exp $ 14 */ 15 16 #ifdef KERNEL 17 struct fdescmount { 18 struct vnode *f_root; /* Root node */ 19 }; 20 21 #define FD_ROOT 2 22 #define FD_DEVFD 3 23 #define FD_STDIN 4 24 #define FD_STDOUT 5 25 #define FD_STDERR 6 26 #define FD_CTTY 7 27 #define FD_DESC 8 28 #define FD_MAX 12 29 30 typedef enum { 31 Froot, 32 Fdevfd, 33 Fdesc, 34 Flink, 35 Fctty 36 } fdntype; 37 38 struct fdescnode { 39 fdntype fd_type; /* Type of this node */ 40 unsigned fd_fd; /* Fd to be dup'ed */ 41 char *fd_link; /* Link to fd/n */ 42 int fd_ix; /* filesystem index */ 43 }; 44 45 #define VFSTOFDESC(mp) ((struct fdescmount *)((mp)->mnt_data)) 46 #define VTOFDESC(vp) ((struct fdescnode *)(vp)->v_data) 47 48 extern dev_t devctty; 49 extern int fdesc_allocvp __P((fdntype, int, struct mount *, struct vnode **)); 50 extern int (**fdesc_vnodeop_p)(); 51 extern struct vfsops fdesc_vfsops; 52 #endif /* KERNEL */ 53