github.com/afumu/libc@v0.0.6/musl/compat/time32/clock_adjtime32.c (about)

     1  #include "time32.h"
     2  #include <time.h>
     3  #include <sys/time.h>
     4  #include <sys/timex.h>
     5  #include <string.h>
     6  #include <stddef.h>
     7  
     8  struct timex32 {
     9  	unsigned modes;
    10  	long offset, freq, maxerror, esterror;
    11  	int status;
    12  	long constant, precision, tolerance;
    13  	struct timeval32 time;
    14  	long tick, ppsfreq, jitter;
    15  	int shift;
    16  	long stabil, jitcnt, calcnt, errcnt, stbcnt;
    17  	int tai;
    18  	int __padding[11];
    19  };
    20  
    21  int __clock_adjtime32(clockid_t clock_id, struct timex32 *tx32)
    22  {
    23  	struct timex utx = {
    24  		.modes = tx32->modes,
    25  		.offset = tx32->offset,
    26  		.freq = tx32->freq,
    27  		.maxerror = tx32->maxerror,
    28  		.esterror = tx32->esterror,
    29  		.status = tx32->status,
    30  		.constant = tx32->constant,
    31  		.precision = tx32->precision,
    32  		.tolerance = tx32->tolerance,
    33  		.time.tv_sec = tx32->time.tv_sec,
    34  		.time.tv_usec = tx32->time.tv_usec,
    35  		.tick = tx32->tick,
    36  		.ppsfreq = tx32->ppsfreq,
    37  		.jitter = tx32->jitter,
    38  		.shift = tx32->shift,
    39  		.stabil = tx32->stabil,
    40  		.jitcnt = tx32->jitcnt,
    41  		.calcnt = tx32->calcnt,
    42  		.errcnt = tx32->errcnt,
    43  		.stbcnt = tx32->stbcnt,
    44  		.tai = tx32->tai,
    45  	};
    46  	int r = clock_adjtime(clock_id, &utx);
    47  	if (r<0) return r;
    48  	tx32->modes = utx.modes;
    49  	tx32->offset = utx.offset;
    50  	tx32->freq = utx.freq;
    51  	tx32->maxerror = utx.maxerror;
    52  	tx32->esterror = utx.esterror;
    53  	tx32->status = utx.status;
    54  	tx32->constant = utx.constant;
    55  	tx32->precision = utx.precision;
    56  	tx32->tolerance = utx.tolerance;
    57  	tx32->time.tv_sec = utx.time.tv_sec;
    58  	tx32->time.tv_usec = utx.time.tv_usec;
    59  	tx32->tick = utx.tick;
    60  	tx32->ppsfreq = utx.ppsfreq;
    61  	tx32->jitter = utx.jitter;
    62  	tx32->shift = utx.shift;
    63  	tx32->stabil = utx.stabil;
    64  	tx32->jitcnt = utx.jitcnt;
    65  	tx32->calcnt = utx.calcnt;
    66  	tx32->errcnt = utx.errcnt;
    67  	tx32->stbcnt = utx.stbcnt;
    68  	tx32->tai = utx.tai;
    69  	return r;
    70  }