Index: uspace/lib/c/generic/vfs/vfs.c
===================================================================
--- uspace/lib/c/generic/vfs/vfs.c	(revision b33ec435b399c93c963dd892300dc1f6c5dac41e)
+++ uspace/lib/c/generic/vfs/vfs.c	(revision 27b76ca72fe73962d4f6bcdaeca5a243066e314f)
@@ -815,4 +815,19 @@
 }
 
+int fd_wait(void)
+{
+	async_exch_t *exch = vfs_exchange_begin();
+	
+	sysarg_t ret;
+	sysarg_t rc = async_req_0_1(exch, VFS_IN_WAIT_HANDLE, &ret);
+	
+	vfs_exchange_end(exch);
+	
+	if (rc == EOK)
+		return (int) ret;
+	
+	return (int) rc;
+}
+
 /** @}
  */
Index: uspace/lib/c/include/ipc/vfs.h
===================================================================
--- uspace/lib/c/include/ipc/vfs.h	(revision b33ec435b399c93c963dd892300dc1f6c5dac41e)
+++ uspace/lib/c/include/ipc/vfs.h	(revision 27b76ca72fe73962d4f6bcdaeca5a243066e314f)
@@ -77,5 +77,6 @@
 	VFS_IN_RENAME,
 	VFS_IN_STAT,
-	VFS_IN_DUP
+	VFS_IN_DUP,
+	VFS_IN_WAIT_HANDLE,
 } vfs_in_request_t;
 
Index: uspace/lib/c/include/vfs/vfs.h
===================================================================
--- uspace/lib/c/include/vfs/vfs.h	(revision b33ec435b399c93c963dd892300dc1f6c5dac41e)
+++ uspace/lib/c/include/vfs/vfs.h	(revision 27b76ca72fe73962d4f6bcdaeca5a243066e314f)
@@ -55,4 +55,6 @@
 extern int fhandle(FILE *, int *);
 
+extern int fd_wait(void);
+
 extern async_exch_t *vfs_exchange_begin(void);
 extern void vfs_exchange_end(async_exch_t *);
