// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef INIT_STARTUP_CONSTANTS_H_
#define INIT_STARTUP_CONSTANTS_H_

#include <sys/mount.h>

namespace startup {

// These constants are used to check the clock. Since they need to be
// updated, which could be automated, they are in a separate file for
// ease of maintenance.
// NB: Keep in sync with tlsdate/configure.ac constants.
constexpr int kMinYear = 2024;
// Assume that this build of the OS won't be used this far in the future.
// Seems unlikely that we'll be able to reasonably communicate with the
// rest of the world with such ancient software.  It doesn't prevent the
// runtime from syncing the clock.
constexpr int kMaxYear = kMinYear + 30;
// This isn't exactly correct as it doesn't handle leap years, but it's
// good enough for our purposes (pulling clock to the ~last year).
constexpr uint64_t kMinSecs = (kMinYear - 1970) * (365UL * 24 * 60 * 60);
constexpr uint64_t kMaxSecs = (kMaxYear - 1970) * (365UL * 24 * 60 * 60);

// Many of the mount calls in chromeos_startup utilize these flags.
// Making this a constant to simplify those mount calls, but this
// should only be used in cases where these specific mount flags are
// needed.
constexpr int kCommonMountFlags = MS_NOSUID | MS_NODEV | MS_NOEXEC;

}  // namespace startup

#endif  // INIT_STARTUP_CONSTANTS_H_
