Index: trunk/libs/stdio.c
===================================================================
--- trunk/libs/stdio.c	(revision 412)
+++ trunk/libs/stdio.c	(revision 426)
@@ -29,4 +29,6 @@
 #define  reg_t     int
 
+///////////// POSIX standard system calls ////////////////////////////////////
+
 ///////////////////////
 void exit( int status )
@@ -36,5 +38,5 @@
 }
 
-// 11 ///////////////////////////
+/////////////////////////////////
 int munmap( void         * addr,
             unsigned int   size )
@@ -45,5 +47,5 @@
 }
 
-// 12 //////////////////////////
+////////////////////////////////
 int open( const char * pathname,
           int          flags,
@@ -56,5 +58,5 @@
 }
 
-// 13 /////////////////////////
+///////////////////////////////
 void * mmap( void       * addr,
              unsigned int length,
@@ -77,5 +79,5 @@
 }
 
-// 14 ////////////////////
+//////////////////////////
 int read( int          fd,
           void       * buf,
@@ -88,5 +90,5 @@
 }
 
-// 15 /////////////////////
+///////////////////////////
 int write( int          fd,
            const void * buf,
@@ -99,5 +101,5 @@
 }
 
-// 16 /////////////////////
+///////////////////////////
 int lseek( int          fd,
            unsigned int offset,
@@ -110,5 +112,5 @@
 }
 
-// 17 /////////////
+///////////////////
 int close( int fd )
 {
@@ -117,5 +119,5 @@
 }
 
-// 18 /////////////////////////////
+///////////////////////////////////
 int unlink( const char * pathname )
 {
@@ -124,5 +126,5 @@
 }
 
-// 19 ///////////////
+/////////////////////
 int pipe( int fd[2] )
 {
@@ -130,5 +132,5 @@
 }
 
-// 20 ////////////////////////////
+//////////////////////////////////
 int chdir( const char * pathname )
 {
@@ -137,5 +139,5 @@
 }
 
-// 21 ///////////////////////////
+/////////////////////////////////
 int mkdir( const char * pathname,
            int          mode )
@@ -146,5 +148,5 @@
 }
 
-// 22 ////////////////////////////
+//////////////////////////////////
 int mkfifo( const char * pathname,
             int          mode )
@@ -155,5 +157,5 @@
 }
 
-// 23 ////////////////////////////////
+//////////////////////////////////////
 DIR * opendir( const char * pathname )
 {
@@ -167,5 +169,5 @@
 }
 
-// 24 ///////////////////////////////
+/////////////////////////////////////
 struct dirent * readdir( DIR * dirp )
 {
@@ -179,5 +181,5 @@
 }
 
-// 25 ////////////////////
+//////////////////////////
 int closedir( DIR * dirp )
 {
@@ -186,5 +188,5 @@
 }
 
-// 26 ///////////////////////
+/////////////////////////////
 int getcwd( char       * buf,
             unsigned int bytes )
@@ -195,5 +197,5 @@
 }
 
-// 29 //////////////////////
+////////////////////////////
 int rmdir( char * pathname )
 {
@@ -202,5 +204,5 @@
 } 
 
-// 30 ///////////////////////////
+/////////////////////////////////
 int utls( unsigned int operation,
           unsigned int value )
@@ -211,5 +213,5 @@
 }
 
-// 31 /////////////////////////
+///////////////////////////////
 int chmod( char     * pathname,
            unsigned int   rights )
@@ -220,5 +222,5 @@
 }
 
-// 32 ///////////////////////////
+/////////////////////////////////
 int signal( unsigned int   sigid,
             void         * handler )
@@ -229,5 +231,5 @@
 }
 
-// 33 /////////////////////////////////
+///////////////////////////////////////
 int gettimeofday( struct timeval  * tv,
                   struct timezone * tz )
@@ -238,5 +240,5 @@
 }
 
-// 34 /////////////////////
+///////////////////////////
 int kill( unsigned int pid,
           unsigned int sig_id )
@@ -247,5 +249,5 @@
 }
 
-// 35 //////
+////////////
 int getpid()
 {
@@ -253,5 +255,5 @@
 }
 
-// 36 ////
+//////////
 int fork()
 {
@@ -259,5 +261,5 @@
 }
 
-// 37 /////////////////////
+///////////////////////////
 int exec( char  * pathname,
           char ** argv,
@@ -270,14 +272,107 @@
 }
 
-// 38 ///////////////////////////
+/////////////////////////////////
 int stat( const char  * pathname,
           struct stat * stat )
 {
-    return hal_user_syscall( SYS_EXEC,
+    return hal_user_syscall( SYS_STAT,
                              (reg_t)pathname,
                              (reg_t)stat, 0, 0 );
 }
 
-// 39 ////////////////////////////
+////////////////////////
+int wait( int * status )
+{
+    return hal_user_syscall( SYS_WAIT,
+                             (reg_t)status, 0, 0, 0 );
+}
+
+
+
+/////////////     Non standard system calls ////////////////////////////////////
+
+//////////////////////////
+int fg( unsigned int pid )
+{
+    return hal_user_syscall( SYS_FG,
+                             (reg_t)pid, 0, 0, 0 );
+}
+
+//////////////////////////////////////
+int get_config( unsigned int * x_size,
+                unsigned int * y_size,
+                unsigned int * ncores )
+{
+    return hal_user_syscall( SYS_GET_CONFIG,
+                             (reg_t)x_size,
+                             (reg_t)y_size,
+                             (reg_t)ncores, 0 );
+}
+
+/////////////////////////////////
+int get_core( unsigned int * cxy,
+              unsigned int * lid )
+{
+    return hal_user_syscall( SYS_GET_CORE,
+                             (reg_t)cxy,
+                             (reg_t)lid, 0, 0 );
+}
+
+////////////////////////////////////
+void display_string( char * string )
+{
+    hal_user_syscall( SYS_DISPLAY,
+                      DISPLAY_STRING,
+                      (reg_t)string, 0, 0 );
+}
+
+///////////////////////////////////
+int display_vmm( unsigned int pid )
+{
+    return hal_user_syscall( SYS_DISPLAY,
+                             DISPLAY_VMM,
+                             (reg_t)pid, 0, 0 );
+} 
+
+////////////////////////////////
+int display_sched( unsigned int cxy,
+                   unsigned int lid )
+{
+    return hal_user_syscall( SYS_DISPLAY,
+                             DISPLAY_SCHED,
+                             (reg_t)cxy,
+                             (reg_t)lid, 0 );
+} 
+
+///////////////////////////////////////
+int display_process( unsigned int cxy )
+{
+    return hal_user_syscall( SYS_DISPLAY,
+                             DISPLAY_PROCESS,
+                             (reg_t)cxy, 0, 0 );
+} 
+
+///////////////////
+int display_chdev()
+{
+    return hal_user_syscall( SYS_DISPLAY,
+                             DISPLAY_CHDEV, 0, 0, 0 );
+} 
+
+/////////////////
+int display_vfs()
+{
+    return hal_user_syscall( SYS_DISPLAY,
+                             DISPLAY_VFS, 0, 0, 0 );
+} 
+
+///////////////////////////////////////////
+int get_cycle( unsigned long long * cycle )
+{
+    return hal_user_syscall( SYS_GET_CYCLE,
+                             (reg_t)cycle, 0, 0, 0 );
+}
+
+//////////////////////////////////
 int trace( unsigned int operation,
            unsigned int pid, 
