]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/miscfs/specfs/specdev.h
xnu-4570.71.2.tar.gz
[apple/xnu.git] / bsd / miscfs / specfs / specdev.h
index dfe9c9945ae1afb6d655a74caff1067020d7dc0a..3d6d0258f5319978122d5387436006f0a02eb0fa 100644 (file)
@@ -79,9 +79,16 @@ struct specinfo {
        struct  vnode *si_specnext;
        long    si_flags;
        dev_t   si_rdev;
+       int32_t si_opencount;
        daddr_t si_size;                /* device block size in bytes */
        daddr64_t       si_lastr;       /* last read blkno (read-ahead) */
        u_int64_t       si_devsize;     /* actual device size in bytes */
+
+       u_int8_t        si_initted;
+       u_int8_t        si_throttleable;
+       u_int16_t       si_isssd;
+       u_int32_t       si_devbsdunit;
+       u_int64_t       si_throttle_mask;
 };
 /*
  * Exported shorthand
@@ -105,9 +112,9 @@ struct specinfo {
  */
 #define        SPECHSZ 64
 #if    ((SPECHSZ&(SPECHSZ-1)) == 0)
-#define        SPECHASH(rdev)  (((rdev>>5)+(rdev))&(SPECHSZ-1))
+#define        SPECHASH(rdev)  (((rdev>>21)+(rdev))&(SPECHSZ-1))
 #else
-#define        SPECHASH(rdev)  (((unsigned)((rdev>>5)+(rdev)))%SPECHSZ)
+#define        SPECHASH(rdev)  (((unsigned)((rdev>>21)+(rdev)))%SPECHSZ)
 #endif
 
 extern struct vnode *speclisth[SPECHSZ];
@@ -128,7 +135,7 @@ int spec_blktooff (struct  vnop_blktooff_args *);
 int spec_offtoblk (struct  vnop_offtoblk_args *);
 int    spec_fsync_internal (vnode_t, int, vfs_context_t);
 int spec_blockmap (struct  vnop_blockmap_args *);
-int spec_kqfilter (vnode_t vp, struct knote *kn);
+int spec_kqfilter (vnode_t vp, struct knote *kn, struct kevent_internal_s *kev);
 #endif /* BSD_KERNEL_PRIVATE */
 
 int    spec_ebadf(void *);