1c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner/****************************************************************************
2c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
3c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
4c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   This header was automatically generated from a Linux kernel header
5c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   of the same name, to make information necessary for userspace to
6c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   call into the kernel available to libc.  It contains only constants,
7c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   structures, and macros generated from the original header, and thus,
8c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   contains no copyrightable information.
9c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
10c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
11c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************/
12c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#ifndef _MD_U_H
13c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define _MD_U_H
14c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
15c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
16c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
17c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
18c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
19c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
20c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
21c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
22c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
23c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
24c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
25c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
26c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
27c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
28c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
29c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
30c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
31c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
32c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
33c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
34c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
35c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
36c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define START_ARRAY _IO (MD_MAJOR, 0x31)
37c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
38c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
39c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
40c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
41c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnertypedef struct mdu_version_s {
42c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int major;
43c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int minor;
44c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int patchlevel;
45c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner} mdu_version_t;
46c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
47c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnertypedef struct mdu_array_info_s {
48c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
49c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int major_version;
50c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int minor_version;
51c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int patch_version;
52c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int ctime;
53c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int level;
54c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int size;
55c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int nr_disks;
56c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int raid_disks;
57c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int md_minor;
58c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int not_persistent;
59c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
60c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int utime;
61c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int state;
62c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int active_disks;
63c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int working_disks;
64c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int failed_disks;
65c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int spare_disks;
66c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
67c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int layout;
68c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int chunk_size;
69c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
70c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner} mdu_array_info_t;
71c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
72c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnertypedef struct mdu_disk_info_s {
73c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
74c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int number;
75c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int major;
76c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int minor;
77c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int raid_disk;
78c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int state;
79c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
80c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner} mdu_disk_info_t;
81c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
82c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnertypedef struct mdu_start_info_s {
83c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
84c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int major;
85c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int minor;
86c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int raid_disk;
87c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int state;
88c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
89c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner} mdu_start_info_t;
90c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
91c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnertypedef struct mdu_bitmap_file_s
92c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner{
93c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner char pathname[4096];
94c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner} mdu_bitmap_file_t;
95c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
96c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnertypedef struct mdu_param_s
97c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner{
98c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int personality;
99c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int chunk_size;
100c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int max_fault;
101c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner} mdu_param_t;
102c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
103c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#endif
104c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
105