--- gio/kqueue/kqueue-helper.h.orig	2018-04-09 22:47:22.070991000 +0200
+++ gio/kqueue/kqueue-helper.h	2018-04-09 22:47:44.329479000 +0200
@@ -23,16 +23,31 @@
 #ifndef __KQUEUE_HELPER_H
 #define __KQUEUE_HELPER_H
 
-#include "kqueue-sub.h"
 #include <gio/glocalfilemonitor.h>
 #include <gio/gfilemonitor.h>
 
-gboolean _kh_startup        (void);
-gboolean _kh_add_sub        (kqueue_sub *sub);
-gboolean _kh_cancel_sub     (kqueue_sub *sub);
+#include "dep-list.h"
 
-gboolean _kh_start_watching (kqueue_sub *sub);
+/**
+ * kqueue_sub:
+ * @filename: a name of the file to monitor
+ * @fd: the associated file descriptor (used by kqueue)
+ *
+ * Represents a subscription on a file or directory.
+ */
+typedef struct
+{
+  GLocalFileMonitor   *mon;
+  GFileMonitorSource  *source;
+  gchar*    filename;
+  int       fd;
+  dep_list* deps;
+  int       is_dir;
+} kqueue_sub;
 
-void     _kh_dir_diff       (kqueue_sub *sub, GFileMonitorSource *source);
+gboolean _kqsub_start_watching (kqueue_sub *sub);
+void _kh_dir_diff    (kqueue_sub *sub);
+void _km_add_missing (kqueue_sub *sub);
+void _km_remove      (kqueue_sub *sub);
 
 #endif /* __KQUEUE_HELPER_H */