Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(758)

Side by Side Diff: base/process_util.h

Issue 180037: Port some of the base system to FreeBSD. Extracted from... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/port.h ('k') | base/process_util_posix.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file/namespace contains utility functions for enumerating, ending and 5 // This file/namespace contains utility functions for enumerating, ending and
6 // computing statistics of processes. 6 // computing statistics of processes.
7 7
8 #ifndef BASE_PROCESS_UTIL_H_ 8 #ifndef BASE_PROCESS_UTIL_H_
9 #define BASE_PROCESS_UTIL_H_ 9 #define BASE_PROCESS_UTIL_H_
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 12
13 #if defined(OS_WIN) 13 #if defined(OS_WIN)
14 #include <windows.h> 14 #include <windows.h>
15 #include <tlhelp32.h> 15 #include <tlhelp32.h>
16 #elif defined(OS_LINUX) 16 #elif defined(OS_MACOSX)
17 // kinfo_proc is defined in <sys/sysctl.h>, but this forward declaration
18 // is sufficient for the vector<> below.
19 struct kinfo_proc;
20 #elif defined(OS_POSIX)
17 #include <dirent.h> 21 #include <dirent.h>
18 #include <limits.h> 22 #include <limits.h>
19 #include <sys/types.h> 23 #include <sys/types.h>
20 #endif 24 #endif
21 25
22 #include <string> 26 #include <string>
23 #include <utility> 27 #include <utility>
24 #include <vector> 28 #include <vector>
25 29
26 #include "base/command_line.h" 30 #include "base/command_line.h"
(...skipping 16 matching lines...) Expand all
43 unsigned long long WriteOperationCount; 47 unsigned long long WriteOperationCount;
44 unsigned long long OtherOperationCount; 48 unsigned long long OtherOperationCount;
45 unsigned long long ReadTransferCount; 49 unsigned long long ReadTransferCount;
46 unsigned long long WriteTransferCount; 50 unsigned long long WriteTransferCount;
47 unsigned long long OtherTransferCount; 51 unsigned long long OtherTransferCount;
48 }; 52 };
49 53
50 #include "base/file_descriptor_shuffle.h" 54 #include "base/file_descriptor_shuffle.h"
51 #endif 55 #endif
52 56
53 #if defined(OS_MACOSX)
54 struct kinfo_proc;
55 #endif
56
57 namespace base { 57 namespace base {
58 58
59 // A minimalistic but hopefully cross-platform set of exit codes. 59 // A minimalistic but hopefully cross-platform set of exit codes.
60 // Do not change the enumeration values or you will break third-party 60 // Do not change the enumeration values or you will break third-party
61 // installers. 61 // installers.
62 enum { 62 enum {
63 PROCESS_END_NORMAL_TERMINATON = 0, 63 PROCESS_END_NORMAL_TERMINATON = 0,
64 PROCESS_END_KILLED_BY_USER = 1, 64 PROCESS_END_KILLED_BY_USER = 1,
65 PROCESS_END_PROCESS_WAS_HUNG = 2 65 PROCESS_END_PROCESS_WAS_HUNG = 2
66 }; 66 };
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 266
267 // Initializes a PROCESSENTRY32 data structure so that it's ready for 267 // Initializes a PROCESSENTRY32 data structure so that it's ready for
268 // use with Process32First/Process32Next. 268 // use with Process32First/Process32Next.
269 void InitProcessEntry(ProcessEntry* entry); 269 void InitProcessEntry(ProcessEntry* entry);
270 270
271 std::wstring executable_name_; 271 std::wstring executable_name_;
272 272
273 #if defined(OS_WIN) 273 #if defined(OS_WIN)
274 HANDLE snapshot_; 274 HANDLE snapshot_;
275 bool started_iteration_; 275 bool started_iteration_;
276 #elif defined(OS_LINUX)
277 DIR *procfs_dir_;
278 #elif defined(OS_MACOSX) 276 #elif defined(OS_MACOSX)
279 std::vector<kinfo_proc> kinfo_procs_; 277 std::vector<kinfo_proc> kinfo_procs_;
280 size_t index_of_kinfo_proc_; 278 size_t index_of_kinfo_proc_;
279 #elif defined(OS_POSIX)
280 DIR *procfs_dir_;
281 #endif 281 #endif
282 ProcessEntry entry_; 282 ProcessEntry entry_;
283 const ProcessFilter* filter_; 283 const ProcessFilter* filter_;
284 284
285 DISALLOW_EVIL_CONSTRUCTORS(NamedProcessIterator); 285 DISALLOW_EVIL_CONSTRUCTORS(NamedProcessIterator);
286 }; 286 };
287 287
288 // Working Set (resident) memory usage broken down by 288 // Working Set (resident) memory usage broken down by
289 // priv (private): These pages (kbytes) cannot be shared with any other process. 289 // priv (private): These pages (kbytes) cannot be shared with any other process.
290 // shareable: These pages (kbytes) can be shared with other processes under 290 // shareable: These pages (kbytes) can be shared with other processes under
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 // overflow. Has no effect if the OS doesn't provide the necessary facility. 401 // overflow. Has no effect if the OS doesn't provide the necessary facility.
402 void EnableTerminationOnHeapCorruption(); 402 void EnableTerminationOnHeapCorruption();
403 403
404 // If supported on the platform, and the user has sufficent rights, increase 404 // If supported on the platform, and the user has sufficent rights, increase
405 // the current process's scheduling priority to a high priority. 405 // the current process's scheduling priority to a high priority.
406 void RaiseProcessToHighPriority(); 406 void RaiseProcessToHighPriority();
407 407
408 } // namespace base 408 } // namespace base
409 409
410 #endif // BASE_PROCESS_UTIL_H_ 410 #endif // BASE_PROCESS_UTIL_H_
OLDNEW
« no previous file with comments | « base/port.h ('k') | base/process_util_posix.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698