diff options
Diffstat (limited to 'include/linux/libata.h')
| -rw-r--r-- | include/linux/libata.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 6fe5ed8eabf5..f5cea13599c3 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -226,6 +226,9 @@ enum { | |||
| 226 | ATA_PORT_PRIMARY = (1 << 0), | 226 | ATA_PORT_PRIMARY = (1 << 0), |
| 227 | ATA_PORT_SECONDARY = (1 << 1), | 227 | ATA_PORT_SECONDARY = (1 << 1), |
| 228 | 228 | ||
| 229 | /* ering size */ | ||
| 230 | ATA_ERING_SIZE = 32, | ||
| 231 | |||
| 229 | /* reset / recovery action types */ | 232 | /* reset / recovery action types */ |
| 230 | ATA_EH_REVALIDATE = (1 << 0), | 233 | ATA_EH_REVALIDATE = (1 << 0), |
| 231 | ATA_EH_SOFTRESET = (1 << 1), | 234 | ATA_EH_SOFTRESET = (1 << 1), |
| @@ -375,6 +378,17 @@ struct ata_host_stats { | |||
| 375 | unsigned long rw_reqbuf; | 378 | unsigned long rw_reqbuf; |
| 376 | }; | 379 | }; |
| 377 | 380 | ||
| 381 | struct ata_ering_entry { | ||
| 382 | int is_io; | ||
| 383 | unsigned int err_mask; | ||
| 384 | u64 timestamp; | ||
| 385 | }; | ||
| 386 | |||
| 387 | struct ata_ering { | ||
| 388 | int cursor; | ||
| 389 | struct ata_ering_entry ring[ATA_ERING_SIZE]; | ||
| 390 | }; | ||
| 391 | |||
| 378 | struct ata_device { | 392 | struct ata_device { |
| 379 | struct ata_port *ap; | 393 | struct ata_port *ap; |
| 380 | u64 n_sectors; /* size of device, if ATA */ | 394 | u64 n_sectors; /* size of device, if ATA */ |
| @@ -401,6 +415,9 @@ struct ata_device { | |||
| 401 | u16 cylinders; /* Number of cylinders */ | 415 | u16 cylinders; /* Number of cylinders */ |
| 402 | u16 heads; /* Number of heads */ | 416 | u16 heads; /* Number of heads */ |
| 403 | u16 sectors; /* Number of sectors per track */ | 417 | u16 sectors; /* Number of sectors per track */ |
| 418 | |||
| 419 | /* error history */ | ||
| 420 | struct ata_ering ering; | ||
| 404 | }; | 421 | }; |
| 405 | 422 | ||
| 406 | struct ata_port { | 423 | struct ata_port { |
