text: /****************************************************************************
   ****************************************************************************
   ***
   ***   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_MD_U_H
  #define _UAPI_MD_U_H
  #define MD_MAJOR_VERSION 0
  #define MD_MINOR_VERSION 90
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  #define MD_PATCHLEVEL_VERSION 3
  #define RAID_VERSION _IOR(MD_MAJOR, 0x10, mdu_version_t)
  #define GET_ARRAY_INFO _IOR(MD_MAJOR, 0x11, mdu_array_info_t)
  #define GET_DISK_INFO _IOR(MD_MAJOR, 0x12, mdu_disk_info_t)
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  #define RAID_AUTORUN _IO(MD_MAJOR, 0x14)
  #define GET_BITMAP_FILE _IOR(MD_MAJOR, 0x15, mdu_bitmap_file_t)
  #define CLEAR_ARRAY _IO(MD_MAJOR, 0x20)
  #define ADD_NEW_DISK _IOW(MD_MAJOR, 0x21, mdu_disk_info_t)
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  #define HOT_REMOVE_DISK _IO(MD_MAJOR, 0x22)
  #define SET_ARRAY_INFO _IOW(MD_MAJOR, 0x23, mdu_array_info_t)
  #define SET_DISK_INFO _IO(MD_MAJOR, 0x24)
  #define WRITE_RAID_INFO _IO(MD_MAJOR, 0x25)
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  #define UNPROTECT_ARRAY _IO(MD_MAJOR, 0x26)
  #define PROTECT_ARRAY _IO(MD_MAJOR, 0x27)
  #define HOT_ADD_DISK _IO(MD_MAJOR, 0x28)
  #define SET_DISK_FAULTY _IO(MD_MAJOR, 0x29)
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  #define HOT_GENERATE_ERROR _IO(MD_MAJOR, 0x2a)
  #define SET_BITMAP_FILE _IOW(MD_MAJOR, 0x2b, int)
  #define RUN_ARRAY _IOW(MD_MAJOR, 0x30, mdu_param_t)
  #define STOP_ARRAY _IO(MD_MAJOR, 0x32)
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  #define STOP_ARRAY_RO _IO(MD_MAJOR, 0x33)
  #define RESTART_ARRAY_RW _IO(MD_MAJOR, 0x34)
  #define CLUSTERED_DISK_NACK _IO(MD_MAJOR, 0x35)
  #define MdpMinorShift 6
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  typedef struct mdu_version_s {
    int major;
    int minor;
    int patchlevel;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } mdu_version_t;
  typedef struct mdu_array_info_s {
    int major_version;
    int minor_version;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    int patch_version;
    int ctime;
    int level;
    int size;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    int nr_disks;
    int raid_disks;
    int md_minor;
    int not_persistent;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    int utime;
    int state;
    int active_disks;
    int working_disks;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    int failed_disks;
    int spare_disks;
    int layout;
    int chunk_size;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } mdu_array_info_t;
  #define LEVEL_MULTIPATH (- 4)
  #define LEVEL_LINEAR (- 1)
  #define LEVEL_FAULTY (- 5)
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  #define LEVEL_NONE (- 1000000)
  typedef struct mdu_disk_info_s {
    int number;
    int major;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    int minor;
    int raid_disk;
    int state;
  } mdu_disk_info_t;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  typedef struct mdu_start_info_s {
    int major;
    int minor;
    int raid_disk;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    int state;
  } mdu_start_info_t;
  typedef struct mdu_bitmap_file_s {
    char pathname[4096];
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } mdu_bitmap_file_t;
  typedef struct mdu_param_s {
    int personality;
    int chunk_size;
  /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    int max_fault;
  } mdu_param_t;
  #endif
  