ADJTIMEX(2) Manuel du programmeur Linux ADJTIMEX(2)
NOM
adjtimex - Régler l'horloge du noyau (kernel clock).
SYNOPSIS
#include <sys/timex.h>
int adjtimex(struct timex *buf);
DESCRIPTION
Linux utilise l'algorithme d'ajustement d'horloge de David
L. Mills. adjtimex lit, et écrit éventuellement les
paramètres d'ajustement pour cet algorithme.
adjtimex utilise un pointeur sur une structure timex pour
mettre à jour les paramètres du noyau avec les valeurs de
ses champs, et renvoyer la même structure avec les valeurs
actuelles du noyau. La structure est déclarée comme suit
struct timex
{
int modes; /* mode selector */
long offset; /* time offset (usec) */
long freq; /* frequency offset (scaled ppm) */
long maxerror; /* maximum error (usec) */
long esterror; /* estimated error (usec) */
int status; /* clock command/status */
long constant; /* pll time constant */
long precision; /* clock precision (usec) (read only) */
long tolerance; /* clock frequency tolerance (ppm)
(read only) */
struct timeval time; /* current time (read only) */
long tick; /* usecs between clock ticks */
};
Le champ modes détermine les paramètres éventuels à
écrire. Il contient un OU binaire ( | ) entre les valeurs
suivantes:
#define ADJ_OFFSET 0x0001 /* time offset */
#define ADJ_FREQUENCY 0x0002 /* frequency offset */
#define ADJ_MAXERROR 0x0004 /* maximum time error */
#define ADJ_ESTERROR 0x0008 /* estimated time error */
#define ADJ_STATUS 0x0010 /* clock status */
#define ADJ_TIMECONST 0x0020 /* pll time constant */
#define ADJ_TICK 0x4000 /* tick value */
#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
Les utilisateurs normaux sont limités à une valeur de mode
nulle, seul le Super-User peut écrire les paramètres.
Linux 2.0 9 Décembre 1997 1
ADJTIMEX(2) Manuel du programmeur Linux ADJTIMEX(2)
VALEUR RENVOYÉE
adjtimex renvoie l'état de l'horloge s'il réussit :
#define TIME_OK 0 /* clock synchronized */
#define TIME_INS 1 /* insert leap second */
#define TIME_DEL 2 /* delete leap second */
#define TIME_OOP 3 /* leap second in progress */
#define TIME_WAIT 4 /* leap second has occurred */
#define TIME_BAD 5 /* clock not synchronized */
En cas d'échec adjtimex renvoie -1 et errno contient le
code d'erreur.
ERREURS
EFAULT buf pointe en dehors de l'espace d'adressage acces
sible.
EPERM buf.mode est non nul, et l'utilisateur n'est pas
Super-User.
EINVAL buf.offset est en dehors de l'intervalle -131071 à
+131071, ou buf.status a une valeur autre que celle
listée ci-dessus, ou buf.tick est en dehors de
l'intervalle 900000/HZ à 1100000/HZ, HZ étant la
fréquence d'interruption de l'horloge système.
CONFORMITÉ
adjtimex est spécifique à Linux, et ne doit pas être
employé dans des programmes destinés à être portés sur
d'autres systèmes. Un appel adjtime moins général existe
sous SVr4.
VOIR AUSSI
settimeofday(2).
TRADUCTION
Christophe Blaess, 1997.
Linux 2.0 9 Décembre 1997 2