blob: 4af468ac2655bbc451ef66716681e966238ca93f [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.
// !!! THIS FILE IS NOT YET USED !!!
// See //zircon/system/public/zircon/syscalls.banjo.
// !!! THIS FILE IS NOT YET USED !!!
library zz;
struct SystemPowerctlArg {
// TODO(scottmg): More unnamed unions.
//union {
//struct {
//uint8_t target_s_state; // Value between 1 and 5 indicating which S-state
//uint8_t sleep_type_a; // Value from ACPI VM (SLP_TYPa)
//uint8_t sleep_type_b; // Value from ACPI VM (SLP_TYPb)
//} acpi_transition_s_state;
//struct {
//uint32_t power_limit; // PL1 value in milliwatts
//uint32_t time_window; // PL1 time window in microseconds
//uint8_t clamp; // PL1 clamping enable
//uint8_t enable; // PL1 enable
//} x86_power_limit;
//};
};
[Transport="Syscall"]
protocol System {
[Vdsocall, Const]
GetDcacheLineSize() -> (uint32 size);
/// Get number of logical processors on the system.
[Vdsocall, Const]
GetNumCpus() -> (uint32 count);
/// Get version string for system.
[Vdsocall,
In0="mutable<string>"]
GetVersion(string version) -> (status status);
/// Get amount of physical memory on the system.
[Vdsocall]
GetPhysmem() -> (uint64 physmem);
// TODO(scottmg): "features" has a features attribute. I'm not sure if/how it's used.
/// Get supported hardware capabilities.
[Vdsocall]
GetFeatures(uint32 kind) -> (status status, uint32 features);
/// Retrieve a handle to a system event.
GetEvent(handle<job> root_job, uint32 kind) -> (status status, handle<event> event);
/// Soft reboot the system with a new kernel and bootimage.
[In0="handle<resource>:kind=ROOT",
In1="handle<vmo>:rights=READ",
In2="handle<vmo>:rights=READ"]
Mexec(handle<resource> resource, handle<vmo> kernel_vmo, handle<vmo> bootimage_vmo) ->
(status status);
/// Return a ZBI containing ZBI entries necessary to boot this system.
[In0="handle<resource>:kind=ROOT",
In1="mutable<vector<byte>>"]
MexecPayloadGet(handle<resource> resource, vector<byte> buffer) -> (status status);
[In0="handle<resource>:kind=ROOT",
In2="box<SystemPowerctlArg>"]
Powerctl(handle<resource> resource, uint32 cmd, SystemPowerctlArg arg) -> (status status);
};