blob: f59b032b14bacf765676336686ee0448552d23d4 [file] [log] [blame] [edit]
// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "debugd/src/sysrq_tool.h"
#include <fcntl.h>
#include <unistd.h>
#include "debugd/src/error_utils.h"
namespace debugd {
namespace {
const char kErrorSysrq[] = "org.chromium.debugd.error.sysrq";
} // namespace
bool SysrqTool::LogKernelTaskStates(brillo::ErrorPtr* error) {
int sysrq_trigger = open("/proc/sysrq-trigger", O_WRONLY | O_CLOEXEC);
if (sysrq_trigger < 0) {
DEBUGD_ADD_PERROR(error, kErrorSysrq, "open");
return false;
}
ssize_t written = write(sysrq_trigger, "t", 1);
close(sysrq_trigger);
if (written < 1) {
DEBUGD_ADD_PERROR(error, kErrorSysrq, "write");
return false;
}
return true;
}
} // namespace debugd