blob: 2e2c1e1fd9646ac4c654285c0e107767fdda275a [file] [log] [blame]
// Copyright 2019 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.
// DEPRECATED: This library is being replaced. Do not add new dependencies
// to this interface.
library fuchsia.scheduler.deprecated;
using zx;
// Corresponds to zx_cpu_set_t.
@deprecated
type CpuSet = struct {
mask array<uint64, 8>;
};
@deprecated
@discoverable
closed protocol ProfileProvider {
/// Obtain a profile handle.
///
/// TODO(https://fxbug.dev/42116876): This API will be deprecated and removed in the future, use
/// SetProfileByRole instead.
strict GetProfile(struct {
priority uint32;
name string:64;
}) -> (resource struct {
status zx.Status;
profile zx.Handle:<PROFILE, optional>;
});
/// Obtain a deadline profile handle.
///
/// TODO(https://fxbug.dev/42116876): This API will be deprecated and removed in the future, use
/// SetProfileByRole instead.
strict GetDeadlineProfile(struct {
capacity uint64;
deadline uint64;
period uint64;
name string:64;
}) -> (resource struct {
status zx.Status;
profile zx.Handle:<PROFILE, optional>;
});
/// Obtain a handle for a profile that sets CPU affinity.
///
/// TODO(https://fxbug.dev/42116876): This API will be deprecated and removed in the future, use
/// SetProfileByRole instead.
strict GetCpuAffinityProfile(struct {
cpu_mask CpuSet;
}) -> (resource struct {
status zx.Status;
profile zx.Handle:<PROFILE, optional>;
});
/// Sets the given object's profile based on the requested role. The exact
/// parameters of the profile are system dependent and may vary based on
/// device-specific tuning and/or runtime system goals.
strict SetProfileByRole(resource struct {
handle zx.Handle;
role string:2048;
}) -> (struct {
status zx.Status;
});
};