/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _UAPI_LINUX_CHIO_H
#define _UAPI_LINUX_CHIO_H
#define CHET_MT 0
#define CHET_ST 1
#define CHET_IE 2
#define CHET_DT 3
#define CHET_V1 4
#define CHET_V2 5
#define CHET_V3 6
#define CHET_V4 7
struct changer_params {
  int cp_curpicker;
  int cp_npickers;
  int cp_nslots;
  int cp_nportals;
  int cp_ndrives;
};
struct changer_vendor_params {
  int cvp_n1;
  char cvp_label1[16];
  int cvp_n2;
  char cvp_label2[16];
  int cvp_n3;
  char cvp_label3[16];
  int cvp_n4;
  char cvp_label4[16];
  int reserved[8];
};
struct changer_move {
  int cm_fromtype;
  int cm_fromunit;
  int cm_totype;
  int cm_tounit;
  int cm_flags;
};
#define CM_INVERT 1
struct changer_exchange {
  int ce_srctype;
  int ce_srcunit;
  int ce_fdsttype;
  int ce_fdstunit;
  int ce_sdsttype;
  int ce_sdstunit;
  int ce_flags;
};
#define CE_INVERT1 1
#define CE_INVERT2 2
struct changer_position {
  int cp_type;
  int cp_unit;
  int cp_flags;
};
#define CP_INVERT 1
struct changer_element_status {
  int ces_type;
  unsigned char __user * ces_data;
};
#define CESTATUS_FULL 0x01
#define CESTATUS_IMPEXP 0x02
#define CESTATUS_EXCEPT 0x04
#define CESTATUS_ACCESS 0x08
#define CESTATUS_EXENAB 0x10
#define CESTATUS_INENAB 0x20
struct changer_get_element {
  int cge_type;
  int cge_unit;
  int cge_status;
  int cge_errno;
  int cge_srctype;
  int cge_srcunit;
  int cge_id;
  int cge_lun;
  char cge_pvoltag[36];
  char cge_avoltag[36];
  int cge_flags;
};
#define CGE_ERRNO 0x01
#define CGE_INVERT 0x02
#define CGE_SRC 0x04
#define CGE_IDLUN 0x08
#define CGE_PVOLTAG 0x10
#define CGE_AVOLTAG 0x20
struct changer_set_voltag {
  int csv_type;
  int csv_unit;
  char csv_voltag[36];
  int csv_flags;
};
#define CSV_PVOLTAG 0x01
#define CSV_AVOLTAG 0x02
#define CSV_CLEARTAG 0x04
#define CHIOMOVE _IOW('c', 1, struct changer_move)
#define CHIOEXCHANGE _IOW('c', 2, struct changer_exchange)
#define CHIOPOSITION _IOW('c', 3, struct changer_position)
#define CHIOGPICKER _IOR('c', 4, int)
#define CHIOSPICKER _IOW('c', 5, int)
#define CHIOGPARAMS _IOR('c', 6, struct changer_params)
#define CHIOGSTATUS _IOW('c', 8, struct changer_element_status)
#define CHIOGELEM _IOW('c', 16, struct changer_get_element)
#define CHIOINITELEM _IO('c', 17)
#define CHIOSVOLTAG _IOW('c', 18, struct changer_set_voltag)
#define CHIOGVPARAMS _IOR('c', 19, struct changer_vendor_params)
#endif
