Available in

(2) (8) (2)/de (2)/es (2)/fr (2)/it (2)/ja (2)/ko (2)/pl (2)/ru

Contents

NAME

adjtimex − Einstellen der Kerneluhr

ÜBERSICHT

#include <sys/timex.h>

int adjtimex(struct timex *buf);

BESCHREIBUNG

Linux verwendet David Mills Algorithmus zur Justierung der Systemuhr. adjtimex liest und setzt auf Wunsch Einstellungsparameter für diesen Algorithmus.

adjtimex nimmt einen Zeiger auf eine Struktur timex, aktualisiert Kernelparameter aus den Feldwerten, und gibt die gleiche Struktur mit aktuellen Werten zurück. Diese Struktur ist wie folgt deklariert:

struct timex
{
int mode; /* mode selector */
long offset; /* Zeitoffset (usek) */
long frequency; /* Frequenzoffset (skalierte ppm) */
long maxerror; /* maximaler Fehler (usek) */
long esterror; /* geschätzter Fehler (usek) */
int status; /* Uhrkommando/-status */
long time_constant; /* pll Zeitkonstante */
long precision; /* Uhrpräzision (usec) (nur lesbar) */
long tolerance; /* Uhrfrequenztoleranz (ppm) (nur lesbar) */
struct timeval time; /* (nur lesbar) */
long tick; /* usek zwischen Uhrticks */
};

Das Feld mode bestimmt, welche Parameter, falls vorhanden, zu setzen sind. Es darf eine bitweise Oderverknüpfung von Null oder mehr der folgenden Bits enthalten:

#define ADJ_OFFSET 0x0001 /* Zeitoffset */
#define ADJ_FREQUENCY 0x0002 /* Frequenzoffset */
#define ADJ_MAXERROR 0x0004 /* maximaler Zeitfehler */
#define ADJ_ESTERROR 0x0008 /* geschätzter Zeitfehler */
#define ADJ_STATUS 0x0010 /* Uhrstatus */
#define ADJ_TIMECONST 0x0020 /* pll Zeitkonstante */
#define ADJ_TICK 0x4000 /* Tickwert */
#define ADJ_OFFSET_SINGLESHOT 0x8001 /* altmodisches adjtime */

Gewöhnliche Benutzer sind eingeschränkt auf einen Nullwert für mode. Nur der Superuser darf Parameter setzen.

RÜCKGABEWERT

Bei Erfolg gibt adjtimex den Wert von buf.status zurück:

#define TIME_OK 0 /* Uhr synchronisiert */
#define TIME_INS 1 /* füge Schaltsekunde ein */
#define TIME_DEL 2 /* lösche Schaltsekunde */
#define TIME_OOP 3 /* Schaltsekunde in Betrieb */
#define TIME_BAD 4 /* Uhr nicht synchronisiert */

Im Fehlerfall gibt adjtimex −1 zurück und setzt errno.

FEHLER

EFAULT

buf zeigt nicht auf beschreibbaren Speicher.

EPERM

buf.mode ist nicht Null und der Benutzer ist nicht der Superuser.

EINVAL

Ein Versuch wurde unternommen buf.offset zu setzen auf einen Wert außerhalb des Bereichs von −131071 bis +131071, oder buf.status auf einen Wert zu setzen, der nicht oben aufgeführt ist, oder buf.tick auf einen Wert außerhalb des Bereichs von 900000/HZ bis 1100000/HZ zu setzen, wobei HZ die Systemtimerinterupfrequenz ist.

SIEHE AUCH

settimeofday(2).

COMMENTS

blog comments powered by Disqus