У меня есть старые драйверы. Когда я пытаюсь скомпилировать в Linux Centos 8. Версия Linux - 4.18.0-80.7.1.el8_0.x86_64 (mockbuild@kbuilder.bsys.centos.org) (версия gcc 8.2.1 20180905 (Red Hat 8.2.1-3). )., выдает ошибку, что функция do_gettimeofday (& time) устарела.
error: неявное объявление функции do_gettimeofday; вы имели в виду do_getitimer? [-Werror = implicit-объявление функции] do_gettimeofday (& time); ^ ~~~~~~~~~~~~~~ do_getitimer
Я заменил заголовок
/* #include <linux/time.h> Deprecated */
#include <linux/ktime.h>
Старая функция:
void timeGetSecs (unsigned int * pUsecs)
{
struct timeval time;
do_gettimeofday(&time);
*pUsecs = (unsigned)(time.tv_sec % 3600) * 1000000u + (unsigned)time.tv_usec;
}
Что я сделал нового:
void timeGetSecs (unsigned int * pUsecs)
{
ktime_t start_time, end_time;
start_time = ktime_get();
end_time = ktime_get();
*pUsecs = (long)ktime_to_ns(ktime_sub(end_time, start_time))/1000;
}
Я делаю правильно?