Changeset e5792d1 in mainline for uspace/srv/bd/ata_bd/ata_bd.h
- Timestamp:
- 2009-08-22T15:20:01Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 22af3af
- Parents:
- a71c158 (diff), 4ef117f8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/ata_bd/ata_bd.h
ra71c158 re5792d1 38 38 #include <sys/types.h> 39 39 #include <fibril_sync.h> 40 #include <string.h> 40 41 41 42 enum { … … 115 116 116 117 enum drive_head_bits { 117 DHR_DRV = 0x10 118 DHR_LBA = 0x40, /**< Use LBA addressing mode */ 119 DHR_DRV = 0x10 /**< Select device 1 */ 118 120 }; 119 121 … … 142 144 }; 143 145 146 /** Data returned from @c identify command. */ 147 typedef struct { 148 uint16_t gen_conf; 149 uint16_t cylinders; 150 uint16_t _res2; 151 uint16_t heads; 152 uint16_t _vs4; 153 uint16_t _vs5; 154 uint16_t sectors; 155 uint16_t _vs7; 156 uint16_t _vs8; 157 uint16_t _vs9; 158 uint16_t serial_number[10]; 159 uint16_t _vs20; 160 uint16_t _vs21; 161 uint16_t vs_bytes; 162 uint16_t firmware_rev[4]; 163 uint16_t model_name[20]; 164 uint16_t max_rw_multiple; 165 uint16_t _res48; 166 uint16_t caps; 167 uint16_t _res50; 168 uint16_t pio_timing; 169 uint16_t dma_timing; 170 uint16_t validity; 171 uint16_t cur_cyl; 172 uint16_t cur_heads; 173 uint16_t cur_sectors; 174 uint16_t cur_capacity0; 175 uint16_t cur_capacity1; 176 uint16_t mss; 177 uint16_t total_lba_sec0; 178 uint16_t total_lba_sec1; 179 uint16_t sw_dma; 180 uint16_t mw_dma; 181 uint16_t pio_modes; 182 uint16_t min_mw_dma_cycle; 183 uint16_t rec_mw_dma_cycle; 184 uint16_t min_raw_pio_cycle; 185 uint16_t min_iordy_pio_cycle; 186 uint16_t _res69; 187 uint16_t _res70; 188 uint16_t _res71[1 + 127 - 71]; 189 uint16_t _vs128[1 + 159 - 128]; 190 uint16_t _res160[1 + 255 - 160]; 191 } identify_data_t; 192 193 enum ata_caps { 194 cap_iordy = 0x0800, 195 cap_iordy_cbd = 0x0400, 196 cap_lba = 0x0200, 197 cap_dma = 0x0100 198 }; 199 200 /** Block addressing mode. */ 201 enum addr_mode { 202 am_chs, 203 am_lba28 204 }; 205 144 206 typedef struct { 145 207 bool present; 146 unsigned heads; 147 unsigned cylinders; 148 unsigned sectors; 208 enum addr_mode amode; 209 210 /* 211 * Geometry. Only valid if operating in CHS mode. 212 */ 213 struct { 214 unsigned heads; 215 unsigned cylinders; 216 unsigned sectors; 217 } geom; 218 149 219 uint64_t blocks; 220 221 char model[STR_BOUNDS(40) + 1]; 150 222 151 223 fibril_mutex_t lock;
Note:
See TracChangeset
for help on using the changeset viewer.