Запись драйвера для устройства AGP

AGP является надмножеством PCI, обеспечивающего дополнительную функциональность, оптимизированную для видеоустройств. В этой главе описываются эту добавленную функциональность на высоком уровне. Для подробной программной информации необходимо консультироваться с документацией для IOAGPDevice семья, которая может быть найдена на веб-сайте Документации Разработчика Apple (http://developer .apple.com/Documentation).

Существенно, поддержка устройства AGP не требует намного большего усилия, чем поддержка устройства PCI. Драйверы PCI должны “просто работать” на устройства AGP как есть с возможным добавлением новой индивидуальности соответствия, если устройство имеет различный ID, или Откройте имя Firmware. Можно добавить дополнительную индивидуальность для AGP точно таким же образом, как Вы добавили бы индивидуальность для стандартного устройства PCI, как описано в Соответствии.

Необходимо отметить, однако, что стандартный драйвер PCI не будет видеть, что увеличение производительности AGP без дополнительного драйвера изменяется для упрощения использования транзакций памяти AGP к и от устройства.

Для добавления этой поддержки необходимо сначала обнаружить, является ли устройство драйвер, соответствующий против, фактически, устройством AGP. Можно сделать это путем попытки бросить провайдера к типу IOAGPDevice путем вызова OSDynamicCast. Если этот вызов успешно выполняется, Ваш драйвер, соответствующий против устройства AGP. Если это перестало работать, Ваш драйвер соответствовал против non-AGP устройства PCI, такого как стандартная плата PCI или карта CardBus.

Как только Вы решили, что Ваш драйвер соответствовал против устройства AGP, необходимо использовать IOAGPDevice метод createAGPSpace создать пространство AGP для связи с устройством и включить транзакции AGP на шине. Необходимо использовать метод destroyAGPSpace когда разгружается Ваш драйвер.

Оттуда, можно использовать метод commitAGPMemory сделать блоки памяти доступными для Вашего устройства через вызовы AGP — например, если Ваша видеокарта должна считать текстуру из оперативной памяти. Необходимо использовать releaseAGPMemory освободить отображения AGP для этих областей памяти, когда Вы закончены с ними.

С теми изменениями драйвер устройства PCI должен отразить добавленные выигрыши в производительности, которые AGP обеспечивает без дальнейшей модификации.

Для получения дополнительной информации об устройствах AGP консультируйтесь с документацией для IOAGPDevice семья и графическое ускорение SDK.