Index: kernel/generic/src/mm/as.c
===================================================================
--- kernel/generic/src/mm/as.c	(revision bcd4dd4b9a89f48a0a5c351ecceacd1e306651d3)
+++ kernel/generic/src/mm/as.c	(revision 543662b3a5a91cc3b12c5ff897d1940f7a0248fc)
@@ -2229,4 +2229,24 @@
 }
 
+sys_errno_t sys_as_area_get_info(uintptr_t address, as_area_info_t *dest)
+{
+	as_area_t *area;
+
+	mutex_lock(&AS->lock);
+	area = find_area_and_lock(AS, address);
+	if (area == NULL) {
+		mutex_unlock(&AS->lock);
+		return ENOENT;
+	}
+
+	dest->start_addr = area->base;
+	dest->size = P2SZ(area->pages);
+	dest->flags = area->flags;
+
+	mutex_unlock(&area->lock);
+	mutex_unlock(&AS->lock);
+	return EOK;
+}
+
 sys_errno_t sys_as_area_destroy(uintptr_t address)
 {
Index: kernel/generic/src/syscall/syscall.c
===================================================================
--- kernel/generic/src/syscall/syscall.c	(revision bcd4dd4b9a89f48a0a5c351ecceacd1e306651d3)
+++ kernel/generic/src/syscall/syscall.c	(revision 543662b3a5a91cc3b12c5ff897d1940f7a0248fc)
@@ -146,4 +146,5 @@
 	[SYS_AS_AREA_RESIZE] = (syshandler_t) sys_as_area_resize,
 	[SYS_AS_AREA_CHANGE_FLAGS] = (syshandler_t) sys_as_area_change_flags,
+	[SYS_AS_AREA_GET_INFO] = (syshandler_t) sys_as_area_get_info,
 	[SYS_AS_AREA_DESTROY] = (syshandler_t) sys_as_area_destroy,
 
