API определен в заголовочном файле sysroot-*-kos/include/coresrv/iommu/iommu_api.h
из состава KasperskyOS SDK.
API предназначен для управления изоляцией регионов физической памяти, используемых устройствами на шине PCIe для DMA. (Изоляция обеспечивается IOMMU.)
Сведения о функциях API приведены в таблице ниже.
Использование API
Без прикрепления к домену IOMMU устройство на шине PCIe не может использовать DMA. После прикрепления к домену IOMMU устройство может получить доступ ко всем буферам DMA, которые ассоциированы с этим доменом IOMMU. В один момент времени устройство может быть прикреплено только к одному домену IOMMU, но при этом к одному домену IOMMU может быть прикреплено несколько устройств. Буфер DMA может быть ассоциирован с несколькими доменами IOMMU одновременно. Каждый процесс ассоциирован с отдельным доменом IOMMU.
API позволяет прикреплять устройства на шине PCIe к домену IOMMU, ассоциированному с вызывающим процессом, и выполнять обратную операцию. Как правило, прикрепление устройства к домену IOMMU выполняется при инициализации драйвера. Открепление устройства от домена IOMMU обычно выполняется при возникновении ошибок во время инициализации драйвера или при финализации драйвера.
Ассоциация буфер DMA с доменом IOMMU создается при вызове функции KnIoDmaBegin()
, входящей в API dma.h.
Сведения о функциях API
Функции iommu_api.h
Функция |
Сведения о функции |
---|---|
|
Назначение Прикрепляет устройство на шине PCIe к домену IOMMU, ассоциированному с вызывающим процессом. Параметры
Возвращаемые значения В случае успеха возвращает Дополнительные сведения Если IOMMU не задействован, возвращает |
|
Назначение Открепляет устройство на шине PCIe от домена IOMMU, ассоциированного с вызывающим процессом. Параметры
Возвращаемые значения В случае успеха возвращает Дополнительные сведения Если IOMMU не задействован, возвращает |