ADJTIMEX

Section: Manuel du programmeur Linux (2)
Updated: 30 Mai 2001
Index Retour au Menu Principal

 

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 (RFC 1305). 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.
 

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 accessible.
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.



 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
VOIR AUSSI
TRADUCTION


Time: 21:37:38 GMT, December 19, 2004