diff options
Diffstat (limited to 'old/xenolinux-2.4.16-sparse/arch/xeno/mm/mmu_context.c')
-rw-r--r-- | old/xenolinux-2.4.16-sparse/arch/xeno/mm/mmu_context.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/old/xenolinux-2.4.16-sparse/arch/xeno/mm/mmu_context.c b/old/xenolinux-2.4.16-sparse/arch/xeno/mm/mmu_context.c new file mode 100644 index 0000000000..b8f41fb269 --- /dev/null +++ b/old/xenolinux-2.4.16-sparse/arch/xeno/mm/mmu_context.c @@ -0,0 +1,26 @@ + +#include <linux/slab.h> +#include <linux/list.h> + +int init_new_context(struct task_struct *tsk, struct mm_struct *mm) +{ + INIT_LIST_HEAD(&mm->context.direct_list); + return 0; +} + +/* just free all elements of list identifying directly mapped areas */ +void destroy_context(struct mm_struct *mm) +{ + direct_mmap_node_t * node; + struct list_head * curr; + struct list_head * direct_list = &mm->context.direct_list; + + curr = direct_list->next; + while(curr != direct_list){ + node = list_entry(curr, direct_mmap_node_t, list); + curr = curr->next; + list_del(&node->list); + kfree(node); + } + +} |