(root)/
strace-6.5/
src/
print_timex.h
       1  /*
       2   * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
       3   * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
       4   * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
       5   * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@strace.io>
       6   * Copyright (c) 2015-2021 The strace developers.
       7   * All rights reserved.
       8   *
       9   * SPDX-License-Identifier: LGPL-2.1-or-later
      10   */
      11  
      12  static void
      13  PRINT_TIMEX_TIME(const typeof_field(TIMEX_T, time) *const p)
      14  {
      15  	tprint_struct_begin();
      16  	PRINT_FIELD_D(*p, tv_sec);
      17  	tprint_struct_next();
      18  	PRINT_FIELD_U(*p, tv_usec);
      19  	tprint_struct_end();
      20  }
      21  
      22  int
      23  PRINT_TIMEX(struct tcb *const tcp, const kernel_ulong_t addr)
      24  {
      25  	TIMEX_T tx;
      26  
      27  	if (umove_or_printaddr(tcp, addr, &tx))
      28  		return -1;
      29  
      30  	tprint_struct_begin();
      31  	PRINT_FIELD_FLAGS(tx, modes, adjtimex_modes, "ADJ_???");
      32  	tprint_struct_next();
      33  	PRINT_FIELD_D(tx, offset);
      34  	tprint_struct_next();
      35  	PRINT_FIELD_D(tx, freq);
      36  	tprint_struct_next();
      37  	PRINT_FIELD_D(tx, maxerror);
      38  	tprint_struct_next();
      39  	PRINT_FIELD_D(tx, esterror);
      40  	tprint_struct_next();
      41  	PRINT_FIELD_FLAGS(tx, status, adjtimex_status, "STA_???");
      42  	tprint_struct_next();
      43  	PRINT_FIELD_D(tx, constant);
      44  	tprint_struct_next();
      45  	PRINT_FIELD_D(tx, precision);
      46  	tprint_struct_next();
      47  	PRINT_FIELD_D(tx, tolerance);
      48  	tprint_struct_next();
      49  	PRINT_FIELD_OBJ_PTR(tx, time, PRINT_TIMEX_TIME);
      50  	tprint_struct_next();
      51  	PRINT_FIELD_D(tx, tick);
      52  	tprint_struct_next();
      53  	PRINT_FIELD_D(tx, ppsfreq);
      54  	tprint_struct_next();
      55  	PRINT_FIELD_D(tx, jitter);
      56  	tprint_struct_next();
      57  	PRINT_FIELD_D(tx, shift);
      58  	tprint_struct_next();
      59  	PRINT_FIELD_D(tx, stabil);
      60  	tprint_struct_next();
      61  	PRINT_FIELD_D(tx, jitcnt);
      62  	tprint_struct_next();
      63  	PRINT_FIELD_D(tx, calcnt);
      64  	tprint_struct_next();
      65  	PRINT_FIELD_D(tx, errcnt);
      66  	tprint_struct_next();
      67  	PRINT_FIELD_D(tx, stbcnt);
      68  	tprint_struct_next();
      69  	PRINT_FIELD_D(tx, tai);
      70  	tprint_struct_end();
      71  	return 0;
      72  }