[PATCH] Added some PCI stubs
Denis Kirjanov
kirjanov at gmail.com
Wed Sep 15 02:40:12 EDT 2010
Это минимально необходимая структура для pci драйвера.
по id_table код PCI core вызывает функцию инициализации драйвера
(.probe = pcnet_dummy_init_one ),
которая в конечном итоге должна зарегестрировать новый сетевой
интерфейс в системе. (register_netdev())
и предоставить структуру net_device_ops, которая является основным и
главным интерфейсом между
драйвером и сетевым стеком.
Другие поля структуры используются не очень часто. Все примеры есть в
drivers/net
Thanks!
On Wed, Sep 15, 2010 at 3:13 AM, Alex Naumov <posix.ru at googlemail.com> wrote:
> On Tue, Sep 14, 2010 at 9:52 PM, Denis Kirjanov <kirjanov at gmail.com> wrote:
>>
>> +static struct pci_driver pcnet_dummy_driver = {
>> + .name = DRV_NAME,
>> + .id_table = pcnet_dummy_pci_tbl,
>> + .probe = pcnet_dummy_init_one,
>> + .remove = __devexit_p(pcnet_dummy_remove_one),
>>
>
> Это ничего, что мы оставляем столько элементов неинициализированными?
>
> struct pci_driver {
> struct list_head node;
> char *name;
> const struct pci_device_id *id_table; /* must be non-NULL for
> probe to be called */
> int (*probe) (struct pci_dev *dev, const struct pci_device_id
> *id); /* New device inserted */
> void (*remove) (struct pci_dev *dev); /* Device removed (NULL if
> not a hot-plug capable driver) */
> int (*suspend) (struct pci_dev *dev, pm_message_t state); /*
> Device suspended */
> int (*suspend_late) (struct pci_dev *dev, pm_message_t state);
> int (*resume_early) (struct pci_dev *dev);
> int (*resume) (struct pci_dev *dev); /* Device
> woken up */
> void (*shutdown) (struct pci_dev *dev);
> struct pm_ext_ops *pm;
> struct pci_error_handlers *err_handler;
> struct device_driver driver;
> struct pci_dynids dynids;
> };
>
> Было бы здорово, Ден, некоторые комментарии к коду ;)
>
> _______________________________________________
> Kernel-russian mailing list
> Kernel-russian at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernel-russian
>
>
--
Regards,
Denis
More information about the Kernel-russian
mailing list