Я пытаюсь портировать драйвер с 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);
}
В любом случае, чтобы обойти это?
Лучший,
Фрэнсис