md_u.h
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015: #ifndef _MD_U_H
016: #define _MD_U_H
017:
018:
019:
020:
021:
022:
023: #define MD_MAJOR_VERSION 0
024: #define MD_MINOR_VERSION 90
025:
026:
027:
028:
029:
030:
031:
032:
033:
034: #define MD_PATCHLEVEL_VERSION 3
035:
036:
037:
038:
039: #define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
040: #define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
041: #define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
042: #define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
043: #define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
044: #define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
045:
046:
047: #define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
048: #define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
049: #define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
050: #define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
051: #define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
052: #define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
053: #define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
054: #define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
055: #define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
056: #define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
057: #define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
058: #define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
059:
060:
061: #define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
062:
063: #define STOP_ARRAY _IO (MD_MAJOR, 0x32)
064: #define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
065: #define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
066:
067:
068: #define MdpMinorShift 6
069:
070: typedef struct mdu_version_s {
071: int major;
072: int minor;
073: int patchlevel;
074: } mdu_version_t;
075:
076: typedef struct mdu_array_info_s {
077:
078:
079:
080: int major_version;
081: int minor_version;
082: int patch_version;
083: int ctime;
084: int level;
085: int size;
086: int nr_disks;
087: int raid_disks;
088: int md_minor;
089: int not_persistent;
090:
091:
092:
093:
094: int utime;
095: int state;
096: int active_disks;
097: int working_disks;
098: int failed_disks;
099: int spare_disks;
100:
101:
102:
103:
104: int layout;
105: int chunk_size;
106:
107: } mdu_array_info_t;
108:
109:
110: #define LEVEL_MULTIPATH (-4)
111: #define LEVEL_LINEAR (-1)
112: #define LEVEL_FAULTY (-5)
113:
114:
115:
116:
117:
118: #define LEVEL_NONE (-1000000)
119:
120: typedef struct mdu_disk_info_s {
121:
122:
123:
124: int number;
125: int major;
126: int minor;
127: int raid_disk;
128: int state;
129:
130: } mdu_disk_info_t;
131:
132: typedef struct mdu_start_info_s {
133:
134:
135:
136: int major;
137: int minor;
138: int raid_disk;
139: int state;
140:
141: } mdu_start_info_t;
142:
143: typedef struct mdu_bitmap_file_s
144: {
145: char pathname[4096];
146: } mdu_bitmap_file_t;
147:
148: typedef struct mdu_param_s
149: {
150: int personality;
151: int chunk_size;
152: int max_fault;
153: } mdu_param_t;
154:
155: #endif
156:
157:
© Andrew Scott 2006 -
2025,
All Rights Reserved