]> git.saurik.com Git - apple/xnu.git/blobdiff - libsyscall/wrappers/libproc/libproc.h
xnu-4570.20.62.tar.gz
[apple/xnu.git] / libsyscall / wrappers / libproc / libproc.h
index 5fda148537f89449b1734483de1e596a85c46051..3cfcfdc70af9a4a1cef449b025893957e3580999 100644 (file)
@@ -122,9 +122,28 @@ int proc_setpcontrol(const int control);
 int proc_track_dirty(pid_t pid, uint32_t flags);
 int proc_set_dirty(pid_t pid, bool dirty);
 int proc_get_dirty(pid_t pid, uint32_t *flags);
 int proc_track_dirty(pid_t pid, uint32_t flags);
 int proc_set_dirty(pid_t pid, bool dirty);
 int proc_get_dirty(pid_t pid, uint32_t *flags);
+int proc_clear_dirty(pid_t pid, uint32_t flags);
 
 int proc_terminate(pid_t pid, int *sig);
 
 
 int proc_terminate(pid_t pid, int *sig);
 
+#ifdef PRIVATE
+/*
+ * Enumerate potential userspace pointers embedded in kernel data structures.
+ * Currently inspects kqueues only.
+ *
+ * NOTE: returned "pointers" are opaque user-supplied values and thus not
+ * guaranteed to address valid objects or be pointers at all.
+ *
+ * Returns the number of pointers found (which may exceed buffersize), or -1 on
+ * failure and errno set appropriately.
+ */
+int proc_list_uptrs(pid_t pid, uint64_t *buffer, uint32_t buffersize);
+
+int proc_list_dynkqueueids(int pid, kqueue_id_t *buf, uint32_t bufsz);
+int proc_piddynkqueueinfo(int pid, int flavor, kqueue_id_t kq_id, void *buffer,
+               int buffersize);
+#endif /* PRIVATE */
+
 __END_DECLS
 
 #endif /*_LIBPROC_H_ */
 __END_DECLS
 
 #endif /*_LIBPROC_H_ */