diff --git a/basis/unix/linux/proc/proc.factor b/basis/unix/linux/proc/proc.factor index 45638550f4..a3087bfec1 100644 --- a/basis/unix/linux/proc/proc.factor +++ b/basis/unix/linux/proc/proc.factor @@ -3,14 +3,13 @@ USING: accessors arrays combinators combinators.smart io.encodings.utf8 io.files kernel math math.order math.parser memoize sequences sorting.slots splitting splitting.monotonic -strings io.pathnames ; +strings io.pathnames calendar ; IN: unix.linux.proc ! /proc/* ! /proc/buddyinfo ! /proc/cgroups -! /proc/cmdline TUPLE: proc-cmdline string ; C: proc-cmdline @@ -18,9 +17,6 @@ C: proc-cmdline "/proc/cmdline" utf8 file-lines first ; -! /proc/consoles - -! /proc/cpuinfo TUPLE: processor-info { processor integer } { vendor-id string } @@ -81,7 +77,8 @@ TUPLE: processor-info ] inputprocessor-info ] map ; + "/proc/cpuinfo" utf8 file-lines + { "" } split harvest [ lines>processor-info ] map ; : sort-cpus ( seq -- seq ) { { physical-id>> <=> } { core-id>> <=> } } sort-by @@ -94,7 +91,6 @@ MEMO: parse-proc-cpuinfo ( -- seq ) [ [ [ length ] map-sum ] map-sum ] tri ; -! /proc/loadavg TUPLE: proc-loadavg load-average-1 load-average-5 @@ -116,9 +112,8 @@ TUPLE: proc-loadavg ] inputnumber 1024 * - ] map [ meminfo boa ] inputcpu ( string -- cpu ) " " split unclip-slice [ [ [ CHAR: \s = ] trim string>number ] map ] dip prefix - [ cpu-stat boa ] input> ; -! /proc/partitions +TUPLE: proc-partition major minor #blocks name ; -! /proc/swaps +: parse-proc-partitions ( -- partitions ) + "/proc/partitions" utf8 file-lines 2 tail + [ + " \t" split harvest + [ + { + [ string>number ] + [ string>number ] + [ string>number ] + [ ] + } spread + ] inputnumber ] + [ string>number ] + [ string>number ] + } spread + ] inputnumber seconds ] bi@ + proc-uptime boa ; ! /proc/pid/*