1// Copyright 2018 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5library ddk.protocol.mailbox;
6
7using zx;
8
9// Mailboxes
10enum MailboxType : uint8 {
11    SCP_SECURE_MAILBOX = 0x0;
12    SCP_NS_LOW_PRIORITY_MAILBOX = 0x1;
13    SCP_NS_HIGH_PRIORITY_MAILBOX = 0x2;
14    AP_SECURE_MAILBOX = 0x3;
15    AP_NS_LOW_PRIORITY_MAILBOX = 0x4;
16    AP_NS_HIGH_PRIORITY_MAILBOX = 0x5;
17    INVALID_MAILBOX = 0x6;
18};
19
20struct MailboxDataBuf {
21    uint32 cmd;
22    vector<voidptr> tx;
23};
24
25struct MailboxChannel {
26    MailboxType mailbox;
27    vector<voidptr> rx;
28};
29
30[Layout = "ddk-protocol"]
31interface Mailbox {
32    SendCommand(MailboxChannel channel, MailboxDataBuf mdata) -> (zx.status s);
33};
34