Index: kernel/Makefile
===================================================================
--- kernel/Makefile	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ kernel/Makefile	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -233,5 +233,6 @@
 	generic/src/ps/cpu.c \
 	generic/src/ps/load.c \
-	generic/src/ps/uptime.c
+	generic/src/ps/uptime.c \
+	generic/src/ps/mem.c
 
 ## Kernel console support
Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ kernel/generic/include/mm/frame.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -170,4 +170,5 @@
 extern void zone_merge_all(void);
 extern uint64_t zone_total_size(void);
+extern void zone_busy_and_free(uint64_t *out_busy, uint64_t *out_free);
 
 /*
Index: kernel/generic/include/ps/meminfo.h
===================================================================
--- kernel/generic/include/ps/meminfo.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
+++ kernel/generic/include/ps/meminfo.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2010 Stanislav Kozina
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup generic
+ * @{
+ */
+/** @file
+ */
+
+#ifndef KERN_PS_MEM_H_
+#define KERN_PS_MEM_H_
+
+typedef struct {
+	uint64_t total;
+	uint64_t used;
+	uint64_t free;
+} uspace_mem_info_t;
+
+#endif
+
+/** @}
+ */
Index: kernel/generic/include/ps/ps.h
===================================================================
--- kernel/generic/include/ps/ps.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ kernel/generic/include/ps/ps.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -38,4 +38,5 @@
 #include <ps/taskinfo.h>
 #include <ps/cpuinfo.h>
+#include <ps/meminfo.h>
 
 extern size_t sys_ps_get_tasks(task_id_t *uspace_ids, size_t size);
@@ -43,4 +44,5 @@
 extern int sys_ps_get_threads(task_id_t *uspace_id, thread_info_t *uspace_infos, size_t size);
 extern int sys_ps_get_cpu_info(uspace_cpu_info_t *uspace_cpu);
+extern int sys_ps_get_mem_info(uspace_mem_info_t *mem_info);
 
 #endif
Index: kernel/generic/include/syscall/syscall.h
===================================================================
--- kernel/generic/include/syscall/syscall.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ kernel/generic/include/syscall/syscall.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -89,4 +89,5 @@
 
 	SYS_PS_GET_CPU_INFO,
+	SYS_PS_GET_MEM_INFO,
 	SYS_PS_GET_TASKS,
 	SYS_PS_GET_TASK_INFO,
Index: kernel/generic/src/main/main.c
===================================================================
--- kernel/generic/src/main/main.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ kernel/generic/src/main/main.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -224,5 +224,5 @@
 	printf("Detected %" PRIs " CPU(s), %" PRIu64" MiB free memory\n",
 	    config.cpu_count, SIZE2MB(zone_total_size()));
-	
+
 	LOG_EXEC(cpu_init());
 	
Index: kernel/generic/src/mm/frame.c
===================================================================
--- kernel/generic/src/mm/frame.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ kernel/generic/src/mm/frame.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -1218,4 +1218,26 @@
 }
 
+void zone_busy_and_free(uint64_t *out_busy, uint64_t *out_free)
+{
+	ipl_t ipl = interrupts_disable();
+	spinlock_lock(&zones.lock);
+
+	uint64_t busy = 0, free = 0;
+	size_t i;
+	for (i = 0; i < zones.count; i++) {
+		bool available = zone_flags_available(zones.info[i].flags);
+		/* Do not count reserved memory */
+		if (available) {
+			busy += (uint64_t) FRAMES2SIZE(zones.info[i].busy_count);
+			free += (uint64_t) FRAMES2SIZE(zones.info[i].free_count);
+		}
+	}
+
+	spinlock_unlock(&zones.lock);
+	interrupts_restore(ipl);
+	*out_busy = busy;
+	*out_free = free;
+}
+
 /** Prints list of zones. */
 void zone_print_list(void)
Index: kernel/generic/src/ps/mem.c
===================================================================
--- kernel/generic/src/ps/mem.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
+++ kernel/generic/src/ps/mem.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2010 Stanislav Kozina
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup genericps
+ * @{
+ */
+
+/**
+ * @file
+ * @brief	Mem info
+ */
+
+#include <ps/meminfo.h>
+#include <ps/ps.h>
+#include <syscall/copy.h>
+#include <mm/frame.h>
+#include <arch.h>
+
+int sys_ps_get_mem_info(uspace_mem_info_t *uspace_mem)
+{
+	uspace_mem_info_t meminfo;
+	ipl_t ipl;
+	ipl = interrupts_disable();
+
+	meminfo.total = zone_total_size();
+	zone_busy_and_free(&meminfo.used, &meminfo.free);
+	interrupts_restore(ipl);
+
+	copy_to_uspace(uspace_mem, &meminfo, sizeof(uspace_mem_info_t));
+	return 0;
+}
+
+/** @}
+ */
Index: kernel/generic/src/syscall/syscall.c
===================================================================
--- kernel/generic/src/syscall/syscall.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ kernel/generic/src/syscall/syscall.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -171,4 +171,5 @@
 	/* Ps calls */
 	(syshandler_t) sys_ps_get_cpu_info,
+	(syshandler_t) sys_ps_get_mem_info,
 	(syshandler_t) sys_ps_get_tasks,
 	(syshandler_t) sys_ps_get_task_info,
Index: uspace/app/top/Makefile
===================================================================
--- uspace/app/top/Makefile	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ uspace/app/top/Makefile	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -35,4 +35,5 @@
 	screen.c \
 	input.c \
+	func.c \
 	ps.c
 
Index: uspace/app/top/func.c
===================================================================
--- uspace/app/top/func.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
+++ uspace/app/top/func.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2001-2004 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup top
+ * @{
+ */
+
+/**
+ * @file
+ * @brief	Miscellaneous functions.
+ */
+
+#include <stdio.h>
+
+#include "func.h"
+
+void order(const uint64_t val, uint64_t *rv, char *suffix)
+{
+	if (val > 10000000000000000000ULL) {
+		*rv = val >> 60;
+		*suffix = 'Z';
+	} else if (val > 1000000000000000000ULL) {
+		*rv = val >> 50;
+		*suffix = 'E';
+	} else if (val > 1000000000000000ULL) {
+		*rv = val >> 40;
+		*suffix = 'T';
+	} else if (val > 1000000000000ULL) {
+		*rv = val >> 30;
+		*suffix = 'G';
+	} else if (val > 1000000000ULL) {
+		*rv = val >> 20;
+		*suffix = 'M';
+	} else if (val > 1000000ULL) {
+		*rv = val >> 10;
+		*suffix = 'k';
+	} else {
+		*rv = val;
+		*suffix = ' ';
+	}
+}
+
+/** @}
+ */
Index: uspace/app/top/func.h
===================================================================
--- uspace/app/top/func.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
+++ uspace/app/top/func.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2001-2004 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup ps
+ * @{
+ */
+/** @file
+ */
+
+#ifndef FUNC_H_
+#define FUNC_H_
+
+extern void order(const uint64_t val, uint64_t *rv, char *suffix);
+
+#endif
+
+/** @}
+ */
Index: uspace/app/top/screen.c
===================================================================
--- uspace/app/top/screen.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ uspace/app/top/screen.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -43,4 +43,5 @@
 #include "screen.h"
 #include "top.h"
+#include "func.h"
 
 int rows;
@@ -133,4 +134,16 @@
 		++up_rows;
 	}
+}
+
+static inline void print_meminfo(data_t *data)
+{
+	uint64_t newsize;
+	char suffix;
+	order(data->mem_info.total, &newsize, &suffix);
+	printf("Mem: %8llu %c total", newsize, suffix);
+	order(data->mem_info.used, &newsize, &suffix);
+	printf(", %8llu %c used", newsize, suffix);
+	order(data->mem_info.free, &newsize, &suffix);
+	printf(", %8llu %c free", newsize, suffix);
 }
 
@@ -182,4 +195,7 @@
 	++up_rows;
 	print_cpuinfo(data);
+	print_meminfo(data);
+	puts("\n");
+	++up_rows;
 	puts("\n");
 	++up_rows;
Index: uspace/app/top/top.c
===================================================================
--- uspace/app/top/top.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ uspace/app/top/top.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -43,4 +43,5 @@
 #include <sys/time.h>
 #include <load.h>
+#include <ps.h>
 #include "screen.h"
 #include "input.h"
@@ -84,4 +85,7 @@
 	/* Read cpu infos */
 	target->cpu_count = get_cpu_infos(&target->cpus);
+
+	/* Read mem info */
+	get_mem_info(&target->mem_info);
 }
 
Index: uspace/app/top/top.h
===================================================================
--- uspace/app/top/top.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ uspace/app/top/top.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -68,4 +68,6 @@
 	uspace_cpu_info_t *cpus;
 	cpu_perc_t *cpu_perc;
+
+	uspace_mem_info_t mem_info;
 } data_t;
 
Index: uspace/lib/c/Makefile
===================================================================
--- uspace/lib/c/Makefile	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ uspace/lib/c/Makefile	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -92,5 +92,6 @@
 	generic/stacktrace.c \
 	generic/ps.c \
-	generic/cpu.c \
+	generic/cpuinfo.c \
+	generic/meminfo.c \
 	generic/load.c \
 	generic/uptime.c
Index: pace/lib/c/generic/cpu.c
===================================================================
--- uspace/lib/c/generic/cpu.c	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ 	(revision )
@@ -1,52 +1,0 @@
-/*
- * Copyright (c) 2010 Stanislav Kozina
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup libc
- * @{
- */
-/** @file
- */
-
-#include <libc.h>
-#include <ps.h>
-
-/** Get infos about system CPUs.
- *
- * @param cpus		Pointer where info structures will be stored.
- * 			Use \ref sysinfo() to get cpu.count value.
- *
- * @return		EOK.
- *
- */
-int get_cpu_info(uspace_cpu_info_t *cpus)
-{
-	return __SYSCALL1(SYS_PS_GET_CPU_INFO, (sysarg_t) cpus);
-}
-
-/** @}
- */
Index: uspace/lib/c/generic/cpuinfo.c
===================================================================
--- uspace/lib/c/generic/cpuinfo.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
+++ uspace/lib/c/generic/cpuinfo.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2010 Stanislav Kozina
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libc
+ * @{
+ */
+/** @file
+ */
+
+#include <libc.h>
+#include <ps.h>
+
+/** Get infos about system CPUs.
+ *
+ * @param cpus		Pointer where info structures will be stored.
+ * 			Use \ref sysinfo() to get cpu.count value.
+ *
+ * @return		EOK.
+ *
+ */
+int get_cpu_info(uspace_cpu_info_t *cpus)
+{
+	return __SYSCALL1(SYS_PS_GET_CPU_INFO, (sysarg_t) cpus);
+}
+
+/** @}
+ */
Index: uspace/lib/c/generic/meminfo.c
===================================================================
--- uspace/lib/c/generic/meminfo.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
+++ uspace/lib/c/generic/meminfo.c	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010 Stanislav Kozina
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libc
+ * @{
+ */
+/** @file
+ */
+
+#include <libc.h>
+#include <ps.h>
+
+/** Get infos about system memory.
+ *
+ * @param cpus		Pointer where info structures will be stored.
+ *
+ * @return		EOK.
+ *
+ */
+int get_mem_info(uspace_mem_info_t *meminfo)
+{
+	return __SYSCALL1(SYS_PS_GET_MEM_INFO, (sysarg_t) meminfo);
+}
+
+/** @}
+ */
Index: uspace/lib/c/include/ps.h
===================================================================
--- uspace/lib/c/include/ps.h	(revision 1ba37faf61b6713df5140f30fa781f7f2147c5ab)
+++ uspace/lib/c/include/ps.h	(revision 516adcede91f3e4a1e790d6a39694d4b25772eb9)
@@ -39,6 +39,8 @@
 #include <kernel/ps/taskinfo.h>
 #include <kernel/ps/cpuinfo.h>
+#include <kernel/ps/meminfo.h>
 
 extern int get_cpu_info(uspace_cpu_info_t *cpus);
+extern int get_mem_info(uspace_mem_info_t *meminfo);
 extern size_t get_task_ids(task_id_t *ids, size_t size);
 extern int get_task_info(task_id_t id, task_info_t *info);
