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

#ifndef BASE_MEMORY_DISCARDABLE_MEMORY_INTERNAL_H_
#define BASE_MEMORY_DISCARDABLE_MEMORY_INTERNAL_H_

#include "base/base_export.h"
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
#include "build/build_config.h"

#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)

namespace base {

// Enumeration of the possible experiment groups in the discardable memory
// backing trial. Note that |kAshmem| and |kEmulatedSharedMemory| both map to
// discardable shared memory, except the former allows for the use of ashmem for
// unpinning memory. Ensure that the order of the enum values matches those in
// |kDiscardableMemoryBackingParamOptions|.
enum DiscardableMemoryTrialGroup : int {
  kEmulatedSharedMemory = 0,
  kMadvFree,
  // Only Android devices will be assigned to the ashmem group.
  kAshmem,
};

namespace features {
// Feature flag enabling the discardable memory backing trial.
BASE_EXPORT BASE_DECLARE_FEATURE(kDiscardableMemoryBackingTrial);

BASE_EXPORT extern const base::FeatureParam<DiscardableMemoryTrialGroup>::Option
    kDiscardableMemoryBackingParamOptions[];

BASE_EXPORT extern const base::FeatureParam<DiscardableMemoryTrialGroup>
    kDiscardableMemoryBackingParam;
}  // namespace features

// Whether we should do the discardable memory backing trial for this session.
BASE_EXPORT bool DiscardableMemoryBackingFieldTrialIsEnabled();

// If we should do the discardable memory backing trial, then get the trial
// group this session belongs in.
BASE_EXPORT DiscardableMemoryTrialGroup
GetDiscardableMemoryBackingFieldTrialGroup();

}  // namespace base

#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
        // BUILDFLAG(IS_ANDROID)

#endif  //  BASE_MEMORY_DISCARDABLE_MEMORY_INTERNAL_H_
