| 335 | } |
| 336 | |
| 337 | static int64_t ide_get_sector(IDEState *s) |
| 338 | { |
| 339 | int64_t sector_num; |
| 340 | if (s->select & 0x40) { |
| 341 | /* lba */ |
| 342 | sector_num = ((s->select & 0x0f) << 24) | (s->hcyl << 16) | |
| 343 | (s->lcyl << 8) | s->sector; |
| 344 | } else { |
| 345 | sector_num = ((s->hcyl << 8) | s->lcyl) * |
| 346 | s->heads * s->sectors + |
| 347 | (s->select & 0x0f) * s->sectors + (s->sector - 1); |
| 348 | } |
| 349 | return sector_num; |
| 350 | } |
| 351 | |
| 352 | static void ide_set_sector(IDEState *s, int64_t sector_num) |
| 353 | { |
no outgoing calls
no test coverage detected