aboutsummaryrefslogtreecommitdiff
path: root/core/mem_region.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-05-19 17:05:38 +0800
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-05-21 15:03:34 +1000
commita88495a1439ff20345870a82565658249be55d23 (patch)
treea5eda82d74c525f4e9fa502eea97f774075f1bba /core/mem_region.c
parent8ab7a78c23c5e62566646aa9d5ac8749dfd73837 (diff)
downloadskiboot-a88495a1439ff20345870a82565658249be55d23.zip
skiboot-a88495a1439ff20345870a82565658249be55d23.tar.gz
skiboot-a88495a1439ff20345870a82565658249be55d23.tar.bz2
core: Add mem_region_next
This change adds a function to iterate mem_regions. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/mem_region.c')
-rw-r--r--core/mem_region.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/mem_region.c b/core/mem_region.c
index 0a1538d..f6d5a7a 100644
--- a/core/mem_region.c
+++ b/core/mem_region.c
@@ -1008,3 +1008,17 @@ void mem_region_add_dt_reserved(void)
free(names);
free(ranges);
}
+
+struct mem_region *mem_region_next(struct mem_region *region)
+{
+ struct list_node *node;
+
+ assert(lock_held_by_me(&mem_region_lock));
+
+ node = region ? &region->list : &regions.n;
+
+ if (node->next == &regions.n)
+ return NULL;
+
+ return list_entry(node->next, struct mem_region, list);
+}