Замена устаревшей функции на Centos 8 на языке C - PullRequest
0 голосов
/ 10 октября 2019

У меня есть старые драйверы. Когда я пытаюсь скомпилировать в 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;

}

Я делаю правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...