blob: 27da0a309fc0dce3a6f91eaba0bc25b753884ed5 [file] [log] [blame]
Jocelyn Bohr185432c2015-08-13 14:16:09 -07001// Copyright 2015 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Yi Chou9d24b462020-12-04 01:12:57 +08005#include "tpm2-simulator/simulator.h"
Jocelyn Bohr185432c2015-08-13 14:16:09 -07006
Yi Choudee22a52020-12-07 15:06:22 +08007#include <base/at_exit.h>
Yi Chou9d24b462020-12-04 01:12:57 +08008#include <base/logging.h>
Yi Choudee22a52020-12-07 15:06:22 +08009#include <brillo/flag_helper.h>
Yi Chou9d24b462020-12-04 01:12:57 +080010#include <brillo/syslog_logging.h>
Jocelyn Bohr185432c2015-08-13 14:16:09 -070011
Yi Chou9d24b462020-12-04 01:12:57 +080012int main(int argc, char* argv[]) {
Yi Choudee22a52020-12-07 15:06:22 +080013 DEFINE_bool(sigstop, true, "raise SIGSTOP when TPM initialized");
14 DEFINE_string(work_dir, "/mnt/stateful_partition/unencrypted/tpm2-simulator",
15 "Daemon data folder");
16
17 base::AtExitManager at_exit;
18
19 brillo::FlagHelper::Init(argc, argv, "TPM2 simulator");
Yi Chou9d24b462020-12-04 01:12:57 +080020 brillo::InitLog(brillo::kLogToSyslog | brillo::kLogToStderrIfTty);
Jocelyn Bohr185432c2015-08-13 14:16:09 -070021
Yi Choudee22a52020-12-07 15:06:22 +080022 if (chdir(FLAGS_work_dir.c_str()) < 0) {
23 PLOG(ERROR) << "Failed to change to current directory";
Jocelyn Bohr185432c2015-08-13 14:16:09 -070024 }
Yi Chou9d24b462020-12-04 01:12:57 +080025
26 tpm2_simulator::SimulatorDaemon daemon;
Yi Choudee22a52020-12-07 15:06:22 +080027 daemon.set_sigstop_on_initialized(FLAGS_sigstop);
28
Yi Chou9d24b462020-12-04 01:12:57 +080029 daemon.Run();
Jocelyn Bohr185432c2015-08-13 14:16:09 -070030}