1 /* This is the filp table. It is an intermediary between file descriptors and
2 * inodes. A slot is free if filp_count == 0.
6 mode_t filp_mode
; /* RW bits, telling how file is opened */
7 int filp_flags
; /* flags from open and fcntl */
8 int filp_count
; /* how many file descriptors share this slot?*/
9 /* struct inode *filp_ino;*/ /* pointer to the inode */
11 struct vnode
*filp_vno
;
13 u64_t filp_pos
; /* file position */
15 /* the following fields are for select() and are owned by the generic
16 * select() code (i.e., fd-type-specific select() code can't touch these).
18 int filp_selectors
; /* select()ing processes blocking on this fd */
19 int filp_select_ops
; /* interested in these SEL_* operations */
21 /* following are for fd-type-specific select() */
22 int filp_pipe_select_ops
;
25 #define FILP_CLOSED 0 /* filp_mode: associated device closed */
27 #define NIL_FILP (struct filp *) 0 /* indicates absence of a filp slot */