123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- #ifndef BASE_PROCESS_KILL_H_
- #define BASE_PROCESS_KILL_H_
- #include "base/files/file_path.h"
- #include "base/process/process.h"
- #include "base/process/process_handle.h"
- #include "base/time/time.h"
- #include "build/build_config.h"
- #include "build/chromeos_buildflags.h"
- namespace base {
- class ProcessFilter;
- #if defined(OS_WIN)
- namespace win {
- const DWORD kSandboxFatalMemoryExceeded = 7012;
- const DWORD kNormalTerminationExitCode = 0;
- const DWORD kDebuggerInactiveExitCode = 0xC0000354;
- const DWORD kKeyboardInterruptExitCode = 0xC000013A;
- const DWORD kDebuggerTerminatedExitCode = 0x40010004;
- const DWORD kStatusInvalidImageHashExitCode = 0xC0000428;
- const DWORD kProcessKilledExitCode = 1;
- }
- #endif
- enum TerminationStatus {
-
- TERMINATION_STATUS_NORMAL_TERMINATION,
- TERMINATION_STATUS_ABNORMAL_TERMINATION,
- TERMINATION_STATUS_PROCESS_WAS_KILLED,
- TERMINATION_STATUS_PROCESS_CRASHED,
- TERMINATION_STATUS_STILL_RUNNING,
- #if defined(OS_CHROMEOS) || BUILDFLAG(IS_LACROS)
-
- TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM,
- #endif
- #if defined(OS_ANDROID)
-
-
-
-
- TERMINATION_STATUS_OOM_PROTECTED,
- #endif
- TERMINATION_STATUS_LAUNCH_FAILED,
- TERMINATION_STATUS_OOM,
- #if defined(OS_WIN)
-
- TERMINATION_STATUS_INTEGRITY_FAILURE,
- #endif
- TERMINATION_STATUS_MAX_ENUM
-
- };
- BASE_EXPORT bool KillProcesses(const FilePath::StringType& executable_name,
- int exit_code,
- const ProcessFilter* filter);
- BASE_EXPORT TerminationStatus GetTerminationStatus(ProcessHandle handle,
- int* exit_code);
- #if defined(OS_POSIX)
- BASE_EXPORT TerminationStatus GetKnownDeadTerminationStatus(
- ProcessHandle handle, int* exit_code);
- #if defined(OS_LINUX) || defined(OS_CHROMEOS)
- BASE_EXPORT void EnsureProcessGetsReaped(Process process);
- #endif
- #endif
- BASE_EXPORT void EnsureProcessTerminated(Process process);
- #if !defined(OS_FUCHSIA)
- BASE_EXPORT bool WaitForProcessesToExit(
- const FilePath::StringType& executable_name,
- base::TimeDelta wait,
- const ProcessFilter* filter);
- BASE_EXPORT bool CleanupProcesses(const FilePath::StringType& executable_name,
- base::TimeDelta wait,
- int exit_code,
- const ProcessFilter* filter);
- #endif
- }
- #endif
|