Index: uspace/srv/fs/fat/fat.h
===================================================================
--- uspace/srv/fs/fat/fat.h	(revision 38c706cc8a6d3b4125c0704bdb5d9d6fe37e7fbf)
+++ uspace/srv/fs/fat/fat.h	(revision 6364d3c5a4f6a39d32c14922f17a23eaa8bb3507)
@@ -136,7 +136,17 @@
 extern uint8_t *plb_ro;
 
+extern void fat_lookup(ipc_callid_t, ipc_call_t *);
+
+/*
+ * The following interfaces are rather fs-neutral and might be later moved to a
+ * dedicated library (e.g. libfs). We just wait until the interfaces stabilize
+ * and until there is more than one fs implementation.
+ */
 extern int block_read(int, unsigned long, void *);
+extern int block_write(int, unsigned long, void *);
 
-extern void fat_lookup(ipc_callid_t, ipc_call_t *);
+extern void node_add_mp(int, unsigned long);
+extern void node_del_mp(int, unsigned long);
+extern bool node_is_mp(int, unsigned long);
 
 #endif
Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision 38c706cc8a6d3b4125c0704bdb5d9d6fe37e7fbf)
+++ uspace/srv/fs/fat/fat_ops.c	(revision 6364d3c5a4f6a39d32c14922f17a23eaa8bb3507)
@@ -37,7 +37,25 @@
 
 #include "fat.h"
+#include "../../vfs/vfs.h"
 #include <ipc/ipc.h>
 #include <async.h>
 #include <errno.h>
+
+#define PLB_GET_CHAR(i)		(plb_ro[(i) % PLB_SIZE])
+
+#define FAT_NAME_LEN		8
+#define FAT_EXT_LEN		3
+
+#define FAT_PAD			' ' 
+
+#define FAT_DENTRY_UNUSED	0x00
+#define FAT_DENTRY_E5_ESC	0x05
+#define FAT_DENTRY_DOT		0x2e
+#define FAT_DENTRY_ERASED	0xe5
+
+static int match_path_component(fat_dentry_t *dentry, unsigned index,
+    size_t len)
+{
+}
 
 void fat_lookup(ipc_callid_t rid, ipc_call_t *request)
