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

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

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

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

IT-новости

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

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

подробнее

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

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

подробнее

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

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

подробнее

#define PCIBIOS_FIND_PCI_CLASS_CODE   0xb103 // поиск устройства PCI заданного класса

#define PCIBIOS_READ_CONFIG_BYTE      0xb108 // прочитать байт из конф. пространства устройства PCI

#define PCIBIOS_READ_CONFIG_WORD      0xb109 // прочитать слово из конф. пространства устройства PCI

#define PCIBIOS_READ_CONFIG_DWORD     0xb10a // прочитать двойное слово из конф. пространства устройства PCI

Сигнатура, по которой производится поиск служебного каталога BIOS32 (_32_):

#define BIOS32_SIGNATURE       (('_' << 0) + ('3' << 8) + ('2' << 16) + ('_' << 24))

Сигнатура для проверки присутствия PCI BIOS в системе (используется функцией PCIBIOS_PCI_BIOS_PRESENT):

#define PCI_SIGNATURE          (('P' << 0) + ('C' << 8) + ('I' << 16) + (' ' << 24))

Сигнатура, по которой осуществляется поиск сервиса BIOS32:

#define PCI_SERVICE            (('$' << 0) + ('P' << 8) + ('C' << 16) + ('I' << 24))

Определим структуру для хранения информации об устройстве PCI:

struct pci_dev_struct {

    u16 vendor_id, device_id;  // код фирмы-изготовителя и код типа устройства

    u32 class_code;            // код класса устройства

    u32 base_addr;             // адрес порта I/O

    u8 bus, dev, fn;           // координаты устройства - номер шины, номер устройства на шине и номер функции устройства

};

Следующие две структуры описывают физические адреса точек входа в BIOS32 и в сервис BIOS32 (PCI BIOS).

Физический адрес точки входа в BIOS32 (в формате селектор:смещение):

static struct {

    u32 address;

    u16 segment;

} bios32_indirect = { 0, __KERNEL_CS };

Физический адрес точки входа в сервис BIOS32 (PCI BIOS):

static struct {

    u32 address;

    u16 segment;

} pci_indirect = { 0, __KERNEL_CS };

__KERNEL_CS – селектор сегмента кода, определен в файле include/asm-i386/segment.h:

#define __KERNEL_CS 0x10

Стандартный служебный каталог BIOS32 имеет следующий вид:

union bios32 {

    struct {

           u32 signature;      // сигнатура _32_

           u32 entry;          // 32-х битный физический адрес точки входа в BIOS32


Предыдущая страницаОглавлениеСледующая страница
 
[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