vrevoke/single-user - fix more revoke issues.
[dragonfly.git] / sys / sys / device.h
index c5eb2eb..8b0633b 100644 (file)
@@ -161,10 +161,20 @@ struct dev_kqfilter_args {
        int             a_result;
 };
 
+/*
+ * int d_clone(cdev_t dev);
+ */
 struct dev_clone_args {
        struct dev_generic_args a_head;
 };
 
+/*
+ * int d_revoke(cdev_t dev)
+ */
+struct dev_revoke_args {
+       struct dev_generic_args a_head;
+};
+
 /*
  * Typedefs to help drivers declare the driver routines and such
  */
@@ -181,6 +191,7 @@ typedef int d_dump_t (struct dev_dump_args *ap);
 typedef int d_psize_t (struct dev_psize_args *ap);
 typedef int d_kqfilter_t (struct dev_kqfilter_args *ap);
 typedef int d_clone_t (struct dev_clone_args *ap);
+typedef int d_revoke_t (struct dev_revoke_args *ap);
 
 /*
  * Character device switch table.
@@ -210,7 +221,8 @@ struct dev_ops {
        d_psize_t       *d_psize;
        d_kqfilter_t    *d_kqfilter;
        d_clone_t       *d_clone;       /* clone from base dev_ops */
-#define dev_ops_last_field     d_clone
+       d_revoke_t      *d_revoke;
+#define dev_ops_last_field     d_revoke
 };
 
 /*
@@ -291,6 +303,7 @@ int dev_dpoll(cdev_t dev, int events);
 int dev_dkqfilter(cdev_t dev, struct knote *kn);
 int dev_dmmap(cdev_t dev, vm_offset_t offset, int nprot);
 int dev_dclone(cdev_t dev);
+int dev_drevoke(cdev_t dev);
 
 int dev_drefs(cdev_t dev);
 const char *dev_dname(cdev_t dev);
@@ -312,6 +325,7 @@ d_dump_t    nodump;
 d_psize_t      nopsize;
 d_kqfilter_t   nokqfilter;
 d_clone_t      noclone;
+d_revoke_t     norevoke;
 
 d_open_t       nullopen;
 d_close_t      nullclose;