thread libs: also remove the static libraries from /usr/lib
[dragonfly.git] / sys / sys / vnode.h
index 45de61a..bd3a241 100644 (file)
  */
 TAILQ_HEAD(buflists, buf);
 
+/*
+ * Struct for mount options to printable formats.
+ */
+struct mountctl_opt {
+        int             o_opt;
+        const char      *o_name;
+};
+
 /*
  * Range locks protect offset ranges in files and directories at a high
  * level, allowing the actual I/O to be broken down into smaller pieces.
@@ -286,11 +294,15 @@ struct vnode {
 #define        VOWANT          0x00020000      /* a process is waiting for VOLOCK */
 #define        VRECLAIMED      0x00040000      /* This vnode has been destroyed */
 #define        VFREE           0x00080000      /* This vnode is on the freelist */
-/* open for business    0x00100000 */
+#define VNOTSEEKABLE   0x00100000      /* rd/wr ignores file offset */
 #define        VONWORKLST      0x00200000      /* On syncer work-list */
 #define VMOUNT         0x00400000      /* Mount in progress */
 #define        VOBJDIRTY       0x00800000      /* object might be dirty */
 
+#define VMP_READ       0x01000000      /* supports MPSAFE read */
+#define VMP_WRITE      0x02000000      /* supports MPSAFE write */
+#define VMP_GETATTR    0x04000000      /* supports MPSAFE getattr */
+
 /*
  * vmntvnodescan() flags
  */
@@ -459,7 +471,6 @@ int getnewvnode (enum vtagtype tag, struct mount *mp,
 int    getspecialvnode (enum vtagtype tag, struct mount *mp, 
                    struct vop_ops **ops, struct vnode **vpp, int timo, 
                    int lkflags);
-int    spec_vnoperate (struct vop_generic_args *);
 int    speedup_syncer (void);
 void   vattr_null (struct vattr *vap);
 int    vcount (struct vnode *vp);
@@ -518,14 +529,18 @@ int       vn_rdwr_inchunks (enum uio_rw rw, struct vnode *vp, caddr_t base,
 int    vn_stat (struct vnode *vp, struct stat *sb, struct ucred *cred);
 cdev_t vn_todev (struct vnode *vp);
 void   vfs_timestamp (struct timespec *);
+size_t vfs_flagstostr(int flags, const struct mountctl_opt *optp, char *buf, size_t len, int *errorp);
 void   vn_mark_atime(struct vnode *vp, struct thread *td);
 int    vn_writechk (struct vnode *vp, struct nchandle *nch);
 int    ncp_writechk(struct nchandle *nch);
 int    vop_stdopen (struct vop_open_args *ap);
 int    vop_stdclose (struct vop_close_args *ap);
+int    vop_stdmountctl(struct vop_mountctl_args *ap);
 int    vop_stdgetpages(struct vop_getpages_args *ap);
 int    vop_stdputpages(struct vop_putpages_args *ap);
 int    vop_stdmarkatime(struct vop_markatime_args *ap);
+int    vop_stdnoread(struct vop_read_args *ap);
+int    vop_stdnowrite(struct vop_write_args *ap);
 int    vop_nopoll (struct vop_poll_args *ap);
 int    vop_stdpathconf (struct vop_pathconf_args *ap);
 int    vop_stdpoll (struct vop_poll_args *ap);
@@ -574,11 +589,9 @@ void       vn_syncer_add_to_worklist(struct vnode *, int);
 void   vnlru_proc_wait(void);
 
 extern struct vop_ops default_vnode_vops;
-extern struct vop_ops spec_vnode_vops;
 extern struct vop_ops dead_vnode_vops;
 
 extern struct vop_ops *default_vnode_vops_p;
-extern struct vop_ops *spec_vnode_vops_p;
 extern struct vop_ops *dead_vnode_vops_p;
 
 #endif /* _KERNEL */