2010/9/18 Dmitry Podgorny <pasis.ua@gmail.com>:
В Fri, 17 Sep 2010 19:02:38 +0400 Denis Kirjanov <kirjanov@gmail.com> пишет:
+/* Why do we need to create protos like this? */ +static int pcnet_dummy_init_netdev(struct pci_dev *pdev, unsigned long ioaddr);
Нужны ли вообще прототипы функций? Мне показалось, что удобнее разместить pcnet_dummy_init_netdev после функции инициализации, но я тут больше на правах ученика, так что рад выслушать любые предложения :).
Прототипы - личное дело каждого. У меня насчет них такое представление - создать абстракцию в текущем месте(ф-ию, структуру etc) и описать её выше. Мне кажется что в данном случае эти прототипы не особо полезны и занимают лишнее место в коде.
+ ndev = alloc_etherdev(sizeof(*pp)); + SET_NETDEV_DEV(ndev, &pdev->dev);
Почему мы выполняем действия с net_device не закончив инициализацию pci устройства? Здесь есть какая-то специфика? Я планировал вынести подобные действия в pcnet_dummy_init_netdev() или здесь я не прав? Специфика такая что автор сам решает как ему поступить :) Вообще правильное место для этого макроса - после функции pci_set_drvdata ;) Но в данном случае это безопасно.
static void __devexit pcnet_dummy_remove_one(struct pci_dev *pdev)
Будет ли вызвана эта функция, если инициализация устройства завершилась неудачей и мы возвратили -ENODEV? Почему мы должны вызывать remove для драйвера, который не смог успешно зарегестрироваться? ;) _______________________________________________ Kernel-russian mailing list Kernel-russian@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernel-russian
-- Regards, Denis