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
47 typedef struct mdu_version_s {
48   int major;
49   int minor;
50   int patchlevel;
51 } mdu_version_t;
52 typedef 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)
76 typedef 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;
83 typedef struct mdu_start_info_s {
84   int major;
85   int minor;
86   int raid_disk;
87   int state;
88 } mdu_start_info_t;
89 typedef struct mdu_bitmap_file_s {
90   char pathname[4096];
91 } mdu_bitmap_file_t;
92 typedef struct mdu_param_s {
93   int personality;
94   int chunk_size;
95   int max_fault;
96 } mdu_param_t;
97 #endif
98