Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

n  ECX – код типа устройства.

n  EDX – код фирмы-изготовителя устройства.

n  ESI – индекс (порядковый номер) устройства заданного типа.

n  В регистр EDI занесем адрес точки входа в сервис.

 

В результате выполнения вызова в регистрах процессора будет находиться следующая информация:

n  BH – номер шины, к которой подключено устройство;

n  BL – номер устройства в старших пяти битах и номер функции в трёх младших;

n  AH – код возврата (может принимать значения BAD_VEN-DOR_ID, DEVICE_NOT_FOUND и SUCCESFUL).

Выполняем дальний вызов:

    __asm__("lcall (%%edi); cld "

           "jc 1f "

           "xor %%ah, %%ah "

           "1:"

           : "=b" (bx),

             "=a" (ret)

           : "1" (PCIBIOS_FIND_PCI_DEVICE),

             "c" (device_id),

             "d" (vendor),

             "S" ((int) index),

             "D" (&pci_indirect)); // адрес точки входа в сервис

Обрабатываем полученный результат:

    *bus = (bx >> 8) & 0xff; // номер шины

    *dev = (bx & 0xff) >> 3; // номер устройства на шине

    *fn = bx & 0x3;            // номер функции

    return (int) (ret & 0xff00) >> 8;

}

Функция поиска устройства заданного класса pci_bios_find_class() практически не отличается от функции поиска устройства по типу:

static int pci_bios_find_class(u32 class_code, u16 index, struct pci_dev_struct *pd)

{

    u16 bx;

    u16 ret;

В параметрах функции передается указатель на информационную структуру struct pci_dev_struct *pd.

Перед выполнением дальнего вызова в регистры заносятся следующие данные:

n  EAX – запрашиваемая функция сервиса – 0xB103.

n  ECX – код класса устройства.

n  ESI – индекс (порядковый номер) устройства заданного типа.

n  В регистр EDI занесем адрес точки входа в сервис.

 

Результаты выполнения вызова аналогичны предыдущим:


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100