blob: d3a9fa098a20b3bf4b86fac5edca187451d0e485 [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;
[Transport="Syscall"]
protocol Bti {
/// Create a new bus transaction initiator.
[Out1="handle<bti>:acquire"]
Create(handle<iommu> iommu, uint32 options, uint64 bti_id) -> (status status, handle<bti> out);
/// Pin pages and grant devices access to them.
[In0="handle<bti>:rights=MAP",
In2="handle<vmo>:rights=MAP",
In5="mutable<vector<paddr>>",
Out1="handle<pmt>:acquire"]
Pin(handle<bti> handle,
uint32 options,
handle<vmo> vmo,
uint64 offset,
uint64 size,
vector<paddr> addrs) ->
(status status, handle<pmt> pmt);
/// Releases all quarantined PMTs.
[In0="handle<bti>:rights=WRITE"]
ReleaseQuarantine(handle<bti> handle) -> (status status);
};