diff --git a/Makefile b/Makefile index 7870185..ec876d7 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,8 @@ CFLAGS = -Wall PROG = helloworld HPTEST = hptest -UDIR = $(PWD)/user -MDIR := $(PWD)/kernel +UDIR = $(PWD)/source/uapi +MDIR := $(PWD)/source/module KDIR := $(PWD)/linux-5.17.15 # 内核源码目录 TDIR := $(PWD)/testcase diff --git a/kernel/Makefile b/source/module/Makefile similarity index 100% rename from kernel/Makefile rename to source/module/Makefile diff --git a/kernel/monitor_kernel.c b/source/module/monitor_kernel.c similarity index 98% rename from kernel/monitor_kernel.c rename to source/module/monitor_kernel.c index 1d17d64..f0cea23 100644 --- a/kernel/monitor_kernel.c +++ b/source/module/monitor_kernel.c @@ -131,14 +131,7 @@ int init_module(void) { printk(KERN_INFO "dev number: %d\n", dev_num); printk(KERN_INFO "path: /dev/%s %d\n", DEVICE_NAME, dev_num); - fn_kallsyms_lookup_name_init(); // init kallsyms_lookup_name - LOOKUP_SYMS(stack_trace_save_tsk); // stack_trace_save_tsk - LOOKUP_SYMS(show_stack); // show_stack - LOOKUP_SYMS(idle_sched_class); // idle_sched_class - LOOKUP_SYMS(access_remote_vm); // access_remote_vm - - LOOKUP_SYMS_NORET(get_task_type); // get_task_type - LOOKUP_SYMS_NORET(kernfs_name); // kernfs_name + monitor_init(); return 0; } @@ -154,4 +147,16 @@ void cleanup_module(void) { unregister_chrdev_region(dev_num, 1); } -MODULE_LICENSE("GPL"); \ No newline at end of file +MODULE_LICENSE("GPL"); + +// one more thing +int monitor_init(void){ + fn_kallsyms_lookup_name_init(); // init kallsyms_lookup_name + LOOKUP_SYMS(stack_trace_save_tsk); // stack_trace_save_tsk + LOOKUP_SYMS(show_stack); // show_stack + LOOKUP_SYMS(idle_sched_class); // idle_sched_class + LOOKUP_SYMS(access_remote_vm); // access_remote_vm + + LOOKUP_SYMS_NORET(get_task_type); // get_task_type + LOOKUP_SYMS_NORET(kernfs_name); // kernfs_name +} \ No newline at end of file diff --git a/kernel/monitor_kernel.h b/source/module/monitor_kernel.h similarity index 99% rename from kernel/monitor_kernel.h rename to source/module/monitor_kernel.h index 47e36d0..f44efef 100644 --- a/kernel/monitor_kernel.h +++ b/source/module/monitor_kernel.h @@ -176,4 +176,7 @@ static void print_task_stack(void) { unsigned char del_all_kwarg_by_pid(pid_t pid); void clear_watch(pid_t pid); -void clear_all_watch(void); \ No newline at end of file +void clear_all_watch(void); + +// one more thing +int monitor_init(void); diff --git a/kernel/monitor_kernel_lib.c b/source/module/monitor_kernel_lib.c similarity index 100% rename from kernel/monitor_kernel_lib.c rename to source/module/monitor_kernel_lib.c diff --git a/kernel/monitor_kernel_task.c b/source/module/monitor_kernel_task.c similarity index 100% rename from kernel/monitor_kernel_task.c rename to source/module/monitor_kernel_task.c diff --git a/kernel/monitor_kernel_task.h b/source/module/monitor_kernel_task.h similarity index 100% rename from kernel/monitor_kernel_task.h rename to source/module/monitor_kernel_task.h diff --git a/user/monitor_user.c b/source/uapi/monitor_user.c similarity index 100% rename from user/monitor_user.c rename to source/uapi/monitor_user.c diff --git a/user/monitor_user.h b/source/uapi/monitor_user.h similarity index 100% rename from user/monitor_user.h rename to source/uapi/monitor_user.h diff --git a/testcase/helloworld.c b/testcase/helloworld.c index 554b258..ae75db5 100644 --- a/testcase/helloworld.c +++ b/testcase/helloworld.c @@ -1,4 +1,4 @@ -#include "../user/monitor_user.h" +#include "../source/uapi/monitor_user.h" #include #include #include diff --git a/testcase/hptest.c b/testcase/hptest.c index ab2f0a8..2b53088 100644 --- a/testcase/hptest.c +++ b/testcase/hptest.c @@ -1,4 +1,4 @@ -#include "../user/monitor_user.h" +#include "../source/uapi/monitor_user.h" #include #include #include