// 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 ddk.protocol.sysmem;

using zx;

[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(handle<channel> allocator_request) -> (zx.status s);

    /// Takes the client end of a FIDL connection that'll serve
    /// fuchsia.sysmem.Heap.
    RegisterHeap(uint64 heap, handle<channel> heap_connection) -> (zx.status s);
};
