| // 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") |
| @banjo_layout("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(resource struct { |
| allocator_request zx.handle:CHANNEL; |
| }) -> (struct { |
| s zx.status; |
| }); |
| |
| /// Takes the client end of a FIDL connection that'll serve |
| /// fuchsia.sysmem.Heap. |
| RegisterHeap(resource struct { |
| heap uint64; |
| heap_connection zx.handle:CHANNEL; |
| }) -> (struct { |
| s zx.status; |
| }); |
| |
| /// 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(resource struct { |
| secure_mem_connection zx.handle:CHANNEL; |
| }) -> (struct { |
| s zx.status; |
| }); |
| |
| /// 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() -> (struct { |
| s zx.status; |
| }); |
| }; |