Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
Line 3,329: Line 3,329:
     список вторых должен быть указан в документации по устройству.
     список вторых должен быть указан в документации по устройству.


=== подфункция 11 - инициализировать доступ к MMIO ===
Параметры:
  * eax = 62 - номер функции
  * bl = 11 - номер подфункции
  * cx = адрес PCI-устройства
Возвращаемое значение:
  * eax = -1 - доступ к PCI запрещён;
  * eax = -2 - доступ к MMIO-блокам устройства не разрешён;
  * eax = -3 - ошибка аллокации пользовательской дин. памяти; иначе
  * eax = размер доступной динамической памяти.
Замечания:
  * Предварительно должен быть разрешён низкоуровневый доступ к PCI
    для приложений подфункцией 12 функции 21.
  * адрес PCI-устройства должен совпадать с системной переменной
    mmio_pci_addr
=== подфункция 12 - получить линейный адрес MMIO-блока ===
Параметры:
  * eax = 62 - номер функции
  * bl  = 12 - номер подфункции
  * bh  = номер BAR-регистра в конфигурационной зоне PCI
  * ecx = размер MMIO-блока (в байтах)
  * edx = смещение относительно начала MMIO-блока (в 4K-страницах!)
Возвращаемое значение:
  * eax = -1 - доступ к PCI запрещён;
  * eax = -2 - неверный номер BAR-регистра;
  * eax = -3 - BAR не содержит адреса IO;
  * eax = -4 - BAR адресует ''порты'' IO;
  * eax = -5 - ошибка аллокации; иначе
  * eax = начальный адрес MMIO в адресном пространстве приложения.
Замечания:
  * Предварительно должен быть разрешён низкоуровневый доступ к PCI
    для приложений подфункцией 12 функции 21.
  * Адрес PCI-устройства задается системной переменной mmio_pci_addr.
  * Предоставленный диапазон линейных адресов должен освобождаться
    посредством вызова функции 62:13
=== подфункция 13 - освободить линейные адреса MMIO ===
Параметры:
  * eax = 62 - номер функции
  * bl  = 12 - номер подфункции
  * ecx = начальный адрес освобождаемого MMIO-блока в адресном
    пространстве приложения
Возвращаемое значение:
  * eax = 1 - блок успешно освобожден;
Замечания:
  * Предварительно приложению должен быть выделен uMMIO-блок (fn62:12)


== Функция 63 - работа с доской отладки. ==
== Функция 63 - работа с доской отладки. ==

Revision as of 18:25, 3 January 2010