blob: 6d3a2a45d5d1119d48e7a08bbb025f660766e1ae [file] [log] [blame]
// Copyright 2025 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/// Provides control of the FTL outside of the normal block operations
/// (read/write/trim/etc) or filesystem operations (mount/unmount/format/etc).
@available(added=25)
library fuchsia.storage.ftl;
using zx;
/// The list of configuration options.
type ConfigurationOptions = table {
/// Use wear leveling that migrates long-lived data onto heavily worn blocks.
1: use_new_wear_leveling bool;
};
/// Provides getter and setter for the state of the FTL configuration. Currently
/// only supports the wear leveling changes to be turned on and off.
@discoverable(server="platform")
closed protocol Configuration {
/// Get the current configuration.
strict Get() -> (ConfigurationOptions) error zx.Status;
/// Set the current configuration.
strict Set(ConfigurationOptions) -> () error zx.Status;
};
service Service {
config client_end:Configuration;
};