ADJTIMEX

Section: Manuale del Programmatore Linux (2)
Updated: 27 Maggio 2004
Index Return to Main Contents
 

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)


 

Index

NAME
SINTASSI
DESCRIZIONE
VALORE RESTITUITO
ERRORI
CONFORME A
VEDERE ANCHE

This document was created by man2html, using the manual pages.
Time: 23:03:51 GMT, June 17, 2008