Index: arch/ia32/src/drivers/vesa.c
===================================================================
--- arch/ia32/src/drivers/vesa.c	(revision 2666daa18c67bb71e7f781004b1f7ca11c2ba3aa)
+++ arch/ia32/src/drivers/vesa.c	(revision 35a96cf3eacf4cfa589a24a6ccaf4813263ea578)
@@ -42,4 +42,5 @@
 #include <memstr.h>
 #include <bitops.h>
+#include <sysinfo/sysinfo.h>
 
 __u32 vesa_ph_addr;
@@ -79,4 +80,6 @@
 
 	fb_init(vram_lin_addr, vesa_width, vesa_height, vesa_bpp, vesa_scanline);
+	
+	sysinfo_set_item_val("Framebuffer.address.physical",NULL,vesa_ph_addr);
 }
 
Index: genarch/src/fb/fb.c
===================================================================
--- genarch/src/fb/fb.c	(revision 2666daa18c67bb71e7f781004b1f7ca11c2ba3aa)
+++ genarch/src/fb/fb.c	(revision 35a96cf3eacf4cfa589a24a6ccaf4813263ea578)
@@ -366,7 +366,7 @@
 	sysinfo_set_item_val("Framebuffer.scanline",NULL,scan);
 	sysinfo_set_item_val("Framebuffer.bpp",NULL,bpp);
-	sysinfo_set_item_val("Framebuffer.address",NULL,addr);
-	
-
-
-}
+	sysinfo_set_item_val("Framebuffer.address.virtual",NULL,addr);
+	
+
+
+}
Index: generic/include/syscall/syscall.h
===================================================================
--- generic/include/syscall/syscall.h	(revision 2666daa18c67bb71e7f781004b1f7ca11c2ba3aa)
+++ generic/include/syscall/syscall.h	(revision 35a96cf3eacf4cfa589a24a6ccaf4813263ea578)
@@ -59,4 +59,6 @@
 	SYS_IOSPACE_ENABLE,
 	SYS_PREEMPT_CONTROL,
+	SYS_SYSINFO_VALID,
+	SYS_SYSINFO_VALUE,
 	SYSCALL_END
 } syscall_t;
Index: generic/include/sysinfo/sysinfo.h
===================================================================
--- generic/include/sysinfo/sysinfo.h	(revision 2666daa18c67bb71e7f781004b1f7ca11c2ba3aa)
+++ generic/include/sysinfo/sysinfo.h	(revision 35a96cf3eacf4cfa589a24a6ccaf4813263ea578)
@@ -52,2 +52,6 @@
 sysinfo_rettype_t sysinfo_get_val(const char *name,sysinfo_item_t **root);
 
+__native sys_sysinfo_valid(__native ptr,__native len);
+__native sys_sysinfo_value(__native ptr,__native len);
+
+
Index: generic/src/syscall/syscall.c
===================================================================
--- generic/src/syscall/syscall.c	(revision 2666daa18c67bb71e7f781004b1f7ca11c2ba3aa)
+++ generic/src/syscall/syscall.c	(revision 35a96cf3eacf4cfa589a24a6ccaf4813263ea578)
@@ -46,4 +46,5 @@
 #include <security/cap.h>
 #include <syscall/copy.h>
+#include <sysinfo/sysinfo.h>
 
 static __native sys_io(int fd, const void * buf, size_t count) {
@@ -109,4 +110,8 @@
 	sys_physmem_map,
 	sys_iospace_enable,
-	sys_preempt_control
+	sys_preempt_control,
+	
+	/* Sysinfo syscalls */
+	sys_sysinfo_valid,
+	sys_sysinfo_value
 };
Index: generic/src/sysinfo/sysinfo.c
===================================================================
--- generic/src/sysinfo/sysinfo.c	(revision 2666daa18c67bb71e7f781004b1f7ca11c2ba3aa)
+++ generic/src/sysinfo/sysinfo.c	(revision 35a96cf3eacf4cfa589a24a6ccaf4813263ea578)
@@ -2,4 +2,5 @@
 #include <mm/slab.h>
 #include <print.h>
+#include <syscall/copy.h>
 
 sysinfo_item_t *_root=NULL;
@@ -221,2 +222,30 @@
 	return ret;
 }
+
+__native sys_sysinfo_valid(__native ptr,__native len)
+{
+	char *str;
+	sysinfo_rettype_t ret;
+	str=malloc(len+1,0);
+	ASSERT(str);
+	copy_from_uspace(str,(void *)ptr,len+1);
+	if(str[len]) return 0;          /*This is not len lenght C string*/
+	ret=sysinfo_get_val(str,NULL);
+	free(str);
+	return ret.valid;
+}
+
+__native sys_sysinfo_value(__native ptr,__native len)
+{
+	char *str;
+	sysinfo_rettype_t ret;
+	str=malloc(len+1,0);
+	ASSERT(str);
+	copy_from_uspace(str,(void *)ptr,len+1);
+	if(str[len]) return 0;          /*This is not len lenght C string*/
+	ret=sysinfo_get_val(str,NULL);
+	free(str);
+	return ret.val;
+}
+
+
