Provided by: manpages-it_2.80-3_all bug

NAME

       adjtimex - regola l’orologio del kernel

SINTASSI

       #include <sys/timex.h>

       int adjtimex(struct timex *buf);

DESCRIZIONE

       Linux  usa  l’algoritmo  di  correzione  dell’orario  di  David L. Mill
       (vedere RFC 1305).  La chiamata di sistema adjtimex() legge  e  imposta
       opzionalmente  i parametri di correzione per questo algoritmo.  Accetta
       un puntatore a una struttura timex , aggiorna i parametri del kernel in
       base  ai  valori  dei  campi, e restituisce la medesima struttura con i
       valori correnti del kernel.  La struttura  è  dichiarata  nel  seguento
       modo:

              struct timex {
                  int modes;           /* selettore modalità */
                  long offset;         /* spostamento orario (usec) */
                  long freq;           /* spostamento frequenza (scaled ppm) */
                  long maxerror;       /* errore massimo (usec) */
                  long esterror;       /* errore stimato (usec) */
                  int status;          /* stato/comando orologio */
                  long constant;       /* costante di tempo pll */
                  long precision;      /* precisione orologio (usec) (sola lettura) */
                  long tolerance;      /* tolleranza frequenza orologio (ppm)
                                          (sola lettura) */
                  struct timeval time; /* orario attuale (sola lettura) */
                  long tick;           /* usec tra i battiti dell’orologio */
              };

       Il  campo  modes  determina  quale  eventuale parametro impostare.  Può
       contenere una combinazione bitwise-or (OR bit-a-bit) di zero o più  dei
       seguenti bit:

              #define ADJ_OFFSET            0x0001 /* spostamento orario */
              #define ADJ_FREQUENCY         0x0002 /* spostamento frequenza */
              #define ADJ_MAXERROR          0x0004 /* errore tempo massimo */
              #define ADJ_ESTERROR          0x0008 /* errore tempo stimato */
              #define ADJ_STATUS            0x0010 /* stato orologio */
              #define ADJ_TIMECONST         0x0020 /* costante di tempo pll */
              #define ADJ_TICK              0x4000 /* valore battito */
              #define ADJ_OFFSET_SINGLESHOT 0x8001 /* vecchio adjtime() */

       Gli  utenti  ordinari  sono  limitati al valore zero per mode.  Solo il
       superutente può impostare qualunque parametro.

VALORE RESTITUITO

       In caso di successo, adjtimex() restituisce lo stato dell’orologio:

              #define TIME_OK   0 /* orologio sincronizzato */
              #define TIME_INS  1 /* inserire secondo intercalare */
              #define TIME_DEL  2 /* cancellare secondo intercalare */
              #define TIME_OOP  3 /* secondo intercalare in corso */
              #define TIME_WAIT 4 /* secondo intercalare avvenuto */
              #define TIME_BAD  5 /* orologio non sincronizzato */

       Se fallisce, adjtimex() restituisce -1 e imposta errno.

ERRORI

       EFAULT buf non punta ad una zona di memoria scrivibile.

       EINVAL Si  è  tentato  di  impostare  buf.offset  ad  un  valore  fuori
              dall’intervallo  -131071 e +131071, o di impostare buf.status ad
              un valore  diverso  da  quelli  elencati  in  precedenza,  o  di
              impostare  buf.tick  ad  un  valore  non incluso nell’intervallo
              900000/HZ e 1100000/HZ, dove HZ E’ la  frequenza  dell’interrupt
              del timer di sistema.

       EPERM  buf.mode non è zero e il chiamante non ha privilegi sufficienti.
              In Linux è richiesta l’abilitazione a CAP_SYS_TIME

CONFORME A

       adjtimex() è  specifico  di  Linux  e  non  dovrebbe  essere  usato  in
       programmi  pensati  per  la  portabilità.   Vedere  adjtime(3)  per  un
       maggiormente  portabile,  ma  meno  flessibile  metodo  di   correzione
       dell’orologio di sistema.

VEDERE ANCHE

       settimeofday(2), adjtime(3), capabilities(7)