ADJTIMEX(2) Manuel du programmeur Linux ADJTIMEX(2) NOM adjtimex - Rgler l'horloge du noyau (kernel clock(3,n)). SYNOPSIS #include <sys/timex.h> int adjtimex(struct timex *buf); DESCRIPTION Linux utilise l'algorithme d'ajustement d'horloge de David L. Mills (RFC 1305). L'appel-systme adjtimex lit, et crit ventuellement les paramtres d'ajustement pour cet algorithme. Il utilise un poin- teur sur une structure timex pour mettre jour les paramtres du noyau avec les valeurs de ses champs, et renvoyer la mme structure avec les valeurs actuelles du noyau. La structure est dclare comme suit struct timex { int modes; /* mode selector */ long offset; /* time(1,2,n) offset (usec) */ long freq; /* frequency offset (scaled ppm) */ long maxerror; /* maximum error(8,n) (usec) */ long esterror; /* estimated error(8,n) (usec) */ int status; /* clock(3,n) command/status */ long constant; /* pll time(1,2,n) constant */ long precision; /* clock(3,n) precision (usec) (read(2,n,1 builtins) only) */ long tolerance; /* clock(3,n) frequency tolerance (ppm) (read(2,n,1 builtins) only) */ struct timeval time(1,2,n); /* current time(1,2,n) (read(2,n,1 builtins) only) */ long tick; /* usecs between clock(3,n) ticks */ }; Le champ modes dtermine les paramtres ventuels crire. Il contient un OU binaire ( | ) entre les valeurs suivantes: #define ADJ_OFFSET 0x0001 /* time(1,2,n) offset */ #define ADJ_FREQUENCY 0x0002 /* frequency offset */ #define ADJ_MAXERROR 0x0004 /* maximum time(1,2,n) error(8,n) */ #define ADJ_ESTERROR 0x0008 /* estimated time(1,2,n) error(8,n) */ #define ADJ_STATUS 0x0010 /* clock(3,n) status */ #define ADJ_TIMECONST 0x0020 /* pll time(1,2,n) constant */ #define ADJ_TICK 0x4000 /* tick value */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ Les utilisateurs normaux sont limits une valeur de mode nulle, seul le Super-User peut crire les paramtres. VALEUR RENVOYE S'il russit, adjtimex renvoie l'tat de l'horloge : #define TIME_OK 0 /* clock(3,n) synchronized */ #define TIME_INS 1 /* insert leap second */ #define TIME_DEL 2 /* delete leap second */ #define TIME_OOP 3 /* leap second in(1,8) progress */ #define TIME_WAIT 4 /* leap second has occurred */ #define TIME_BAD 5 /* clock(3,n) not synchronized */ En cas d'chec adjtimex renvoie -1 et remplit errno. ERREURS EFAULT buf pointe en dehors de l'espace d'adressage accessible. EPERM buf.mode est non nul, et l'utilisateur n'est pas Super-User. EINVAL Une tentative est faite de remplir buf.offset en dehors de l'intervalle -131071 +131071, ou de mettre buf.status a une valeur autre que celle liste ci-dessus, ou buf.tick en dehors de l'intervalle 900000/HZ 1100000/HZ, o HZ est la frquence d'interruption de l'horloge systme. CONFORMIT adjtimex est spcifique Linux, et ne doit pas tre employ dans des programmes destins tre ports sur d'autres systmes. Un appel adjtime moins gnral existe sous SVr4. VOIR AUSSI settimeofday(2). TRADUCTION Christophe Blaess, 1996-2003. LDP 18 juillet 2003 ADJTIMEX(2)