-let run debug { domname = domname; mem = mem }
- { utsname = utsname; tasks = tasks } =
- let utsname = Option.get utsname in
- let kernel_version = utsname.kernel_release in
- let init_task_addr = Option.get tasks in
-
- (* Starting at init_task, navigate through the linked list of
- * tasks (through tasks.next). The main program has already made
- * sure these are mapped into memory.
- *)
- let tasks =
- let rec loop acc task =
- let next = task.task_struct_tasks'next in
- if next <> init_task_addr then (
- let task = get_task_struct kernel_version mem next in
- let task = {
- task with
- task_struct_comm = truncate_c_string task.task_struct_comm
- } in
- let acc = task :: acc in
- loop acc task
- ) else
- acc
- in
- loop [] (get_task_struct kernel_version mem init_task_addr) in
+let run debug { domname = domname; mem = mem } { tasks = tasks } =
+ let tasks = Option.get tasks in