From eff2ec6ac9be371f2cae63c74c71898cf917f04d Mon Sep 17 00:00:00 2001 From: Adithya Baglody Date: Mon, 9 Oct 2017 11:37:31 +0530 Subject: [PATCH] kernel: Arch specific memory domain APIs added Added arch specific calls to handle memory domain destroy and removal of partition. GH-3852 Signed-off-by: Adithya Baglody --- kernel/mem_domain.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel/mem_domain.c b/kernel/mem_domain.c index 8076f61c2c..4cf4fb2535 100644 --- a/kernel/mem_domain.c +++ b/kernel/mem_domain.c @@ -63,6 +63,11 @@ void k_mem_domain_destroy(struct k_mem_domain *domain) key = irq_lock(); + /* Handle architecture specifc destroy only if it is the current thread*/ + if (_current->mem_domain_info.mem_domain == domain) { + _arch_mem_domain_destroy(domain); + } + SYS_DLIST_FOR_EACH_NODE_SAFE(&domain->mem_domain_q, node, next_node) { struct k_thread *thread = CONTAINER_OF(node, struct k_thread, mem_domain_info); @@ -127,6 +132,11 @@ void k_mem_domain_remove_partition(struct k_mem_domain *domain, /* Assert if not found */ __ASSERT(p_idx < max_partitions, ""); + /* Handle architecture specifc remove only if it is the current thread*/ + if (_current->mem_domain_info.mem_domain == domain) { + _arch_mem_domain_partition_remove(domain, p_idx); + } + domain->partitions[p_idx].start = 0; domain->partitions[p_idx].size = 0; domain->partitions[p_idx].attr = 0;