2 * Copyright © 2013 Canonical Ltd.
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 * Authored by: Thomas Voß <thomas.voss@canonical.com>
19 #include <core/posix/linux/proc/process/stat.h>
21 #include <core/posix/process.h>
37 std::istream& operator>>(std::istream& in, State& state)
39 char c; in >> c; state = static_cast<State>(c);
43 std::istream& operator>>(std::istream& in, Stat& stat)
52 >> stat.controlling_process_group
54 >> stat.minor_faults_count
55 >> stat.minor_faults_count_by_children
56 >> stat.major_faults_count
57 >> stat.major_faults_count_by_children
60 >> stat.time.user_for_children
61 >> stat.time.system_for_children
65 >> stat.time_before_next_sig_alarm
68 >> stat.size.resident_set
69 >> stat.size.resident_set_limit
70 >> stat.addresses.start_code
71 >> stat.addresses.end_code
72 >> stat.addresses.start_stack
73 >> stat.addresses.stack_pointer
74 >> stat.addresses.instruction_pointer
75 >> stat.signals.pending
76 >> stat.signals.blocked
77 >> stat.signals.ignored
78 >> stat.signals.caught
81 >> stat.swap_count_children
84 >> stat.realtime_priority
85 >> stat.scheduling_policy
86 >> stat.aggregated_block_io_delays
88 >> stat.guest_time_children;
93 const posix::Process& operator>>(const posix::Process& process, Stat& stat)
95 std::stringstream ss; ss << "/proc/" << process.pid() << "/stat";
96 std::ifstream in(ss.str());