struct net_device - нет члена с именем dev - но он есть - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь портировать драйвер сетевой карты с Linux на ESXi.Все идет хорошо, но иногда я нахожу тупики.Как этот.

Одна из ошибок, которые генерирует компиляция, состоит в том, что struct net_device не имеет члена 'dev'.Эта строка вызывает ошибку:

static inline struct device *aq_nic_get_dev(struct aq_nic_s *self)
{
        // member ndev is of type struct net_device
        return self->ndev->dev.parent; // the compiles throws the error here
}

* В заголовке Linux определено struct net_device netdevice.h:

struct net_device
{

    /*
     * This is the first field of the "visible" part of this structure
     * (i.e. as seen by users in the "Space.c" file).  It is the name
     * the interface.
     */
#if defined(__VMKLNX__)
    char            name[VMK_DEVICE_NAME_MAX_LENGTH];
#else /* !defined(__VMKLNX__) */
    char            name[IFNAMSIZ];
#endif /* defined(__VMKLNX__) */
    /* device name hash chain */
    struct hlist_node   name_hlist;

    /*
     *  I/O specific fields
     *  FIXME: Merge these and struct ifmap into one
     */
    unsigned long       mem_end;    /* shared mem end   */
    unsigned long       mem_start;  /* shared mem start */
    unsigned long       base_addr;  /* device I/O address   */
    unsigned int        irq;        /* device IRQ number    */

    /*
     *  Some hardware also needs these fields, but they are not
     *  part of the usual set specified in Space.c.
     */

    unsigned char       if_port;    /* Selectable AUI, TP,..*/
    unsigned char       dma;        /* DMA channel      */

    unsigned long       state;

    struct net_device   *next;

    /* The device initialization function. Called only once. */
    int         (*init)(struct net_device *dev);

    // other stuff below ommited
}; 

Чего-то мне не хватает?Или синтаксис вызова dev может быть изменен на что-то более устаревшее, поскольку цепочка инструментов использует более старые версии gcc и bnutils?

Бест,

Фрэнсис

...