1/**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19#ifndef _UAPI_MD_U_H 20#define _UAPI_MD_U_H 21#define MD_MAJOR_VERSION 0 22#define MD_MINOR_VERSION 90 23#define MD_PATCHLEVEL_VERSION 3 24#define RAID_VERSION _IOR(MD_MAJOR, 0x10, mdu_version_t) 25#define GET_ARRAY_INFO _IOR(MD_MAJOR, 0x11, mdu_array_info_t) 26#define GET_DISK_INFO _IOR(MD_MAJOR, 0x12, mdu_disk_info_t) 27#define RAID_AUTORUN _IO(MD_MAJOR, 0x14) 28#define GET_BITMAP_FILE _IOR(MD_MAJOR, 0x15, mdu_bitmap_file_t) 29#define CLEAR_ARRAY _IO(MD_MAJOR, 0x20) 30#define ADD_NEW_DISK _IOW(MD_MAJOR, 0x21, mdu_disk_info_t) 31#define HOT_REMOVE_DISK _IO(MD_MAJOR, 0x22) 32#define SET_ARRAY_INFO _IOW(MD_MAJOR, 0x23, mdu_array_info_t) 33#define SET_DISK_INFO _IO(MD_MAJOR, 0x24) 34#define WRITE_RAID_INFO _IO(MD_MAJOR, 0x25) 35#define UNPROTECT_ARRAY _IO(MD_MAJOR, 0x26) 36#define PROTECT_ARRAY _IO(MD_MAJOR, 0x27) 37#define HOT_ADD_DISK _IO(MD_MAJOR, 0x28) 38#define SET_DISK_FAULTY _IO(MD_MAJOR, 0x29) 39#define HOT_GENERATE_ERROR _IO(MD_MAJOR, 0x2a) 40#define SET_BITMAP_FILE _IOW(MD_MAJOR, 0x2b, int) 41#define RUN_ARRAY _IOW(MD_MAJOR, 0x30, mdu_param_t) 42#define STOP_ARRAY _IO(MD_MAJOR, 0x32) 43#define STOP_ARRAY_RO _IO(MD_MAJOR, 0x33) 44#define RESTART_ARRAY_RW _IO(MD_MAJOR, 0x34) 45#define CLUSTERED_DISK_NACK _IO(MD_MAJOR, 0x35) 46#define MdpMinorShift 6 47typedef struct mdu_version_s { 48 int major; 49 int minor; 50 int patchlevel; 51} mdu_version_t; 52typedef struct mdu_array_info_s { 53 int major_version; 54 int minor_version; 55 int patch_version; 56 unsigned int ctime; 57 int level; 58 int size; 59 int nr_disks; 60 int raid_disks; 61 int md_minor; 62 int not_persistent; 63 unsigned int utime; 64 int state; 65 int active_disks; 66 int working_disks; 67 int failed_disks; 68 int spare_disks; 69 int layout; 70 int chunk_size; 71} mdu_array_info_t; 72#define LEVEL_MULTIPATH (- 4) 73#define LEVEL_LINEAR (- 1) 74#define LEVEL_FAULTY (- 5) 75#define LEVEL_NONE (- 1000000) 76typedef struct mdu_disk_info_s { 77 int number; 78 int major; 79 int minor; 80 int raid_disk; 81 int state; 82} mdu_disk_info_t; 83typedef struct mdu_start_info_s { 84 int major; 85 int minor; 86 int raid_disk; 87 int state; 88} mdu_start_info_t; 89typedef struct mdu_bitmap_file_s { 90 char pathname[4096]; 91} mdu_bitmap_file_t; 92typedef struct mdu_param_s { 93 int personality; 94 int chunk_size; 95 int max_fault; 96} mdu_param_t; 97#endif 98