Index: contrib/bp/kbd.bp
===================================================================
--- contrib/bp/kbd.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
+++ contrib/bp/kbd.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -0,0 +1,16 @@
+(
+	!ns.IPC_M_CONNECT_ME_TO +
+	NULL
+) ;
+!ns.IPC_M_CONNECT_TO_ME ;
+(
+	IPC_M_CONNECT_ME_TO ;
+	(
+		(
+			?KBD_YIELD +
+			?KBD_RECLAIM +
+		) |
+		!console.KBD_EVENT
+	)* ;
+	?IPC_M_PHONE_HUNGUP
+)*
Index: contrib/bp/klog.bp
===================================================================
--- contrib/bp/klog.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
+++ contrib/bp/klog.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -0,0 +1,1 @@
+!ns.IPC_SHARE_IN /* SERVICE_MEM_KLOG */
Index: ntrib/bp/klog.ns
===================================================================
--- contrib/bp/klog.ns	(revision 3fa31606ca37510dcbcdc539c90e98e3d04ba370)
+++ 	(revision )
@@ -1,1 +1,0 @@
-!ns.IPC_SHARE_IN /* SERVICE_MEM_KLOG */
Index: contrib/bp/lib/vfs_release_phone
===================================================================
--- contrib/bp/lib/vfs_release_phone	(revision 3fa31606ca37510dcbcdc539c90e98e3d04ba370)
+++ contrib/bp/lib/vfs_release_phone	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -1,1 +1,1 @@
-!IPC_M_PHONE_HANGUP
+!IPC_M_PHONE_HUNGUP
Index: contrib/bp/loader.bp
===================================================================
--- contrib/bp/loader.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
+++ contrib/bp/loader.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -0,0 +1,25 @@
+!ns.NS_ID_INTRO ;
+!ns.IPC_M_CONNECT_TO_ME ;
+(
+	?LOADER_GET_TASKID {
+		?IPC_M_DATA_READ /* task id */
+	} +
+	
+	?LOADER_SET_PATHNAME {
+		?IPC_M_DATA_WRITE /* path */
+	} +
+	
+	?LOADER_SET_ARGS {
+		?IPC_M_DATA_WRITE /* arguments */
+	} +
+	
+	?LOADER_SET_FILES {
+		?IPC_M_DATA_WRITE /* files */
+	} +
+	
+	?LOADER_LOAD
+)* ;
+(
+	?LOADER_RUN +
+	?IPC_M_PHONE_HUNGUP
+)
Index: contrib/bp/ns.bp
===================================================================
--- contrib/bp/ns.bp	(revision 3fa31606ca37510dcbcdc539c90e98e3d04ba370)
+++ contrib/bp/ns.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -15,4 +15,4 @@
 		?NS_RETVAL
 	)* ;
-	?IPC_M_PHONE_HANGUP
+	?IPC_M_PHONE_HUNGUP
 )*
Index: contrib/bp/rd.bp
===================================================================
--- contrib/bp/rd.bp	(revision 3fa31606ca37510dcbcdc539c90e98e3d04ba370)
+++ contrib/bp/rd.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -8,4 +8,4 @@
 		?BD_WRITE_BLOCK
 	)* ;
-	?IPC_M_PHONE_HANGUP
+	?IPC_M_PHONE_HUNGUP
 )*
Index: contrib/bp/tmpfs.bp
===================================================================
--- contrib/bp/tmpfs.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
+++ contrib/bp/tmpfs.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -0,0 +1,44 @@
+!ns.IPC_M_CONNECT_ME_TO ;
+[fs_register] ;
+(
+	?IPC_M_CONNECT_ME_TO ;
+	(
+		?VFS_OUT_MOUNTED {
+			?IPC_M_DATA_WRITE /* mount options */
+		} +
+		
+		?VFS_OUT_MOUNT {
+			[libfs_mount]
+		} +
+		
+		?VFS_OUT_LOOKUP {
+			[libfs_lookup]
+		} +
+		
+		?VFS_OUT_READ {
+			?IPC_M_DATA_READ /* payload */
+		} +
+		
+		?VFS_OUT_WRITE {
+			?IPC_M_DATA_WRITE /* payload */
+		} +
+		
+		?VFS_OUT_TRUNCATE +
+		
+		?VFS_OUT_CLOSE +
+		
+		?VFS_OUT_DESTROY +
+		
+		?VFS_OUT_OPEN_NODE {
+			[libfs_open_node]
+		} +
+		
+		?VFS_OUT_STAT {
+			[libfs_stat]
+		} +
+		
+		?VFS_OUT_SYNC
+		
+	)* ;
+	?IPC_M_PHONE_HUNGUP
+)*
Index: contrib/bp/vfs.bp
===================================================================
--- contrib/bp/vfs.bp	(revision 3fa31606ca37510dcbcdc539c90e98e3d04ba370)
+++ contrib/bp/vfs.bp	(revision 471a32d6f70a03d7dc74577bc913792588771caa)
@@ -42,5 +42,5 @@
 			[vfs_grab_phone] ;
 			!VFS_OUT_OPEN_NODE ;
-			[vfs_release_phone ] ;
+			[vfs_release_phone] ;
 			(
 				(
@@ -57,5 +57,5 @@
 			[vfs_grab_phone] ;
 			!VFS_OUT_CLOSE ;
-			[vfs_release_phone ]
+			[vfs_release_phone]
 		} +
 		
@@ -63,5 +63,5 @@
 			?IPC_M_DATA_READ {
 				[vfs_grab_phone] ;
-				!VFS_OUT_READ ;
+				!VFS_OUT_READ /* payload */ ;
 				!IPC_M_FORWARD ;
 				[vfs_release_phone]
@@ -72,5 +72,5 @@
 			?IPC_M_DATA_WRITE {
 				[vfs_grab_phone] ;
-				!VFS_OUT_WRITE ;
+				!VFS_OUT_WRITE /* payload */ ;
 				!IPC_M_FORWARD ;
 				[vfs_release_phone]
@@ -129,4 +129,4 @@
 		
 	)* ;
-	?IPC_M_PHONE_HANGUP
+	?IPC_M_PHONE_HUNGUP
 )*
