Получение и изменение значений времени (time_api.h)

API определен в заголовочном файле sysroot-*-kos/include/coresrv/time/time_api.h из состава KasperskyOS SDK.

Основные возможности API:

Сведения о функциях API приведены в таблице ниже.

Функции time_api.h

Функция

Сведения о функции

KnGetSystemTimeRes()

Назначение

Позволяет получить разрешение источника системного времени.

Параметры

  • [out] res – указатель на структуру, содержащую в поле nsec разрешение источника системного времени в наносекундах. Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnSetSystemTime()

Назначение

Задает системное время.

Параметры

  • [in] time – указатель на структуру, содержащую следующие сведения: в поле sec – число секунд, прошедших с 1 января 1970 года; в поле nsec – число наносекунд, прошедших с момента, заданного в поле sec. Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

Дополнительные сведения

Если аппаратная платформа содержит в своем составе RTC, и в ядре есть требуемый драйвер RTC, то ядро при запуске получает системное время от RTC. Иначе отсчет времени начинается с 1 января 1970 года. Во втором случае актуальное системное время для установки функцией KnSetSystemTime() может быть получено, например, от работающего в пользовательском режиме драйвера RTC или из сети.

KnGetSystemTime()

Назначение

Позволяет получить системное время.

Параметры

  • [out] time – указатель на структуру, содержащую следующие сведения: в поле sec – число секунд, прошедших с 1 января 1970 года; в поле nsec – число наносекунд, прошедших с момента, заданного в поле sec. Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnGetUpTimeRes()

Назначение

Позволяет получить разрешение источника монотонного времени, отсчитываемого с момента запуска ядра.

Параметры

  • [out] res – указатель на структуру, содержащую в поле nsec разрешение источника монотонного времени, отсчитываемого с момента запуска ядра, в наносекундах. Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnGetUpTime()

Назначение

Позволяет получить монотонное время, отсчитанное с момента запуска ядра.

Параметры

  • [out] time – указатель на структуру, содержащую следующие сведения: в поле sec – число секунд, прошедших с момента запуска ядра; в поле nsec – число наносекунд, прошедших с момента, заданного в поле sec. Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnGetRtcTime()

Назначение

Позволяет получить системное время.

Параметры

  • [out] rt – указатель на структуру, содержащую следующие сведения о времени: год, месяц, день, часы, минуты, секунды, миллисекунды. Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

KnGetMSecSinceStart()

Назначение

Позволяет получить монотонное время, отсчитанное с момента запуска ядра.

Параметры

Нет.

Возвращаемые значения

Монотонное время, отсчитанное с момента запуска ядра, в миллисекундах.

KnAdjSystemTime()

Назначение

Запускает постепенную корректировку системного времени.

Параметры

  • [in,optional] adj – указатель на структуру, содержащую интервал времени, на который нужно скорректировать системное время (sec*10^9+nsec наносекунд) или RTL_NULL, если не требуется запускать корректировку, а нужно только получить сведения о ранее запущенной корректировке (через параметр prev). Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.
  • [in] slew – скорость корректировки системного времени (микросекунд в секунду).
  • [out] prev – указатель на структуру, содержащую интервал времени, отражающий, на какое значение оставалось (или остается в случае указания RTL_NULL в параметре adj) скорректировать системное время, чтобы уже запущенная постепенная корректировка была полностью завершена (sec*10^9+nsec наносекунд). Тип структуры определен в заголовочном файле sysroot-*-kos/include/rtl/rtc.h из состава KasperskyOS SDK.

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

Дополнительные сведения

Если запустить новую корректировку до завершения ранее запущенной, то ранее запущенная будет прервана.

KnGetRtcInfo()

Назначение

Позволяет получить характеристики RTC.

Параметры

  • [out] info – указатель на структуру, содержащую характеристики RTC: разрешение, а также нижнюю и верхнюю границы отсчитываемого времени (относительно 1 января 1970 года).

Возвращаемые значения

В случае успеха возвращает rcOk, иначе возвращает код ошибки.

Если RTC отсутствует на аппаратной платформе, или в ядре отсутствует требуемый драйвер RTC, возвращает rcUnimplemented.

В начало