Provided by:
manpages-es_1.55-10_all 
NOMBRE
adjtimex - ajusta el reloj del nucleo
SINOPSIS
#include <sys/timex.h>
int adjtimex(struct timex *buf);
DESCRIPCI'ON
Linux usa el algoritmo de David L. Mills para ajustar el reloj (vease
RFC 1305). La llamada al sistema adjtimex lee y opcionalmente prepara
parametros de ajuste para dicho algoritmo. Esta llamada toma un
indicador a una estructura timex , actualiza los parametros del nucleo
a partir de los valores de los campos, y devuelve la misma estructura
con los valores actuales del nucleo. Esta estructura se declara como
sigue a continuacion:
struct timex {
int modes; /* selector de modo*/
long offset; /* ajuste de la hora (usec) */
long freq; /* ajuste de la frecuencia (ppm escalada) */
long maxerror; /* error maximo (usec) */
long esterror; /* error estimado (usec) */
int status; /* comando/estado del reloj*/
long constant; /* pll constante de tiempo */
long precision; /* precision del reloj(usec) (solo lectura) */
long tolerance; /* tolerancia de la frecuencia del reloj (ppm)
(solo lectura) */
struct timeval time; /* hora actual (solo lectura) */
long tick; /* usecs entre ticks del reloj */
};
El campo modes determina que parametros seran asignados, si es que hay
alguno. Puede contener una combinacion (mediante una operacion-O
logica) de cero o mas elementos de la lista siguiente:
#define ADJ_OFFSET 0x0001 /* ajuste de la hora */
#define ADJ_FREQUENCY 0x0002 /* ajuste de la frecuencia */
#define ADJ_MAXERROR 0x0004 /* error maximo de la hora*/
#define ADJ_ESTERROR 0x0008 /* error estimado de la hora */
#define ADJ_STATUS 0x0010 /* estado del reloj */
#define ADJ_TIMECONST 0x0020 /* pll constante de tiempo */
#define ADJ_TICK 0x4000 /* valor tick*/
#define ADJ_OFFSET_SINGLESHOT 0x8001 /* ajuste de hora; metodo antiguo */
Los usuarios comunes solo puede utilizar un valor cero para mode.
Unicamente el superusuario puede asignar un valor a un parametro.
VALOR DEVUELTO
En caso de exito, adjtimex devuelve el estado del reloj:
#define TIME_OK 0 /* reloj sincronizado */
#define TIME_INS 1 /* insertar segundo de salto */
#define TIME_DEL 2 /* borrar segundo de salto */
#define TIME_OOP 3 /* segundo de salto en progreso */
#define TIME_WAIT 4 /* se ha producido un segundo de salto */
#define TIME_BAD 5 /* reloj no sincronizado */
En caso de fallo, adjtimex regresa -1 y asigna un valor apropiado a
errno.
ERRORES
EFAULT buf no apunta a una zona de memoria escribible.
EPERM buf.mode no es cero y el usuario no es el superusuario.
EINVAL Se ha hecho un intento de asignar a buf.offset un valor fuera
del intervalo -131071 a +131071, o de asignar a buf.status un
valor no contenido en la lista anteriormente discutida, o de
asignar a buf.tick un valor fuera del intervalo 900000/HZ a
1100000/HZ, donde HZ es la frecuencia de interrupcion del reloj
del sistema.
V'EASE TAMBI'EN
settimeofday(2)