X-Git-Url: http://git.annexia.org/?p=virt-mem.git;a=blobdiff_plain;f=ps%2Fvirt_ps.ml;h=fe538a9f15b17e3230cce4bce64abe01e4726865;hp=fc752fe97b31d5282b9a250afc46d52c68f2db92;hb=f6bb3caa719a564615e7fd2f21a3ad5bca010a88;hpb=3e697c7eb18283909d425e3008654e5deba11343 diff --git a/ps/virt_ps.ml b/ps/virt_ps.ml index fc752fe..fe538a9 100644 --- a/ps/virt_ps.ml +++ b/ps/virt_ps.ml @@ -23,13 +23,26 @@ open Virt_mem_gettext.Gettext open Virt_mem_utils open Virt_mem_types +open Kernel_task_struct -let run debug ({ mem = mem }, ksymmap, _) = - () +let run debug { domname = domname; mem = mem } { tasks = tasks } = + let tasks = Option.get tasks in + + (* Sort tasks by PID. *) + let cmp { task_pid = p1 } { task_pid = p2 } = compare p1 p2 in + let tasks = List.sort cmp tasks in + + printf " PID STAT COMMAND\n"; + + List.iter ( + fun task -> + printf "%5Ld %s\n" task.task_pid task.task_comm + ) tasks let summary = s_"list processes in virtual machine" let description = s_"\ virt-ps prints a process listing for virtual machines running under libvirt." -let () = Virt_mem.register "ps" summary description ~run +let () = + Virt_mem.register "ps" summary description ~needs_tasks:true ~run