Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
n DI – смещение в конфигурационном пространстве.
После выполнения функции в регистре ECX будут находиться считанные данные, а регистр AH будет содержать код возврата. Подготовим значение для загрузки в регистр BX и прочитаем информацию из конфигурационного пространства устройства, учитывая размер запрашиваемых данных:
bx = ((bus << 8) | (dev << 3) | fn);
switch (len) {
case 1: // считываем байт
__asm__("lcall (%%esi); cld "
"jc 1f "
"xor %%ah, %%ah "
"1:"
: "=c" (*value),
"=a" (result)
: "1" (PCIBIOS_READ_CONFIG_BYTE),
"b" (bx),
"D" ((long)reg),
"S" (&pci_indirect)); // точка входа в сервис
break;
case 2: // считываем слово
__asm__("lcall (%%esi); cld "
"jc 1f "
"xor %%ah, %%ah "
"1:"
: "=c" (*value),
"=a" (result)
: "1" (PCIBIOS_READ_CONFIG_WORD),
"b" (bx),
"D" ((long)reg),
"S" (&pci_indirect)); // точка входа в сервис
break;
case 4: // считываем двойное слово