PROTOCOLS
SharedVmoIo
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
这是使用共享 VMO 的驱动程序 IO 的通用协议。驱动程序可以编写此协议 并根据硬件的用途选择要实现的方法。此协议仅适用于 用于简单的用例。
Exchange
同时传输和接收数据。tx_buffer 和 rx_buffer 的大小字段 保持不变。
请求
名称 | 类型 |
---|---|
tx_buffer |
SharedVmoBuffer
|
rx_buffer |
SharedVmoBuffer
|
响应
名称 | 类型 |
---|---|
payload |
SharedVmoIo_Exchange_Result
|
接收
从设备接收数据到缓冲区中。
请求
名称 | 类型 |
---|---|
buffer |
SharedVmoBuffer
|
响应
名称 | 类型 |
---|---|
payload |
SharedVmoIo_Receive_Result
|
传播
将缓冲区中的数据发送到设备。
请求
名称 | 类型 |
---|---|
buffer |
SharedVmoBuffer
|
响应
名称 | 类型 |
---|---|
payload |
SharedVmoIo_Transmit_Result
|
SharedVmoRegister
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
这是共享驱动程序可能编写的 VMO 的通用协议。
RegisterVmo
注册 VMO 并将所有权转移给驱动程序。 vmo_id:客户端选择的 ID,将用于对此 VMO 执行操作。 vmo:此 VMO 的句柄、偏移量和大小。此 VMO 上的 IO 操作将是相对于 此处指定的偏移量和大小 Rights:SharedVmoRight 值的位字段,表示可以如何使用此 VMO。来电者 应假定驱动程序会使用这些权限映射和/或固定 VMO。
请求
名称 | 类型 |
---|---|
vmo_id |
uint32
|
vmo |
fuchsia.mem/Range
|
rights |
SharedVmoRight
|
响应
名称 | 类型 |
---|---|
payload |
SharedVmoRegister_RegisterVmo_Result
|
UnregisterVmo
取消映射和/或取消固定 VMO,并将句柄返回给调用方。
请求
名称 | 类型 |
---|---|
vmo_id |
uint32
|
响应
名称 | 类型 |
---|---|
payload |
SharedVmoRegister_UnregisterVmo_Result
|
结构体
SharedVmoBuffer
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
vmo_id |
uint32
|
无默认设置 | |
offset |
uint64
|
无默认设置 | |
size |
uint64
|
无默认设置 |
SharedVmoIo_Exchange_Response
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
<空>
SharedVmoIo_Receive_Response
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
<空>
SharedVmoIo_Transmit_Response
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
<空>
SharedVmoRegister_RegisterVmo_Response
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
<空>
SharedVmoRegister_UnregisterVmo_Response 资源
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
字段 | 类型 | 说明 | 默认 |
---|---|---|---|
vmo |
handle<vmo>
|
无默认设置 |
联合体
SharedVmoIo_Exchange_Result 严格
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SharedVmoIo_Exchange_Response
|
|
2 |
err |
zx/Status
|
SharedVmoIo_Receive_Result 严格
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SharedVmoIo_Receive_Response
|
|
2 |
err |
zx/Status
|
SharedVmoIo_Transmit_Result 严格
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SharedVmoIo_Transmit_Response
|
|
2 |
err |
zx/Status
|
SharedVmoRegister_RegisterVmo_Result 严格
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SharedVmoRegister_RegisterVmo_Response
|
|
2 |
err |
zx/Status
|
SharedVmoRegister_UnregisterVmo_Result 严格的 资源
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
Ordinal | 变体 | 类型 | 说明 |
---|---|---|---|
1 |
response |
SharedVmoRegister_UnregisterVmo_Response
|
|
2 |
err |
zx/Status
|
位
SharedVmoRight 柔性
类型:uint32
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定义
名称 | 值 | 说明 |
---|---|---|
读取 |
1 | 协议实现可以从此 VMO(用于传输请求)中读取数据。 |
写入 |
2 | 协议实现可以写入此 VMO(用于接收请求)。 |