(root)/
strace-6.5/
src/
print_sg_req_info.c
       1  /*
       2   * Decode struct sg_req_info.
       3   *
       4   * Copyright (c) 2017-2021 Dmitry V. Levin <ldv@strace.io>
       5   * All rights reserved.
       6   *
       7   * SPDX-License-Identifier: LGPL-2.1-or-later
       8   */
       9  
      10  #include "defs.h"
      11  
      12  #ifdef HAVE_SCSI_SG_H
      13  
      14  # include DEF_MPERS_TYPE(struct_sg_req_info)
      15  
      16  # include <scsi/sg.h>
      17  
      18  typedef struct sg_req_info struct_sg_req_info;
      19  
      20  #endif /* HAVE_SCSI_SG_H */
      21  
      22  #include MPERS_DEFS
      23  
      24  #ifdef HAVE_SCSI_SG_H
      25  
      26  MPERS_PRINTER_DECL(int, decode_sg_req_info,
      27  		   struct tcb *const tcp, const kernel_ulong_t arg)
      28  {
      29  	struct_sg_req_info info;
      30  
      31  	if (entering(tcp))
      32  		return 0;
      33  
      34  	tprint_arg_next();
      35  	if (!umove_or_printaddr(tcp, arg, &info)) {
      36  		tprint_struct_begin();
      37  		PRINT_FIELD_D(info, req_state);
      38  		tprint_struct_next();
      39  		PRINT_FIELD_D(info, orphan);
      40  		tprint_struct_next();
      41  		PRINT_FIELD_D(info, sg_io_owned);
      42  		tprint_struct_next();
      43  		PRINT_FIELD_D(info, problem);
      44  		tprint_struct_next();
      45  		PRINT_FIELD_D(info, pack_id);
      46  		tprint_struct_next();
      47  		PRINT_FIELD_PTR(info, usr_ptr);
      48  		tprint_struct_next();
      49  		PRINT_FIELD_U(info, duration);
      50  		tprint_struct_end();
      51  	}
      52  
      53  	return RVAL_IOCTL_DECODED;
      54  }
      55  
      56  #endif /* HAVE_SCSI_SG_H */