| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library zx; |
| |
| [Transport = "Syscall"] |
| protocol msi { |
| /// Allocate Message-Signaled Interrupts (MSIs). |
| /// Rights: handle must have resource kind ZX_RSRC_KIND_ROOT. |
| msi_allocate(handle:RESOURCE handle, uint32 count) |
| -> (status status, handle out_allocation); |
| |
| /// Create an Interrupt object from a Messaged-Signaled Interrupt (MSI) allocation. |
| /// Rights: handle must be of type ZX_OBJ_TYPE_MSI. |
| /// Rights: vmo must be of type ZX_OBJ_TYPE_VMO. |
| /// Rights: vmo must have ZX_RIGHT_MAP. |
| msi_create(handle handle, uint32 options, uint32 msi_id, handle:VMO vmo, usize vmo_offset) |
| -> (status status, handle out_interrupt); |
| }; |