Ошибки libpciaccess и libpci

Модератор: Модераторы разделов

YUKLA
Сообщения: 342
ОС: Gentoo Linux, XFCE 4.6.1

Ошибки libpciaccess и libpci

Сообщение YUKLA »

В процессе работы над проектом, который нельзя называть, я нашел как минимум две ошибки в перечисленных выше библиотеках. Может быть, кто-нибудь возьмется написать Error Report? :crazy:

Итак.
1.
Библиотека libpciaccess версии 0.12.1 на

Код: Выделить всё

Linux localhost 2.6.32-hardened-r34 #1 SMP PREEMPT Thu Feb 24 13:01:00 EET 2011 i686 Intel(R) Pentium(R) Dual CPU T2330 @ 1.60GHz GenuineIntel GNU/Linux
не правильно заполняет данные о прерываниях. Т.е., она берет их из config space по смещению 0x3C, а нужно брать из файла /sys/bus/pci/devices/xxx:xx:xx.x/irq, как это делает libpci.

Проблема заключается в том, что в config space (как в /sys, так и в /proc) находятся необновленные данные. Т.е, kernel в процессе загрузки и инициализации устройства обновляет данные о назначенном устройству прерывании в своих внутренних таблицах, но не в PCI config space.

2. Эта же библиотека. Не верно заполняются флаги ресурса (is_IO, is_prefetchable и is_64 в структуре struct pci_mem_region). Мне удалось наблюдать только заполнение флага is_IO. Все остальные никогда не заполняются.

Видимо - это просто еще не доделали. Как не доделали и работу с ресурсом типа Flash ROM.

3. Библиотека libpci в составе pciutils 3.1.4. Не верная работа функции pci_fill_info в случае, если указатель на PCI устройство создан функцией pci_get_dev. Ни одна комбинация flags в функции pci_fill_info не дает полноценного заполнения структуры struct pci_dev данными - не правильно загружаются прерывания, не заполняются размеры областей памяти и так далее.

Пришлось перейти на вариант

Код: Выделить всё

    for(dev=pacc->devices; dev; dev=dev->next) {
        pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES....);}
В этом случае все структуры заполняются правильно.

С уважением.

iУведомление от модератора /dev/random
удалена ссылка
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Ошибки libpciaccess и libpci

Сообщение sash-kan »

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
YUKLA
Сообщения: 342
ОС: Gentoo Linux, XFCE 4.6.1

Re: Ошибки libpciaccess и libpci

Сообщение YUKLA »


Спасибо, sash-kan, но мне это без надобности. :cool:

А мой текстик подредактировали вы зря. Втихую так. :tongue: Я, пожалуй, поправлю его обратно, ок?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5492
ОС: Gentoo

Re: Ошибки libpciaccess и libpci

Сообщение /dev/random »

YUKLA писал(а):
03.03.2011 22:47
А мой текстик подредактировали вы зря. Втихую так. :tongue: Я, пожалуй, поправлю его обратно, ок?

Это не он. И возвращать ссылку не надо.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Ошибки libpciaccess и libpci

Сообщение sash-kan »

YUKLA писал(а):
03.03.2011 22:47
Спасибо, sash-kan, но мне это без надобности.
это понятно из вашего поста. а ссылки я подкинул тому, кто, может быть, захочет перевести.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: