From 56090c336e65eed6a754641d586bcdab2f923bd9 Mon Sep 17 00:00:00 2001 From: gatieme Date: Tue, 17 May 2016 12:40:29 +0800 Subject: [PATCH] ... --- study/kernel/process/task/find_task/Makefile | 5 ++--- .../kernel/process/task/find_task/get_task.c | 20 ++--------------- .../process/task/find_task/print_vmarea.c | 22 +++++++++---------- 3 files changed, 15 insertions(+), 32 deletions(-) diff --git a/study/kernel/process/task/find_task/Makefile b/study/kernel/process/task/find_task/Makefile index 9d2ac51..88561dc 100644 --- a/study/kernel/process/task/find_task/Makefile +++ b/study/kernel/process/task/find_task/Makefile @@ -5,16 +5,15 @@ ifneq ($(KERNELRELEASE),) MODULE_NAME := find-task + RESMAIN_CORE_OBJS := find_task.o RESMAIN_GLUE_OBJS := get_task.o + find-task-objs := $(RESMAIN_GLUE_OBJS) $(RESMAIN_CORE_OBJS) obj-m += find-task.o -#$(MODULE_NAME)-objs := $(RESMAIN_GLUE_OBJS) $(RESMAIN_CORE_OBJS) -#obj-m := $(MODULE_NAME).o - else KERNELDIR ?= /lib/modules/$(shell uname -r)/build diff --git a/study/kernel/process/task/find_task/get_task.c b/study/kernel/process/task/find_task/get_task.c index 8b04698..f763973 100644 --- a/study/kernel/process/task/find_task/get_task.c +++ b/study/kernel/process/task/find_task/get_task.c @@ -14,25 +14,9 @@ #include -void print_vm_list(struct task_struct *task) +void print_task(struct task_struct *task) { - struct vm_area_struct *tmp = task->mm->mmap; - - printk("process:%s,pid:%d\n", task->comm, task->pid); - - while (tmp != NULL) - { - - printk("0x%lx - 0x%lx\t",tmp->vm_start,tmp->vm_end); - - (tmp->vm_flags & VM_READ) ? printk("r") : printk("-"); - (tmp->vm_flags & VM_WRITE) ? printk("w") : printk("-"); - (tmp->vm_flags & VM_EXEC) ? printk("x") : printk("-"); - (tmp->vm_flags & VM_SHARED) ? printk("s") : printk("p"); - printk("\n"); - - tmp = tmp->vm_next; - } + printf_task_vmarea(task) } diff --git a/study/kernel/process/task/find_task/print_vmarea.c b/study/kernel/process/task/find_task/print_vmarea.c index b8db7f6..e47b305 100644 --- a/study/kernel/process/task/find_task/print_vmarea.c +++ b/study/kernel/process/task/find_task/print_vmarea.c @@ -17,12 +17,14 @@ (type *)( (char *)__mptr - offsetof(type,member) );}) #endif -static void print_vmarea(struct vm_area_struct) +static void print_vmarea(struct vm_area_struct *vmarea) { - ((tmp->vm_flags & VM_READ) == 1) ? printk("r") : printk("-"); - ((tmp->vm_flags & VM_WRITE) == 1) ? printk("w") : printk("-"); - ((tmp->vm_flags & VM_EXEC) == 1) ? printk("x") : printk("-"); - ((tmp->vm_flags & VM_SHARED) == 1) ? printk("s") : printk("p"); + printk("0x%lx - 0x%lx\t", vmarea->vm_start, vmarea->vm_end); + + ((vmarea->vm_flags & VM_READ) == 1) ? printk("r") : printk("-"); + ((vmarea->vm_flags & VM_WRITE) == 1) ? printk("w") : printk("-"); + ((vmarea->vm_flags & VM_EXEC) == 1) ? printk("x") : printk("-"); + ((vmarea->vm_flags & VM_SHARED) == 1) ? printk("s") : printk("p"); printk("\n"); } @@ -31,7 +33,7 @@ static void print_vmarea_by_list(struct task_struct *task) { struct vm_area_struct *tmp = task->mm->mmap; - printk("process:%s,pid:%d\n", task->comm, task->pid); + printk("process : %s, pid : %d\n", task->comm, task->pid); while (tmp != NULL) { @@ -43,11 +45,9 @@ static void print_vmarea_by_list(struct task_struct *task) static void visit_rbtree_node(struct rb_node *root) { - struct vm_area_struct *tmp; + struct vm_area_struct *vmarea NULL; - tmp = container_of(root,struct vm_area_struct,vm_rb); - - printk("0x%lx - 0x%lx\t",tmp->vm_start,tmp->vm_end); + vmarea = container_of(root,struct vm_area_struct,vm_rb); print_vm_area(tmp); } @@ -64,7 +64,7 @@ static void preorder_rbtree(struct rb_node *root) static void print_vmarea_by_rbtree(struct task_struct *task) { - struct task_struct *p; + struct task_struct *p; struct pid *k; struct rb_node *root = NULL;