blob: 45e2fed660d0e091901be5683dd7a4da1378ab90 [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 fuchsia.hardware.sysmem;
using zx;
[Transport = "Banjo", BanjoLayout = "ddk-protocol"]
protocol Sysmem {
/// Takes the server end of a FIDL connection that'll serve
/// fuchsia.sysmem.Allocator. If the connection fails, the channel will
/// close.
Connect(zx.handle:CHANNEL allocator_request) -> (zx.status s);
/// Takes the client end of a FIDL connection that'll serve
/// fuchsia.sysmem.Heap.
RegisterHeap(uint64 heap, zx.handle:CHANNEL heap_connection) -> (zx.status s);
/// Takes the client end of a FIDL connection that'll serve
/// fuchsia.sysmem.SecureMem, which is a protocol that's specific to
/// sysmem<->securemem concerns.
RegisterSecureMem(zx.handle:CHANNEL secure_mem_connection) -> (zx.status s);
/// Informs sysmem that the channel previously passed to RegisterSecureMem()
/// will be closing soon, and that this channel closure should not be
/// considered an error.
UnregisterSecureMem() -> (zx.status s);
};