страница структуры, atomic_inc на ESXi - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь портировать драйвер с Linux на ESXi 6.7, используя известное руководство.Мне удалось настроить среду сборки для набора инструментов, и все идет хорошо, но теперь я чувствую, что бьюсь о стену:

Драйвер на случай (карта Ethernet 10 ГБ) использует struct page, специально для его члена count.

Проблема в том, что на ESXi mm.h, struct page не имеет членов:

#if defined(__VMKLNX__)
/**                                        
*  struct page - page handle structure
*                                         
*  ESX Deviation Notes:                   
*  As we don't support page handle, this should be an opaque structure. In vmklinux
*  a page handle represents the actual page number.
*  Such an handle should not be deferenced nor used in any form of pointer
*  arithmetic to obtain the page descriptor to any adjacent page. The pointer
*  should be treated as an opague handle and should only be used as argument to
*  other functions.
*                                         
*/                                        
/* _VMKLNX_CODECHECK_: page */
struct page {
};

Есть ли что-нибудь подобное?Я проверил несколько других драйверов, и все они используют структуру, но никто не имеет ссылки на член структуры.

Ссылка на драйвер, который я пытаюсь преобразовать, это:

static inline void page_ref_inc(struct page *page)
{
    atomic_inc(&page->_count);
}

static inline int page_ref_count(struct page *page)
{
    return atomic_read(&page->_count);
}

В любом случае, чтобы обойти это?

Лучший,

Фрэнсис

...