Rev 4531 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4531 | Rev 4546 | ||
|---|---|---|---|
| Line 48... | Line 48... | ||
| 48 | 48 | ||
| 49 | enum { |
49 | enum { |
| 50 | MAX_DISKS = 2 |
50 | MAX_DISKS = 2 |
| 51 | }; |
51 | }; |
| 52 | 52 | ||
| - | 53 | /** ATA Command Register Block. */ |
|
| 53 | typedef union { |
54 | typedef union { |
| 54 | /* Read */ |
55 | /* Read/Write */ |
| 55 | struct { |
56 | struct { |
| 56 | uint8_t data_port; |
57 | uint16_t data_port; |
| 57 | uint8_t error; |
- | |
| 58 | uint8_t sector_count; |
58 | uint8_t sector_count; |
| 59 | uint8_t sector_number; |
59 | uint8_t sector_number; |
| 60 | uint8_t cylinder_low; |
60 | uint8_t cylinder_low; |
| 61 | uint8_t cylinder_high; |
61 | uint8_t cylinder_high; |
| 62 | uint8_t drive_head; |
62 | uint8_t drive_head; |
| - | 63 | uint8_t pad_rw0; |
|
| - | 64 | }; |
|
| - | 65 | ||
| - | 66 | /* Read Only */ |
|
| - | 67 | struct { |
|
| - | 68 | uint8_t pad_ro0; |
|
| - | 69 | uint8_t error; |
|
| - | 70 | uint8_t pad_ro1[5]; |
|
| 63 | uint8_t status; |
71 | uint8_t status; |
| 64 | }; |
72 | }; |
| 65 | 73 | ||
| 66 | /* Write */ |
74 | /* Write Only */ |
| 67 | struct { |
75 | struct { |
| 68 | uint8_t pad0[7]; |
76 | uint8_t pad_wo0; |
| - | 77 | uint8_t features; |
|
| - | 78 | uint8_t pad_wo1[5]; |
|
| 69 | uint8_t command; |
79 | uint8_t command; |
| 70 | }; |
80 | }; |
| 71 | } ata_cmd_t; |
81 | } ata_cmd_t; |
| 72 | 82 | ||
| 73 | typedef union { |
83 | typedef union { |