Index: trunk/kernel/fs/fatfs.h
===================================================================
--- trunk/kernel/fs/fatfs.h	(revision 611)
+++ trunk/kernel/fs/fatfs.h	(revision 612)
@@ -114,5 +114,5 @@
 #define NAME_MAX_SIZE           31
 
-/******* Directory Entry Structure (32 bytes) **********************************/
+/******* SFN Directory Entry Structure (32 bytes) ******************************/
 //                            offset | length
 #define DIR_NAME                   0 , 11   // dir_entry name
@@ -308,12 +308,12 @@
 
 /*****************************************************************************************
- * This function implements the generic vfs_fs_child_init() function for the FATFS.
- *****************************************************************************************
- * It tries to initialise a new child (new inode/dentry couple in Inode Tree), identified
+ * This function implements the generic vfs_fs_get_dentry() function for the FATFS.
+ *****************************************************************************************
+ * It initialises a new child (new inode/dentry couple in Inode Tree), identified
  * by the <child_inode_xp> argument, from the parent directory mapper, identified by the
  * <parent_inode> argument.
- * - It scan the parent mapper to find the <name> argument.
- * - it set the "type", "size", and "extend" fields in inode descriptor.
- * - it set the " extend" field in dentry descriptor.
+ * It scan the parent mapper to find the <name> argument.
+ * It set the "type", "size", and "extend" fields in inode descriptor.
+ * It set the " extend" field in dentry descriptor.
  * It must be called by a thread running in the cluster containing the parent inode.
  *****************************************************************************************
@@ -323,7 +323,38 @@
  * @ return 0 if success / return ENOENT if child not found.
  ****************************************************************************************/
-error_t fatfs_child_init( struct vfs_inode_s * parent_inode,
+error_t fatfs_get_dentry( struct vfs_inode_s * parent_inode,
                           char               * name,
                           xptr_t               child_inode_xp );
+
+/*****************************************************************************************
+ * This function implements the generic vfs_fs_get_user_dir() function for the FATFS.
+ *****************************************************************************************
+ * It is called by the remote_dir_create() function to scan the mapper of a directory 
+ * identified by the <inode> argument and copy up to <max_dirent> valid dentries to a 
+ * local dirent array, defined by the <array> argument. The <min_dentry> argument defines
+ * the index of the first dentry to copied to the target dirent array.
+ * This function returns in the <entries> buffer the number of dentries actually written,
+ * and signals in the <done> buffer when the last valid entry has been found.
+ * If the <detailed> argument is true, a dentry/inode couple that does not exist in
+ * the Inode Tree is dynamically created, and all dirent fiels are documented in the
+ * dirent array. Otherwise, only the dentry name is documented.
+ * It must be called by a thread running in the cluster containing the directory inode.
+ *****************************************************************************************
+ * @ inode      : [in]  local pointer on directory inode.
+ * @ array      : [in]  local pointer on array of dirents.
+ * @ max_dirent : [in]  max number of slots in dirent array.
+ * @ min_dentry : [in]  index of first dentry to be copied into array.
+ * @ detailed   : [in]  dynamic inode creation if true.
+ * @ entries    : [out] number of dentries actually copied into array.
+ * @ done       : [out] Boolean true when last entry found.
+ * @ return 0 if success / return -1 if failure.
+ ****************************************************************************************/
+error_t fatfs_get_user_dir( struct vfs_inode_s * inode,
+                            struct dirent      * array, 
+                            uint32_t             max_dirent,
+                            uint32_t             min_dentry,
+                            bool_t               detailed,
+                            uint32_t           * entries,
+                            bool_t             * done );
 
 /*****************************************************************************************
