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 作業將與 這裡指定的位移和大小 權限:這是 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 | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | SharedVmoIo_Exchange_Response | |
| 2 | err | zx/Status | 
SharedVmoIo_Receive_Result 嚴格
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定義的
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | SharedVmoIo_Receive_Response | |
| 2 | err | zx/Status | 
SharedVmoIo_Transmit_Result 嚴格
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定義的
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | SharedVmoIo_Transmit_Response | |
| 2 | err | zx/Status | 
SharedVmoRegister_RegisterVmo_Result 嚴格
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定義的
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | SharedVmoRegister_RegisterVmo_Response | |
| 2 | err | zx/Status | 
SharedVmoRegister_UnregisterVmo_Result 嚴格 資源
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定義的
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | SharedVmoRegister_UnregisterVmo_Response | |
| 2 | err | zx/Status | 
商業智慧
SharedVmoRight 彈性
類型:uint32
在 fuchsia.hardware.sharedmemory/sharedmemory.fidl 中定義的
| 名稱 | 值 | 說明 | 
|---|---|---|
| 閱讀 | 1 | 通訊協定實作項目可以從這個 VMO 讀取 (用於傳送要求)。 | 
| 寫入 | 2 | 通訊協定實作項目可寫入這個 VMO (用於接收要求)。 |