EXTERN struct filp {
mode_t filp_mode; /* RW bits, telling how file is opened */
int filp_flags; /* flags from open and fcntl */
+ int filp_state; /* state for crash recovery */
int filp_count; /* how many file descriptors share this slot?*/
/* struct inode *filp_ino;*/ /* pointer to the inode */
*/
int filp_selectors; /* select()ing processes blocking on this fd */
int filp_select_ops; /* interested in these SEL_* operations */
+ int filp_select_flags; /* Select flags for the filp */
/* following are for fd-type-specific select() */
int filp_pipe_select_ops;
#define FILP_CLOSED 0 /* filp_mode: associated device closed */
+#define FS_NORMAL 0 /* file descriptor can be used normally */
+#define FS_NEEDS_REOPEN 1 /* file descriptor needs to be re-opened */
+
+#define FSF_UPDATE 1 /* The driver should be informed about new
+ * state.
+ */
+#define FSF_BUSY 2 /* Select operation sent to driver but no
+ * reply yet.
+ */
+#define FSF_BLOCK 4 /* Request is blocking, the driver should
+ * keep state.
+ */
+
#define NIL_FILP (struct filp *) 0 /* indicates absence of a filp slot */