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(用于接收请求)。  |