fuchsia.hardware.mailbox

Added: HEAD

协议

渠道

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

Channel 表示可用于向目标核心发送消息的单个邮箱通道。

RegisterListener

为此通道上的收到的消息注册监听器。不得同时注册多个监听器。如果监听器已注册,此调用将失败并显示 ZX_ERR_ALREADY_BOUND。

如需取消注册监听器,服务器将关闭其通道端。在取消注册上一个监听器后,可以注册另一个监听器。

请求

名称类型
listener client_end:Listener

响应

名称类型
payload Channel_RegisterListener_Result

SendMessage

将消息写入邮箱,中断目标核心,并(如果适用)等待目标核心确认消息。

如果 message 大于硬件可支持的值,则返回 ZX_ERR_OUT_OF_RANGE。

请求

名称类型
message vector<uint8>

响应

名称类型
payload Channel_SendMessage_Result

SendRequest

将请求写入邮箱,中断目标核心,并等待目标核心发送响应。

如果 request 大于硬件可支持的值,则返回 ZX_ERR_OUT_OF_RANGE。 如果目标核心不支持将请求与响应相关联,则返回 ZX_ERR_NOT_SUPPORTED。

请求

名称类型
request vector<uint8>

响应

名称类型
payload Channel_SendRequest_Result

Listener

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

Listener 用于接收来自邮箱通道的消息。

此连接的服务器端由邮箱客户端持有。

OnMessage

在邮箱频道上收到消息时调用。

邮箱驱动程序不会并发调用 OnMessage。它会等待上一个调用完成,然后再发送另一条消息。

如果客户端未能及时响应 OnMessage,邮箱驱动程序可能会出现内存不足并丢弃后续消息。

lease 是一个可选的唤醒租约接力棒,由邮箱驱动程序在消息导致唤醒事件或在唤醒事件期间到达时传递,使系统保持唤醒状态,直到监听器处理完消息(或获取自己的唤醒租约)。

请求

名称类型
message vector<uint8>
lease handle<eventpair>?

响应

名称类型
payload Listener_OnMessage_Result

OnRequest

在邮箱通道上收到请求时调用。

客户端应处理请求,并根据请求的内容返回响应载荷。响应将由邮箱驱动程序返回到远程核心。

如果监听器返回错误,邮箱驱动程序会记录该错误,并且不会向远程核心返回任何响应。

适用与 OnMessage 相同的并发规则。

lease 是一个可选的唤醒租约接力棒,其语义与 OnMessage 中的语义相同。

请求

名称类型
message vector<uint8>
lease handle<eventpair>?

响应

名称类型
payload Listener_OnRequest_Result

STRUCTS

Channel_RegisterListener_Response

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

<EMPTY>

Channel_SendMessage_Response

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

<EMPTY>

Channel_SendRequest_Response

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

字段类型说明默认
response vector<uint8> 无默认应用

Listener_OnMessage_Response

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

<EMPTY>

Listener_OnRequest_Response

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

字段类型说明默认
response vector<uint8> 无默认应用

TABLES

ChannelInfo

在 fuchsia.hardware.mailbox/metadata.fidl 中定义

序数字段类型说明
channel uint32

通道编号,对此控制器而言是唯一的。必填。

client uint32

客户端服务 ID,对此渠道而言是唯一的。可选。

id uint32

在所有邮箱渠道中具有全局唯一性的 ID。可选。

ControllerInfo

在 fuchsia.hardware.mailbox/metadata.fidl 中定义

ControllerInfo 通过元数据传递给邮箱控制器驱动程序。

序数字段类型说明
id uint32

特定于主板的控制器 ID。可选。

channels vector<ChannelInfo>

邮箱渠道。可选。

UNIONS

Channel_RegisterListener_Result strict

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

序数变体类型说明
response Channel_RegisterListener_Response
err zx/Status
framework_err internal

Channel_SendMessage_Result strict

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

序数变体类型说明
response Channel_SendMessage_Response
err zx/Status

Channel_SendRequest_Result strict

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

序数变体类型说明
response Channel_SendRequest_Response
err zx/Status
framework_err internal

Listener_OnMessage_Result strict

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

序数变体类型说明
response Listener_OnMessage_Response
err zx/Status
framework_err internal

Listener_OnRequest_Result strict

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

序数变体类型说明
response Listener_OnRequest_Response
err zx/Status
framework_err internal

服务

服务

在 fuchsia.hardware.mailbox/mailbox.fidl 中定义

名称类型传输
channel fuchsia.hardware.mailbox/Channel 渠道