.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995. .\" .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, write to the Free .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, .\" USA. .\" Translated 15 Dec 1995 Miguel A. Sepulveda (miguel@typhoon.harvard.edu) .\" Modified 30 Jun 1996 Miguel A. Sepulveda (angel@vivaldi.princeton.edu) .\" Modified Wed Jul 30 14:25:16 1997 by Paul Slootman .\" Translation revised 25 April 1998 by Juan Piernas .\" .TH ADJTIMEX 2 "30 julio 1997" "Linux 2.0" "Manual del Programador de Linux" .SH NOMBRE adjtimex \- ajusta el reloj del núcleo .SH SINOPSIS .B #include .sp .BI "int adjtimex(struct timex *" "buf" ");" .SH DESCRIPCIÓN Linux usa el algoritmo de David L. Mills para ajustar el reloj (véase RFC 1305). La llamada al sistema .B adjtimex lee y opcionalmente prepara parámetros de ajuste para dicho algoritmo. Esta llamada toma un indicador a una estructura .I timex , actualiza los parámetros del núcleo a partir de los valores de los campos, y devuelve la misma estructura con los valores actuales del núcleo. Esta estructura se declara como sigue a continuación: .PP .nf 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 máximo (usec) */ long esterror; /* error estimado (usec) */ int status; /* comando/estado del reloj*/ long constant; /* pll constante de tiempo */ long precision; /* precisión del reloj(usec) (sólo lectura) */ long tolerance; /* tolerancia de la frecuencia del reloj (ppm) (sólo lectura) */ struct timeval time; /* hora actual (sólo lectura) */ long tick; /* usecs entre ticks del reloj */ }; .fi .RS .RE .PP El campo .I modes determina que parámetros serán asignados, si es que hay alguno. Puede contener una combinación (mediante una .RI operación- O lógica) de cero o más elementos de la lista siguiente: .PP .nf #define ADJ_OFFSET 0x0001 /* ajuste de la hora */ #define ADJ_FREQUENCY 0x0002 /* ajuste de la frecuencia */ #define ADJ_MAXERROR 0x0004 /* error máximo 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; método antiguo */ .fi .RS .RE .PP Los usuarios comunes sólo puede utilizar un valor cero para .IR mode . Únicamente el superusuario puede asignar un valor a un parámetro. .br .ne 12v .SH "VALOR DEVUELTO" En caso de éxito, .B adjtimex devuelve el estado del reloj: .PP .RS .nf #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 */ .fi .RE .PP En caso de fallo, .B adjtimex regresa \-1 y asigna un valor apropiado a .IR errno . .SH ERRORES .TP .B EFAULT .I buf no apunta a una zona de memoria escribible. .TP .B EPERM .I buf.mode no es cero y el usuario no es el superusuario. .TP .B EINVAL Se ha hecho un intento de asignar a .I buf.offset un valor fuera del intervalo \-131071 a +131071, o de asignar a .I buf.status un valor no contenido en la lista anteriormente discutida, o de asignar a .I buf.tick un valor fuera del intervalo .RB 900000/ HZ a .RB 1100000/ HZ , donde .B HZ es la frecuencia de interrupción del reloj del sistema. .SH "VÉASE TAMBIÉN" .BR settimeofday (2)