Index: /soft/giet_vm/applications/transpose/main.c
===================================================================
--- /soft/giet_vm/applications/transpose/main.c	(revision 660)
+++ /soft/giet_vm/applications/transpose/main.c	(revision 661)
@@ -137,12 +137,4 @@
                         giet_proctime() );
 
-        // diplay disk content
-        giet_fat_list( "/" );
-        giet_fat_list( "/misc" );
-        giet_fat_list( "/home" );
-        giet_fat_list( "/build" );
-        giet_fat_list( "/build/kernel" );
-        giet_fat_list( "/build/transpose" );
-
         global_init_ok = 1;
     }
@@ -505,25 +497,11 @@
     }
 
-    // display disk content
+    // clean up
     if ( (x==0) && (y == 0) && (lpid == 0) )
     { 
-        giet_fat_list( "/" );
-        giet_fat_list( "/misc" );
-        giet_fat_list( "/home" );
-        giet_fat_list( "/build" );
-        giet_fat_list( "/build/kernel" );
-        giet_fat_list( "/build/transpose" );
-
         giet_fat_remove( "/home/lena_transposed" , 0 );
         giet_fat_remove( "/home/lena_restored" , 0 );
 
         giet_fat_remove( "/home" , 1 );
-
-        giet_fat_list( "/" );
-        giet_fat_list( "/misc" );
-        giet_fat_list( "/home" );
-        giet_fat_list( "/build" );
-        giet_fat_list( "/build/kernel" );
-        giet_fat_list( "/build/transpose" );
     }
     
Index: /soft/giet_vm/giet_fat32/fat32.c
===================================================================
--- /soft/giet_vm/giet_fat32/fat32.c	(revision 660)
+++ /soft/giet_vm/giet_fat32/fat32.c	(revision 661)
@@ -4348,185 +4348,4 @@
 
 
-/////////////////////////////////////////////////////////////////////////////////
-// The following function implements the giet_fat_list() system call.
-// It displays the content of a directory identified by the "pathname" argument.
-// It returns an error code if the pathname is not a directory.
-/////////////////////////////////////////////////////////////////////////////////
-// Returns 0 if success.
-// Returns a negative value if error:
-//   -1  : "FAT not initialised
-//   -2  : "Directory not found"
-//   -3  : "Name in path too long
-//   -4  : "Not a directory"
-//   -5  : "Cannot access directory"
-/////////////////////////////////////////////////////////////////////////////////
-int _fat_list( char*  pathname )
-{
-    fat_inode_t*  inode;
-
-    // checking FAT initialised
-    if( _fat.initialised != FAT_INITIALISED )
-    {
-        _printf("\n[FAT ERROR] in _fat_list() : FAT not initialised\n");
-        return -1;
-    }
-
-#if GIET_DEBUG_FAT
-unsigned int procid  = _get_procid();
-unsigned int x       = procid >> (Y_WIDTH + P_WIDTH);
-unsigned int y       = (procid >> P_WIDTH) & ((1<<Y_WIDTH)-1);
-unsigned int p       = procid & ((1<<P_WIDTH)-1);
-if ( _get_proctime() > GIET_DEBUG_FAT )
-_printf("\n[DEBUG FAT] _fat_list() : P[%d,%d,%d] enters for path <%s>\n",
-        x, y, p, pathname );
-#endif
-
-    // get inode 
-    unsigned int code = _get_inode_from_path( pathname , &inode );
-
-    if ( (code == 1) || (code == 2) )  
-    {
-        _printf("\n[FAT ERROR] in _fat_list() : directory <%s> not found\n", pathname );
-        return -2;
-    }
-    if ( code == 3 )
-    {
-        _printf("\n[FAT ERROR] in _fat_list() : name too long in path <%s>\n", pathname );
-        return -3;
-    }
-
-    // check found inode is a directory
-    if ( inode->is_dir == 0 )
-    {
-        _printf("\n[FAT ERROR] in _fat_list() : <%s> is not a directory\n", pathname );
-        return -4;
-    }
-
-#if GIET_DEBUG_FAT
-if ( _get_proctime() > GIET_DEBUG_FAT )
-_printf("\n[DEBUG FAT] _fat_list() : P[%d,%d,%d] found inode for path <%s>\n",
-        x, y, p, pathname );
-#endif
-
-    // scan directory up to end of directory / two embedded loops :
-    // - loop on the clusters allocated to the directory
-    // - loop on the directory entries in each 4 Kbytes buffer
-    unsigned char*     buffer;  
-    fat_cache_desc_t*  pdesc;
-    unsigned int       cluster_id = 0;     // cluster index in directory
-    unsigned int       offset     = 0;     // position in scanned buffer
-    unsigned int       lfn        = 0;     // number of lfn entries
-    unsigned int       nb_entries = 0;     // number of directory entries
-    unsigned int       done       = 0;     // end of directory found
-    unsigned int       attr;               // ATTR field value
-    unsigned int       ord;                // ORD field value
-    char               lfn1[16];           // temporary buffer for string in LFN1
-    char               lfn2[16];           // temporary buffer for string in LFN2
-    char               lfn3[16];           // temporary buffer for string in LFN3
-    char               name[36];           // directory entry full name
-    unsigned int       cluster;            // directory entry cluster index
-    unsigned int       size;               // directory entry size
-    unsigned int       is_dir;             // directory entry is a directory
-    unsigned int       is_vid;             // directory entry is volume_id 
-
-    // TODO : define a method to transfer this information to user mode
-    _printf("\n<%s>   cluster = %x / lba = %x\n", pathname ,
-            inode->cluster , _cluster_to_lba( inode->cluster) );
-
-    while ( done == 0 )
-    {
-        // get one 4 Kytes buffer
-        if ( _get_buffer_from_cache( inode,
-                                     cluster_id,
-                                     &pdesc ) ) 
-        {
-            _printf("\n[FAT ERROR] in _fat_list() : cannot access <%s>\n", pathname );
-            return -5;
-        }
-        buffer = pdesc->buffer;
-
-        // scan this 4 Kbytes buffer
-        while ( (offset < 4096)  && (done == 0) )
-        {
-            attr = _read_entry( DIR_ATTR , buffer + offset , 0 );   
-            ord  = _read_entry( LDIR_ORD , buffer + offset , 0 );
-
-            if (ord == NO_MORE_ENTRY)                 // no more entry in directory => break
-            {
-                done = 1;
-            }
-            else if ( ord == FREE_ENTRY )             // free entry => skip
-            {
-                offset = offset + 32;
-            }
-            else if ( attr == ATTR_LONG_NAME_MASK )   // LFN entry => get partial names
-            {
-                unsigned int seq = ord & 0x3;
-                lfn = (seq > lfn) ? seq : lfn;   
-                if      ( seq == 1 ) _get_name_from_long( buffer + offset, lfn1 );
-                else if ( seq == 2 ) _get_name_from_long( buffer + offset, lfn2 );
-                else if ( seq == 3 ) _get_name_from_long( buffer + offset, lfn3 );
-                offset = offset + 32;
-            }
-            else                                 // NORMAL entry
-            {
-                if      ( lfn == 0 )
-                {
-                    _get_name_from_short( buffer + offset , name );
-                }
-                else if ( lfn == 1 )
-                {
-                    _strcpy( name , lfn1 );
-                }   
-                else if ( lfn == 2 ) 
-                {
-                    _strcpy( name      , lfn1 );
-                    _strcpy( name + 13 , lfn2 );
-                }
-                else if ( lfn == 3 ) 
-                {
-                    _strcpy( name      , lfn1 );
-                    _strcpy( name + 13 , lfn2 );
-                    _strcpy( name + 26 , lfn3 );
-                }
-                    
-                is_dir  = ((attr & ATTR_DIRECTORY) == ATTR_DIRECTORY);
-                is_vid  = ((attr & ATTR_VOLUME_ID) == ATTR_VOLUME_ID);
-                size    = (_read_entry( DIR_FILE_SIZE   , buffer + offset , 1 )      ) ;
-                cluster = (_read_entry( DIR_FST_CLUS_HI , buffer + offset , 1 ) << 16) |
-                          (_read_entry( DIR_FST_CLUS_LO , buffer + offset , 1 )      ) ;
-
-                if ( is_vid == 0 )
-                {
-                    // TODO : define a method to transfer this information to user mode
-                    if (is_dir) _printf("  DIR  | size = %X | cluster = %X | %s\n",
-                                        size , cluster, name );
-                    else        _printf("  FILE | size = %X | cluster = %X | %s\n",
-                                        size , cluster, name );
-                    nb_entries++;
-                }
-                
-                offset = offset + 32;
-                lfn    = 0;
-            }
-        }  // end loop on directory entries
-
-        if ( done == 0 )
-        {
-            cluster_id++;
-            offset = 0;
-        }
-    }  // end loop on buffers
-
-    // TODO : define a method to transfer this information to user mode
-    _printf("  total = %d entries\n", nb_entries );
-
-    return 0;
-} // end _fat_list()
-
-
-
-
-
 ///////////////////////////////////////////////////////////////////////////////
 // This functiond load a file identified by the "pathname" argument into the
Index: /soft/giet_vm/giet_fat32/fat32.h
===================================================================
--- /soft/giet_vm/giet_fat32/fat32.h	(revision 660)
+++ /soft/giet_vm/giet_fat32/fat32.h	(revision 661)
@@ -275,6 +275,4 @@
                          fat_dirent_t* entry );            // directory entry
 
-extern int _fat_list( char* pathname );                    // path from root
-
 extern int _fat_load_no_cache( char*        pathname,      // path from root
                                unsigned int buffer_vbase,  // buffer base 
Index: /soft/giet_vm/giet_kernel/sys_handler.c
===================================================================
--- /soft/giet_vm/giet_kernel/sys_handler.c	(revision 660)
+++ /soft/giet_vm/giet_kernel/sys_handler.c	(revision 661)
@@ -180,8 +180,8 @@
     &_fat_rename,                    /* 0x27 */
     &_fat_mkdir,                     /* 0x28 */
-    &_fat_list,                      /* 0x29 */
-    &_fat_opendir,                   /* 0x2A */
-    &_fat_closedir,                  /* 0x2B */
-    &_fat_readdir,                   /* 0x2C */
+    &_fat_opendir,                   /* 0x29 */
+    &_fat_closedir,                  /* 0x2A */
+    &_fat_readdir,                   /* 0x2B */
+    &_sys_ukn,                       /* 0x2C */
     &_sys_ukn,                       /* 0x2D */
     &_sys_ukn,                       /* 0x2E */
Index: /soft/giet_vm/giet_libs/stdio.c
===================================================================
--- /soft/giet_vm/giet_libs/stdio.c	(revision 660)
+++ /soft/giet_vm/giet_libs/stdio.c	(revision 661)
@@ -1080,12 +1080,4 @@
 }
 
-/////////////////////////////////////
-int giet_fat_list( char* pathname )
-{
-    return sys_call( SYSCALL_FAT_LIST,
-                     (unsigned int)pathname,
-                     0, 0, 0 );
-}
-
 
 
Index: /soft/giet_vm/giet_libs/stdio.h
===================================================================
--- /soft/giet_vm/giet_libs/stdio.h	(revision 660)
+++ /soft/giet_vm/giet_libs/stdio.h	(revision 661)
@@ -59,8 +59,8 @@
 #define SYSCALL_FAT_RENAME           0x27
 #define SYSCALL_FAT_MKDIR            0x28
-#define SYSCALL_FAT_LIST             0x29
-#define SYSCALL_FAT_OPENDIR          0x2A
-#define SYSCALL_FAT_CLOSEDIR         0x2B
-#define SYSCALL_FAT_READDIR          0x2C
+#define SYSCALL_FAT_OPENDIR          0x29
+#define SYSCALL_FAT_CLOSEDIR         0x2A
+#define SYSCALL_FAT_READDIR          0x2B
+//                                   0x2C
 //                                   0x2D
 //                                   0x2E
@@ -348,6 +348,4 @@
                              fat_dirent_t* entry );
 
-extern int giet_fat_list( char* pathname );
-
 //////////////////////////////////////////////////////////////////////////
 //                    Miscelaneous system calls
