blob: 1d529cc941007e79a00ce158b5fe6e23c759143b [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.
library zx;
// TODO(scottmg): ARM_SMC_xyz.
struct SmcParameters {
uint32 func_id;
uint64 arg1;
uint64 arg2;
uint64 arg3;
uint64 arg4;
uint64 arg5;
uint64 arg6;
uint16 client_id;
uint16 secure_os_id;
};
struct SmcResult {
uint64 arg0;
uint64 arg1;
uint64 arg2;
uint64 arg3;
uint64 arg6; // at least one implementation uses it as a way to return session_id.
};
[Transport = "Syscall"]
protocol smc {
// TODO(ZX-2967): handle No rights required?
/// Make Secure Monitor Call (SMC) from user space.
smc_call(handle:RESOURCE handle, SmcParameters parameters)
-> (status status, SmcResult out_smc_result);
};