6#ifndef ZEPHYR_INCLUDE_DRIVERS_INTEL_VTD_H_
7#define ZEPHYR_INCLUDE_DRIVERS_INTEL_VTD_H_
96 return api->
remap_msi(dev, vector, n_vector);
119 return api->
remap(dev, irte_idx, vector,
flags, src_id);
void(* vtd_set_irte_msi_f)(const struct device *dev, uint8_t irte_idx, bool msi)
Definition intel_vtd.h:41
int(* vtd_set_irte_vector_f)(const struct device *dev, uint8_t irte_idx, uint16_t vector)
Definition intel_vtd.h:24
int(* vtd_get_irte_by_irq_f)(const struct device *dev, unsigned int irq)
Definition intel_vtd.h:38
static int vtd_get_irte_by_irq(const struct device *dev, unsigned int irq)
Get the irte allocated for the given irq.
Definition intel_vtd.h:202
static int vtd_set_irte_vector(const struct device *dev, uint8_t irte_idx, uint16_t vector)
Set the vector on the allocated irte.
Definition intel_vtd.h:131
int(* vtd_alloc_entries_f)(const struct device *dev, uint8_t n_entries)
Definition intel_vtd.h:11
static int vtd_remap(const struct device *dev, uint8_t irte_idx, uint16_t vector, uint32_t flags, uint16_t src_id)
Remap the given vector.
Definition intel_vtd.h:110
static int vtd_get_irte_by_vector(const struct device *dev, uint16_t vector)
Get the irte allocated for the given vector.
Definition intel_vtd.h:149
bool(* vtd_irte_is_msi_f)(const struct device *dev, uint8_t irte_idx)
Definition intel_vtd.h:45
int(* vtd_set_irte_irq_f)(const struct device *dev, uint8_t irte_idx, unsigned int irq)
Definition intel_vtd.h:34
static uint16_t vtd_get_irte_vector(const struct device *dev, uint8_t irte_idx)
Get the vector given to the IRTE.
Definition intel_vtd.h:166
static bool vtd_irte_is_msi(const struct device *dev, uint8_t irte_idx)
Definition intel_vtd.h:221
static int vtd_allocate_entries(const struct device *dev, uint8_t n_entries)
Allocate contiguous IRTEs.
Definition intel_vtd.h:71
int(* vtd_get_irte_by_vector_f)(const struct device *dev, uint16_t vector)
Definition intel_vtd.h:28
uint32_t(* vtd_remap_msi_f)(const struct device *dev, msi_vector_t *vector, uint8_t n_vector)
Definition intel_vtd.h:14
static int vtd_set_irte_irq(const struct device *dev, uint8_t irte_idx, unsigned int irq)
Set the irq on the allocated irte.
Definition intel_vtd.h:184
static uint32_t vtd_remap_msi(const struct device *dev, msi_vector_t *vector, uint8_t n_vector)
Generate the MSI Message Address data for the given vector.
Definition intel_vtd.h:89
static void vtd_set_irte_msi(const struct device *dev, uint8_t irte_idx, bool msi)
Definition intel_vtd.h:211
uint16_t(* vtd_get_irte_vector_f)(const struct device *dev, uint8_t irte_idx)
Definition intel_vtd.h:31
int(* vtd_remap_f)(const struct device *dev, uint8_t irte_idx, uint16_t vector, uint32_t flags, uint16_t src_id)
Definition intel_vtd.h:18
flags
Definition parser.h:96
#define bool
Definition stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:412
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:418
Definition intel_vtd.h:48
vtd_set_irte_vector_f set_irte_vector
Definition intel_vtd.h:52
vtd_alloc_entries_f allocate_entries
Definition intel_vtd.h:49
vtd_get_irte_by_vector_f get_irte_by_vector
Definition intel_vtd.h:53
vtd_remap_msi_f remap_msi
Definition intel_vtd.h:50
vtd_irte_is_msi_f irte_is_msi
Definition intel_vtd.h:58
vtd_remap_f remap
Definition intel_vtd.h:51
vtd_set_irte_msi_f set_irte_msi
Definition intel_vtd.h:57
vtd_get_irte_vector_f get_irte_vector
Definition intel_vtd.h:54
vtd_set_irte_irq_f set_irte_irq
Definition intel_vtd.h:55
vtd_get_irte_by_irq_f get_irte_by_irq
Definition intel_vtd.h:56