// Copyright 2018 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.mailbox;

using zx;

// Mailboxes
enum MailboxType : uint8 {
    SCP_SECURE_MAILBOX = 0x0;
    SCP_NS_LOW_PRIORITY_MAILBOX = 0x1;
    SCP_NS_HIGH_PRIORITY_MAILBOX = 0x2;
    AP_SECURE_MAILBOX = 0x3;
    AP_NS_LOW_PRIORITY_MAILBOX = 0x4;
    AP_NS_HIGH_PRIORITY_MAILBOX = 0x5;
    INVALID_MAILBOX = 0x6;
};

struct MailboxDataBuf {
    uint32 cmd;
    vector<voidptr> tx;
};

struct MailboxChannel {
    MailboxType mailbox;
    vector<voidptr> rx;
};

[Layout = "ddk-protocol"]
protocol Mailbox {
    SendCommand(MailboxChannel channel, MailboxDataBuf mdata) -> (zx.status s);
};
