Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2021, 19:21   #1
GrimHex
Пользователь
 
Аватар для GrimHex
 
Регистрация: 14.08.2019
Сообщений: 65
По умолчанию Заголовочные файлы C/C++ для Linux: "Network Devices APIs"

Взял некоторую инфу из официальной документации по ядру Linux: https://www.kernel.org/doc/html/late...driver-support . Например, функции:

Код:
int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa, struct netlink_ext_ack *extack)
Код:
int eth_prepare_mac_addr_change(struct net_device *dev, void *p)
Код:
void eth_commit_mac_addr_change(struct net_device *dev, void *p)
Для меня загадка, почему на этом источнике не опубликованы заголовочные файлы. Возможно, ресурс нацелен на тех, кто уже имел соответствующий опыт работы и знает их.

С процедурой подключения библиотек надеюсь справиться самостоятельно. А вот информация по заголовочным файлам очень нужна.
GrimHex вне форума Ответить с цитированием
Старый 02.02.2021, 12:19   #2
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Цитата:
Сообщение от GrimHex Посмотреть сообщение
Для меня загадка, почему на этом источнике не опубликованы заголовочные файлы.
Опубликованы

Цитата:
Сообщение от GrimHex Посмотреть сообщение
Возможно, ресурс нацелен на тех, кто уже имел соответствующий опыт работы и знает их.
Естественно. Это же ядро линукс и функции из набора для драйверов.

Цитата:
Сообщение от GrimHex Посмотреть сообщение
С процедурой подключения библиотек надеюсь справиться самостоятельно.
Не надейтесь. Это не либы.
FrosyaZZ вне форума Ответить с цитированием
Старый 02.02.2021, 14:34   #3
GrimHex
Пользователь
 
Аватар для GrimHex
 
Регистрация: 14.08.2019
Сообщений: 65
По умолчанию

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
Опубликованы
Поделитесь ссылкой на них?

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
Не надейтесь. Это не либы.
Нужен ли "development kit" или другие средства?
GrimHex вне форума Ответить с цитированием
Старый 02.02.2021, 14:56   #4
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Цитата:
Сообщение от GrimHex Посмотреть сообщение
Поделитесь ссылкой на них?
Заходите на основную страницу https://www.kernel.org/ и выбираете:
https://www.kernel.org/pub/
https://git.kernel.org/
rsync://rsync.kernel.org/pub/
Либо по прямой ссылке на нужную вам версию ядра, например: https://git.kernel.org/torvalds/t/linux-5.11-rc6.tar.gz

Вот даже ваш хедер в дереве: https://git.kernel.org/pub/scm/linux.../etherdevice.h

Цитата:
Сообщение от GrimHex Посмотреть сообщение
Нужен ли "development kit" или другие средства?
Это ядро линукс. Эти функции доступны в ядре и предназначены для разработки драйверов/модулей.
FrosyaZZ вне форума Ответить с цитированием
Старый 07.02.2021, 20:21   #5
GrimHex
Пользователь
 
Аватар для GrimHex
 
Регистрация: 14.08.2019
Сообщений: 65
По умолчанию

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
Это ядро линукс. Эти функции доступны в ядре и предназначены для разработки драйверов/модулей.
С кросс-компиляцией ранее не работал. Попытался откомпилировать на Windows этот код: https://git.kernel.org/pub/scm/linux.../etherdevice.h . Скопировал его в Visual Studio и в Eclipse. Инклуды не распознаются. Если на двух разных IDE одно и то же, значит причина не в них. Просто хочу быть уверен, что действительно не нужно подключать библиотеки к компилятору, так ли это?
Изображения
Тип файла: jpg 003.jpg (45.4 Кб, 13 просмотров)

Последний раз редактировалось GrimHex; 07.02.2021 в 20:38.
GrimHex вне форума Ответить с цитированием
Старый 08.02.2021, 12:16   #6
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Цитата:
Сообщение от GrimHex Посмотреть сообщение
С кросс-компиляцией ранее не работал.
И не надо. Не поможет.

Цитата:
Сообщение от GrimHex Посмотреть сообщение
Попытался откомпилировать на Windows этот код
Вы хедер хотели скомпилировать?

Цитата:
Сообщение от GrimHex Посмотреть сообщение
Если на двух разных IDE одно и то же, значит причина не в них.
Естественно. Начните с вики

Цитата:
Сообщение от GrimHex Посмотреть сообщение
Просто хочу быть уверен, что действительно не нужно подключать библиотеки к компилятору, так ли это?
Точно. Не надо. Еще раз: это исходники ядра Linux. Условно, исходники ntoskrnl.exe из винды. Это апи для модулей ядра (драйверов из винды). На винде это работать не будет и это апи не для того, что менять свой MAC.
FrosyaZZ вне форума Ответить с цитированием
Старый 08.02.2021, 13:05   #7
GrimHex
Пользователь
 
Аватар для GrimHex
 
Регистрация: 14.08.2019
Сообщений: 65
По умолчанию

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
Вы хедер хотели скомпилировать?
Да. Как проба.

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
На винде это работать не будет
Только компиляция на винде. Дальше перенесу конечный файл в Linux.

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
и это апи не для того, что менять свой MAC.
Код:
int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa, struct netlink_ext_ack *extack)
Change Media Access Control Address

Parameters

struct net_device *dev
device

struct sockaddr *sa
new address

struct netlink_ext_ack *extack
netlink extended ack

Change the hardware (MAC) address of the device

Описание говорит мне о смене MAC-адреса.

Как сделать, чтобы в моих Visual Studio и Eclipse распознавались инклуды?

Последний раз редактировалось GrimHex; 08.02.2021 в 23:24.
GrimHex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск