+function make_status_procs() {
+ # From man ps:
+ # D uninterruptible sleep (usually IO)
+ # R running or runnable (on run queue)
+ # S interruptible sleep (waiting for an event to complete)
+ # T stopped by job control signal
+ # t stopped by debugger during the tracing
+ # W paging (not valid since the 2.6.xx kernel)
+ # X dead (should never be seen)
+ # Z defunct ("zombie") process, terminated but not reaped by its parent
+ #
+ # Additionally, not documented in ps man page:
+ # I Idle
+ #
+ src = "khatus_sensor_procs"
+ all = cache_get_fmt_def(src, "total_procs" , 15, "%d")
+ r = cache_get_fmt_def(src, "total_per_state" Kfs "R", 15, "%d", "0")
+ d = cache_get_fmt_def(src, "total_per_state" Kfs "D", 15, "%d", "0")
+ t = cache_get_fmt_def(src, "total_per_state" Kfs "T", 15, "%d", "0")
+ i = cache_get_fmt_def(src, "total_per_state" Kfs "I", 15, "%d", "0")
+ z = cache_get_fmt_def(src, "total_per_state" Kfs "Z", 15, "%d", "0")
+ return sprintf("P=[%s %sr %sd %st %si %sz]", all, r, d, t, i, z)
+}
+