Rechercher une page de manuel
adjtimex
Langue: pl
Version: 1997-07-30 (fedora - 25/11/07)
Section: 2 (Appels système)
NAZWA
adjtimex - dopasowanie zegara w jądrzeSKŁADNIA
#include <sys/timex.h>int adjtimex(struct timex *buf);
OPIS
Linux używa algorytmu dopasowywania Davida L. Millsa (zobacz w RFC 1305). Wywołanie systemowe adjtimex czyta i opcjonalnie ustawia parametry sterujące tego algorytmu. adjtimex pobiera wskaźnik do struktury timex, poprawia parametry w jądrze na podstawie wartości przekazanych w polach i zwraca tę samą strukturę z bieżącymi ustawieniami jądra. Struktura jest zadeklarowana następująco:-
struct timex { int modes; /* przełącznik trybu */ long offset; /* offset czasu (usec) */ long frequency; /* offset częstotliwości (skalowany ppm) */ long maxerror; /* maksymalny błąd (usec) */ long esterror; /* obliczony błąd (usec) */ int status; /* komenda/status zegara */ long constant; /* stała czasu pll */ long precision; /* dokładność zegara (usec) (tylko do odczytu) */ long tolerance; /* tolerancja częstotliwości zegara (ppm) (tylko do odczytu) */ struct timeval time; /* aktualny czas (tylko do odczytu) */ long tick; /* czas miedzy tyknięciami zegara (usec) */ };
Pole modes określa, które parametry (jeśli w ogóle) ustawić. Może ono zawierać bitoweor kombinacji zera lub więcej spośród następujących bitów:
-
#define ADJ_OFFSET 0x0001 /* offset czasu */ #define ADJ_FREQUENCY 0x0002 /* offset częstotliwości */ #define ADJ_MAXERROR 0x0004 /* maksymalny błąd czasu */ #define ADJ_ESTERROR 0x0008 /* obliczany błąd czasu */ #define ADJ_STATUS 0x0010 /* status zegara */ #define ADJ_TIMECONST 0x0020 /* stała czasu pll */ #define ADJ_TICK 0x4000 /* wartość tyknięcia */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* staromodne adjtime */
Zwyczajni użytkownicy są ograniczeni do wartości zero dla mode. Jedynie superużytkownik może ustawiać jakiekolwiek parametry.
WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu, adjtimex zwraca stan zegara z-
#define TIME_OK 0 /* zegar zsynchronizowany */ #define TIME_INS 1 /* dodaj sekundę przestępną */ #define TIME_DEL 2 /* skasuj sekundę przestępną */ #define TIME_OOP 3 /* sekunda przestępna trwa */ #define TIME_WAIT 4 /* wystąpiła sekunda przestępna */ #define TIME_BAD 5 /* zegar nie zsynchronizowany */
W przypadku błędu, adjtimex zwraca -1 i ustawia errno.
BŁĘDY
- EFAULT
- buf nie wskazuje do zapisywalnej pamięci.
- EPERM
- buf.mode jest niezerowe, a użytkownik nie jest superużytkownikiem.
- EINVAL
- Próbowano ustawić buf.offset na wartość poza obszarem od -131071 do +131071, lub ustawić buf.status na wartość inną niż te wymienione powyżej, lub ustawić buf.tick na wartość spoza zakresu 900000/HZ do 1100000/HZ, gdzie HZ jest częstotliwością przerwania systemowego timera.
ZGODNE Z
adjtimex jest specyficzny dla Linuksa i nie powinien być używany w programach, które mają być przenośne. W SVr4 istnieje podobna, lecz mniej ogólna funkcja adjtime.ZOBACZ TAKŻE
settimeofday(2).Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre