Index: trunk/kernel/kernel_config.h
===================================================================
--- trunk/kernel/kernel_config.h	(revision 656)
+++ trunk/kernel/kernel_config.h	(revision 657)
@@ -61,5 +61,5 @@
 #define DEBUG_DEV_PIC                     0
 
-#define DEBUG_DEVFS_GLOBAL_INIT           0
+#define DEBUG_DEVFS_GLOBAL_INIT           0 
 #define DEBUG_DEVFS_LOCAL_INIT            0
 #define DEBUG_DEVFS_MOVE                  0
@@ -121,4 +121,5 @@
 
 #define DEBUG_MAPPER_GET_PAGE             0
+#define DEBUG_MAPPER_GET_FAT_PAGE         0
 #define DEBUG_MAPPER_HANDLE_MISS          0
 #define DEBUG_MAPPER_MOVE_KERNEL          0
@@ -152,22 +153,15 @@
 #define DEBUG_RPC_SERVER_GENERIC          0
 
-#define DEBUG_RPC_MAPPER_MOVE_USER        0
+#define DEBUG_RPC_FBF_DISPLAY             0
 #define DEBUG_RPC_PROCESS_MAKE_FORK       0
 #define DEBUG_RPC_PROCESS_SIGACTION       0
 #define DEBUG_RPC_THREAD_USER_CREATE      0
 #define DEBUG_RPC_THREAD_KERNEL_CREATE    0
-#define DEBUG_RPC_VFS_DENTRY_CREATE       0
-#define DEBUG_RPC_VFS_DENTRY_DESTROY      0
-#define DEBUG_RPC_VFS_DEVICE_GET_DENTRY   0
-#define DEBUG_RPC_VFS_FILE_CREATE         0
-#define DEBUG_RPC_VFS_FILE_DESTROY        0
-#define DEBUG_RPC_VFS_FS_NEW_DENTRY       0
-#define DEBUG_RPC_VFS_FS_ADD_DENTRY       0
-#define DEBUG_RPC_VFS_INODE_CREATE        0
-#define DEBUG_RPC_VFS_INODE_DESTROY       0
+#define DEBUG_RPC_USER_DIR_CREATE         0
+#define DEBUG_RPC_USER_DIR_DESTROY        0
 #define DEBUG_RPC_VMM_CREATE_VSEG         0
-#define DEBUG_RPC_VMM_GET_PTE             0
-#define DEBUG_RPC_VMM_GET_VSEG            0
-#define DEBUG_RPC_VMM_DELETE_VSEG         0
+#define DEBUG_RPC_VMM_RESIZE_VSEG         0
+#define DEBUG_RPC_VMM_REMOVE_VSEG         0
+#define DEBUG_RPC_VMM_SET_COW             0
 
 #define DEBUG_RWLOCK_TYPE                 0        // lock type 0 is undefined => no debug
@@ -246,5 +240,5 @@
 #define DEBUG_VFS_FILE_CREATE             0
 #define DEBUG_VFS_GET_PATH                0
-#define DEBUG_VFS_INODE_CREATE            0 
+#define DEBUG_VFS_INODE_CREATE            0
 #define DEBUG_VFS_INODE_LOAD_ALL          0
 #define DEBUG_VFS_KERNEL_MOVE             0
@@ -290,12 +284,12 @@
 #define LOCK_VMM_STACK         3   // local  (B)  protect VMM stack vseg allocator   
 #define LOCK_VMM_MMAP          4   // local  (B)  protect VMM mmap vseg allocator
-#define LOCK_VFS_CTX           5   // local  (B)  protect vfs context state
-#define LOCK_KCM_STATE         6   // local  (B)  protect KCM allocator state
-#define LOCK_KHM_STATE         7   // local  (B)  protect KHM allocator state
-#define LOCK_HTAB_STATE        8   // local  (B)  protect a local htab state
-
+#define LOCK_KCM_STATE         5   // local  (B)  protect KCM allocator state
+#define LOCK_KHM_STATE         6   // local  (B)  protect KHM allocator state
+#define LOCK_HTAB_STATE        7   // local  (B)  protect a local htab state
+
+#define LOCK_VFS_CTX           8   // remote (B)  protect vfs context state
 #define LOCK_PPM_FREE          9   // remote (B)  protect PPM allocator free_pages lists
 #define LOCK_THREAD_JOIN      10   // remote (B)  protect join/exit between two threads
-#define LOCK_XHTAB_STATE      11   // remote (B)  protect  a distributed xhtab state
+#define LOCK_XHTAB_STATE      11   // remote (B)  protect a distributed xhtab state
 #define LOCK_CHDEV_QUEUE      12   // remote (B)  protect chdev threads waiting queue
 #define LOCK_CHDEV_TXT0       13   // remote (B)  protect access to kernel terminal TXT0
@@ -325,5 +319,6 @@
 #define LOCK_VFS_FILE         33   // remote (RW) protect file descriptor state
 #define LOCK_VFS_MAIN         34   // remote (RW) protect vfs traversal (in root inode)
-#define LOCK_FATFS_FAT        35   // remote (RW) protect exclusive access to the FATFS FAT
+#define LOCK_FATFS_FAT        35   // remote (RW) protect exclusive access to the VFS FAT
+#define LOCK_FBF_WINDOWS      36   // remote (RW) protect FBF windows set
 
 ////////////////////////////////////////////////////////////////////////////////////////////
@@ -383,4 +378,6 @@
 ////////////////////////////////////////////////////////////////////////////////////////////
 
+#define CONFIG_VFS_ROOT_CXY                 0          // VFS_ROOT and FAT mapper cluster
+
 #define CONFIG_VFS_MAX_INODES               128        // max number of inodes per cluster
 #define CONFIG_VFS_MAX_NAME_LENGTH          56         // dentry name max length (bytes)
@@ -397,9 +394,16 @@
 
 ////////////////////////////////////////////////////////////////////////////////////////////
+//                              FBF WINDOWS       
+////////////////////////////////////////////////////////////////////////////////////////////
+
+#define CONFIG_FBF_WINDOWS_MAX_NR           64         // max number of windows
+#define CONFIG_FBF_WINDOWS_MAX_WIDTH        1024       // max number of pixels in FBF line
+#define CONFIG_FBF_WINDOWS_MAX_HEIGHT       1024       // max number of lines in FBF
+
+////////////////////////////////////////////////////////////////////////////////////////////
 //                                  DQDT        
 ////////////////////////////////////////////////////////////////////////////////////////////
 
 #define CONFIG_DQDT_LEVELS_NR               5
-#define CONFIG_DQDT_TICKS_PER_QUANTUM       1        // number of ticks between updates
 
 ////////////////////////////////////////////////////////////////////////////////////////////
@@ -414,8 +418,8 @@
 ////////////////////////////////////////////////////////////////////////////////////////////
 
-#define CONFIG_SCHED_TICK_MS_PERIOD         10000   // number of milliseconds per period
-#define CONFIG_SCHED_TICKS_PER_QUANTUM      1       // number of ticks between scheduling
-#define CONFIG_SCHED_MAX_THREADS_NR         32      // max number of threads per core
-#define CONFIG_SCHED_IDLE_MODE_SLEEP        0       // idle thread use sleep mode if non 0
+#define CONFIG_SCHED_TICK_MS_PERIOD         10000    // number of milliseconds per period
+#define CONFIG_SCHED_TICKS_PER_QUANTUM      1        // number of ticks between scheduling
+#define CONFIG_SCHED_MAX_THREADS_NR         32       // max number of threads per core
+#define CONFIG_SCHED_IDLE_MODE_SLEEP        0        // idle thread use sleep mode if non 0
 
 ////////////////////////////////////////////////////////////////////////////////////////////
@@ -423,7 +427,7 @@
 ////////////////////////////////////////////////////////////////////////////////////////////
 
-#define CONFIG_THREADS_MAX_PER_CLUSTER      32      // max threads per cluster per process
-#define CONFIG_THREAD_DESC_SIZE             0x4000  // thread desc size (with kernel stack)
-#define CONFIG_THREAD_DESC_ORDER            2       // ln( number of 4K pages )
+#define CONFIG_THREADS_MAX_PER_CLUSTER      32       // max threads per cluster per process
+#define CONFIG_THREAD_DESC_SIZE             0x4000   // thread desc size (with kernel stack)
+#define CONFIG_THREAD_DESC_ORDER            2        // ln( number of 4K pages )
 
 ////////////////////////////////////////////////////////////////////////////////////////////
@@ -433,5 +437,5 @@
 #define CONFIG_REMOTE_FIFO_SLOTS		    16
 #define CONFIG_REMOTE_FIFO_MAX_ITERATIONS   1024
-#define CONFIG_RPC_THREADS_MAX              4      // max number of RPC threads per core
+#define CONFIG_RPC_THREADS_MAX              4       // max number of RPC threads per core
 
 ////////////////////////////////////////////////////////////////////////////////////////////
@@ -439,14 +443,14 @@
 ////////////////////////////////////////////////////////////////////////////////////////////
 
-#define CONFIG_VMM_VSPACE_SIZE        0x100000     // virtual space          : 4   Gbytes
-
-#define CONFIG_VMM_UTILS_BASE         0x000200     // UTILS zone base        : 2   Mbytes
-#define CONFIG_VMM_ELF_BASE           0x000400     // ELF zone base          : 4   Mbytes
-#define CONFIG_VMM_HEAP_BASE          0x040000     // HEAP zone base         : 32  Mbytes
-#define CONFIG_VMM_STACK_BASE         0x0C0000     // STACK zone base        : 3   Gbytes
-
-#define CONFIG_VMM_ARGS_SIZE          0x000004     // args vseg size         : 16  Kbytes
-#define CONFIG_VMM_ENVS_SIZE          0x000008     // envs vseg size         : 32  Kbytes
-#define CONFIG_VMM_STACK_SIZE         0x001000     // single stack vseg size : 16  Mbytes
+#define CONFIG_VMM_VSPACE_SIZE        0x100000      // virtual space          : 4   Gbytes
+
+#define CONFIG_VMM_UTILS_BASE         0x000200      // UTILS zone base        : 2   Mbytes
+#define CONFIG_VMM_ELF_BASE           0x000400      // ELF zone base          : 4   Mbytes
+#define CONFIG_VMM_HEAP_BASE          0x040000      // HEAP zone base         : 32  Mbytes
+#define CONFIG_VMM_STACK_BASE         0x0C0000      // STACK zone base        : 3   Gbytes
+ 
+#define CONFIG_VMM_ARGS_SIZE          0x000004      // args vseg size         : 16  Kbytes
+#define CONFIG_VMM_ENVS_SIZE          0x000008      // envs vseg size         : 32  Kbytes
+#define CONFIG_VMM_STACK_SIZE         0x001000      // single stack vseg size : 16  Mbytes
 
 #define CONFIG_VMM_HEAP_MAX_ORDER     18           // max size of MMAP vseg  :  1  Gbytes
@@ -455,10 +459,10 @@
 ////////////////////////////////////////////////////////////////////////////////////////////
 
-#define CONFIG_PPM_PAGE_SIZE          4096         // physical page size (bytes)
-#define CONFIG_PPM_PAGE_SHIFT         12           // physical page shift (bits)
-#define CONFIG_PPM_PAGE_MASK          0x00000FFF   // physical page mask     
-#define CONFIG_PPM_MAX_ORDER          16           // ln(total number of pages per cluster)
-#define CONFIG_PPM_HEAP_ORDER         10           // ln(number of heap pages per cluster)
-#define CONFIG_PPM_MAX_RSVD           32           // max reserved zones on the machine
+#define CONFIG_PPM_PAGE_SIZE          4096          // physical page size (bytes)
+#define CONFIG_PPM_PAGE_SHIFT         12            // physical page shift (bits)
+#define CONFIG_PPM_PAGE_MASK          0x00000FFF    // physical page mask     
+#define CONFIG_PPM_MAX_ORDER          16            // ln(total number of pages per cluster)
+#define CONFIG_PPM_HEAP_ORDER         10            // ln(number of heap pages per cluster)
+#define CONFIG_PPM_MAX_RSVD           32            // max reserved zones on the machine
 
 #define CONFIG_PPM_PAGE_ALIGNED       __attribute__((aligned(CONFIG_PPM_PAGE_SIZE)))
@@ -470,5 +474,6 @@
 #define CONFIG_INSTRUMENTATION_SYSCALLS    0
 #define CONFIG_INSTRUMENTATION_PGFAULTS    0
-#define CONFIG_INSTRUMENTATION_FOOTPRINT   0
+#define CONFIG_INSTRUMENTATION_FOOTPRINT   1
+#define CONFIG_INSTRUMENTATION_CHDEVS      0
 #define CONFIG_INSTRUMENTATION_GPT         0
 
