Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations
ata.h File Reference
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/types.h>
#include <asm/byteorder.h>

Go to the source code of this file.

Data Structures

struct  ata_bmdma_prd
 
struct  ata_taskfile
 

Macros

#define ATA_DMA_BOUNDARY   0xffffUL
 
#define ATA_DMA_MASK   0xffffffffULL
 
#define ata_id_is_ata(id)   (((id)[ATA_ID_CONFIG] & (1 << 15)) == 0)
 
#define ata_id_has_lba(id)   ((id)[ATA_ID_CAPABILITY] & (1 << 9))
 
#define ata_id_has_dma(id)   ((id)[ATA_ID_CAPABILITY] & (1 << 8))
 
#define ata_id_has_ncq(id)   ((id)[ATA_ID_SATA_CAPABILITY] & (1 << 8))
 
#define ata_id_queue_depth(id)   (((id)[ATA_ID_QUEUE_DEPTH] & 0x1f) + 1)
 
#define ata_id_removeable(id)   ((id)[ATA_ID_CONFIG] & (1 << 7))
 
#define ata_id_has_atapi_AN(id)
 
#define ata_id_has_fpdma_aa(id)
 
#define ata_id_iordy_disable(id)   ((id)[ATA_ID_CAPABILITY] & (1 << 10))
 
#define ata_id_has_iordy(id)   ((id)[ATA_ID_CAPABILITY] & (1 << 11))
 
#define ata_id_u32(id, n)   (((u32) (id)[(n) + 1] << 16) | ((u32) (id)[(n)]))
 
#define ata_id_u64(id, n)
 
#define ata_id_cdb_intr(id)   (((id)[ATA_ID_CONFIG] & 0x60) == 0x20)
 
#define ata_id_has_da(id)   ((id)[ATA_ID_SATA_CAPABILITY_2] & (1 << 4))
 
#define ata_id_has_devslp(id)   ((id)[ATA_ID_FEATURE_SUPP] & (1 << 8))
 
#define sata_pmp_gscr_vendor(gscr)   ((gscr)[SATA_PMP_GSCR_PROD_ID] & 0xffff)
 
#define sata_pmp_gscr_devid(gscr)   ((gscr)[SATA_PMP_GSCR_PROD_ID] >> 16)
 
#define sata_pmp_gscr_rev(gscr)   (((gscr)[SATA_PMP_GSCR_REV] >> 8) & 0xff)
 
#define sata_pmp_gscr_ports(gscr)   ((gscr)[SATA_PMP_GSCR_PORT_INFO] & 0xf)
 

Enumerations

enum  {
  ATA_MAX_DEVICES = 2, ATA_MAX_PRD = 256, ATA_SECT_SIZE = 512, ATA_MAX_SECTORS_128 = 128,
  ATA_MAX_SECTORS = 256, ATA_MAX_SECTORS_LBA48 = 65535, ATA_MAX_SECTORS_TAPE = 65535, ATA_ID_WORDS = 256,
  ATA_ID_CONFIG = 0, ATA_ID_CYLS = 1, ATA_ID_HEADS = 3, ATA_ID_SECTORS = 6,
  ATA_ID_SERNO = 10, ATA_ID_BUF_SIZE = 21, ATA_ID_FW_REV = 23, ATA_ID_PROD = 27,
  ATA_ID_MAX_MULTSECT = 47, ATA_ID_DWORD_IO = 48, ATA_ID_CAPABILITY = 49, ATA_ID_OLD_PIO_MODES = 51,
  ATA_ID_OLD_DMA_MODES = 52, ATA_ID_FIELD_VALID = 53, ATA_ID_CUR_CYLS = 54, ATA_ID_CUR_HEADS = 55,
  ATA_ID_CUR_SECTORS = 56, ATA_ID_MULTSECT = 59, ATA_ID_LBA_CAPACITY = 60, ATA_ID_SWDMA_MODES = 62,
  ATA_ID_MWDMA_MODES = 63, ATA_ID_PIO_MODES = 64, ATA_ID_EIDE_DMA_MIN = 65, ATA_ID_EIDE_DMA_TIME = 66,
  ATA_ID_EIDE_PIO = 67, ATA_ID_EIDE_PIO_IORDY = 68, ATA_ID_ADDITIONAL_SUPP = 69, ATA_ID_QUEUE_DEPTH = 75,
  ATA_ID_SATA_CAPABILITY = 76, ATA_ID_SATA_CAPABILITY_2 = 77, ATA_ID_FEATURE_SUPP = 78, ATA_ID_MAJOR_VER = 80,
  ATA_ID_COMMAND_SET_1 = 82, ATA_ID_COMMAND_SET_2 = 83, ATA_ID_CFSSE = 84, ATA_ID_CFS_ENABLE_1 = 85,
  ATA_ID_CFS_ENABLE_2 = 86, ATA_ID_CSF_DEFAULT = 87, ATA_ID_UDMA_MODES = 88, ATA_ID_HW_CONFIG = 93,
  ATA_ID_SPG = 98, ATA_ID_LBA_CAPACITY_2 = 100, ATA_ID_SECTOR_SIZE = 106, ATA_ID_WWN = 108,
  ATA_ID_LOGICAL_SECTOR_SIZE = 117, ATA_ID_LAST_LUN = 126, ATA_ID_DLF = 128, ATA_ID_CSFO = 129,
  ATA_ID_CFA_POWER = 160, ATA_ID_CFA_KEY_MGMT = 162, ATA_ID_CFA_MODES = 163, ATA_ID_DATA_SET_MGMT = 169,
  ATA_ID_ROT_SPEED = 217, ATA_ID_PIO4 = (1 << 1), ATA_ID_SERNO_LEN = 20, ATA_ID_FW_REV_LEN = 8,
  ATA_ID_PROD_LEN = 40, ATA_ID_WWN_LEN = 8, ATA_PCI_CTL_OFS = 2, ATA_PIO0 = (1 << 0),
  ATA_PIO1 = ATA_PIO0 | (1 << 1), ATA_PIO2 = ATA_PIO1 | (1 << 2), ATA_PIO3 = ATA_PIO2 | (1 << 3), ATA_PIO4 = ATA_PIO3 | (1 << 4),
  ATA_PIO5 = ATA_PIO4 | (1 << 5), ATA_PIO6 = ATA_PIO5 | (1 << 6), ATA_PIO4_ONLY = (1 << 4), ATA_SWDMA0 = (1 << 0),
  ATA_SWDMA1 = ATA_SWDMA0 | (1 << 1), ATA_SWDMA2 = ATA_SWDMA1 | (1 << 2), ATA_SWDMA2_ONLY = (1 << 2), ATA_MWDMA0 = (1 << 0),
  ATA_MWDMA1 = ATA_MWDMA0 | (1 << 1), ATA_MWDMA2 = ATA_MWDMA1 | (1 << 2), ATA_MWDMA3 = ATA_MWDMA2 | (1 << 3), ATA_MWDMA4 = ATA_MWDMA3 | (1 << 4),
  ATA_MWDMA12_ONLY = (1 << 1) | (1 << 2), ATA_MWDMA2_ONLY = (1 << 2), ATA_UDMA0 = (1 << 0), ATA_UDMA1 = ATA_UDMA0 | (1 << 1),
  ATA_UDMA2 = ATA_UDMA1 | (1 << 2), ATA_UDMA3 = ATA_UDMA2 | (1 << 3), ATA_UDMA4 = ATA_UDMA3 | (1 << 4), ATA_UDMA5 = ATA_UDMA4 | (1 << 5),
  ATA_UDMA6 = ATA_UDMA5 | (1 << 6), ATA_UDMA7 = ATA_UDMA6 | (1 << 7), ATA_UDMA24_ONLY = (1 << 2) | (1 << 4), ATA_UDMA_MASK_40C = ATA_UDMA2,
  ATA_PRD_SZ = 8, ATA_PRD_TBL_SZ = (ATA_MAX_PRD * ATA_PRD_SZ), ATA_PRD_EOT = (1 << 31), ATA_DMA_TABLE_OFS = 4,
  ATA_DMA_STATUS = 2, ATA_DMA_CMD = 0, ATA_DMA_WR = (1 << 3), ATA_DMA_START = (1 << 0),
  ATA_DMA_INTR = (1 << 2), ATA_DMA_ERR = (1 << 1), ATA_DMA_ACTIVE = (1 << 0), ATA_HOB = (1 << 7),
  ATA_NIEN = (1 << 1), ATA_LBA = (1 << 6), ATA_DEV1 = (1 << 4), ATA_DEVICE_OBS = (1 << 7) | (1 << 5),
  ATA_DEVCTL_OBS = (1 << 3), ATA_BUSY = (1 << 7), ATA_DRDY = (1 << 6), ATA_DF = (1 << 5),
  ATA_DSC = (1 << 4), ATA_DRQ = (1 << 3), ATA_CORR = (1 << 2), ATA_IDX = (1 << 1),
  ATA_ERR = (1 << 0), ATA_SRST = (1 << 2), ATA_ICRC = (1 << 7), ATA_BBK = ATA_ICRC,
  ATA_UNC = (1 << 6), ATA_MC = (1 << 5), ATA_IDNF = (1 << 4), ATA_MCR = (1 << 3),
  ATA_ABORTED = (1 << 2), ATA_TRK0NF = (1 << 1), ATA_AMNF = (1 << 0), ATAPI_LFS = 0xF0,
  ATAPI_EOM = ATA_TRK0NF, ATAPI_ILI = ATA_AMNF, ATAPI_IO = (1 << 1), ATAPI_COD = (1 << 0),
  ATA_REG_DATA = 0x00, ATA_REG_ERR = 0x01, ATA_REG_NSECT = 0x02, ATA_REG_LBAL = 0x03,
  ATA_REG_LBAM = 0x04, ATA_REG_LBAH = 0x05, ATA_REG_DEVICE = 0x06, ATA_REG_STATUS = 0x07,
  ATA_REG_FEATURE = ATA_REG_ERR, ATA_REG_CMD = ATA_REG_STATUS, ATA_REG_BYTEL = ATA_REG_LBAM, ATA_REG_BYTEH = ATA_REG_LBAH,
  ATA_REG_DEVSEL = ATA_REG_DEVICE, ATA_REG_IRQ = ATA_REG_NSECT, ATA_CMD_DEV_RESET = 0x08, ATA_CMD_CHK_POWER = 0xE5,
  ATA_CMD_STANDBY = 0xE2, ATA_CMD_IDLE = 0xE3, ATA_CMD_EDD = 0x90, ATA_CMD_DOWNLOAD_MICRO = 0x92,
  ATA_CMD_NOP = 0x00, ATA_CMD_FLUSH = 0xE7, ATA_CMD_FLUSH_EXT = 0xEA, ATA_CMD_ID_ATA = 0xEC,
  ATA_CMD_ID_ATAPI = 0xA1, ATA_CMD_SERVICE = 0xA2, ATA_CMD_READ = 0xC8, ATA_CMD_READ_EXT = 0x25,
  ATA_CMD_READ_QUEUED = 0x26, ATA_CMD_READ_STREAM_EXT = 0x2B, ATA_CMD_READ_STREAM_DMA_EXT = 0x2A, ATA_CMD_WRITE = 0xCA,
  ATA_CMD_WRITE_EXT = 0x35, ATA_CMD_WRITE_QUEUED = 0x36, ATA_CMD_WRITE_STREAM_EXT = 0x3B, ATA_CMD_WRITE_STREAM_DMA_EXT = 0x3A,
  ATA_CMD_WRITE_FUA_EXT = 0x3D, ATA_CMD_WRITE_QUEUED_FUA_EXT = 0x3E, ATA_CMD_FPDMA_READ = 0x60, ATA_CMD_FPDMA_WRITE = 0x61,
  ATA_CMD_PIO_READ = 0x20, ATA_CMD_PIO_READ_EXT = 0x24, ATA_CMD_PIO_WRITE = 0x30, ATA_CMD_PIO_WRITE_EXT = 0x34,
  ATA_CMD_READ_MULTI = 0xC4, ATA_CMD_READ_MULTI_EXT = 0x29, ATA_CMD_WRITE_MULTI = 0xC5, ATA_CMD_WRITE_MULTI_EXT = 0x39,
  ATA_CMD_WRITE_MULTI_FUA_EXT = 0xCE, ATA_CMD_SET_FEATURES = 0xEF, ATA_CMD_SET_MULTI = 0xC6, ATA_CMD_PACKET = 0xA0,
  ATA_CMD_VERIFY = 0x40, ATA_CMD_VERIFY_EXT = 0x42, ATA_CMD_WRITE_UNCORR_EXT = 0x45, ATA_CMD_STANDBYNOW1 = 0xE0,
  ATA_CMD_IDLEIMMEDIATE = 0xE1, ATA_CMD_SLEEP = 0xE6, ATA_CMD_INIT_DEV_PARAMS = 0x91, ATA_CMD_READ_NATIVE_MAX = 0xF8,
  ATA_CMD_READ_NATIVE_MAX_EXT = 0x27, ATA_CMD_SET_MAX = 0xF9, ATA_CMD_SET_MAX_EXT = 0x37, ATA_CMD_READ_LOG_EXT = 0x2F,
  ATA_CMD_WRITE_LOG_EXT = 0x3F, ATA_CMD_READ_LOG_DMA_EXT = 0x47, ATA_CMD_WRITE_LOG_DMA_EXT = 0x57, ATA_CMD_TRUSTED_RCV = 0x5C,
  ATA_CMD_TRUSTED_RCV_DMA = 0x5D, ATA_CMD_TRUSTED_SND = 0x5E, ATA_CMD_TRUSTED_SND_DMA = 0x5F, ATA_CMD_PMP_READ = 0xE4,
  ATA_CMD_PMP_WRITE = 0xE8, ATA_CMD_CONF_OVERLAY = 0xB1, ATA_CMD_SEC_SET_PASS = 0xF1, ATA_CMD_SEC_UNLOCK = 0xF2,
  ATA_CMD_SEC_ERASE_PREP = 0xF3, ATA_CMD_SEC_ERASE_UNIT = 0xF4, ATA_CMD_SEC_FREEZE_LOCK = 0xF5, ATA_CMD_SEC_DISABLE_PASS = 0xF6,
  ATA_CMD_CONFIG_STREAM = 0x51, ATA_CMD_SMART = 0xB0, ATA_CMD_MEDIA_LOCK = 0xDE, ATA_CMD_MEDIA_UNLOCK = 0xDF,
  ATA_CMD_DSM = 0x06, ATA_CMD_CHK_MED_CRD_TYP = 0xD1, ATA_CMD_CFA_REQ_EXT_ERR = 0x03, ATA_CMD_CFA_WRITE_NE = 0x38,
  ATA_CMD_CFA_TRANS_SECT = 0x87, ATA_CMD_CFA_ERASE = 0xC0, ATA_CMD_CFA_WRITE_MULT_NE = 0xCD, ATA_CMD_RESTORE = 0x10,
  ATA_LOG_SATA_NCQ = 0x10, ATA_LOG_SATA_ID_DEV_DATA = 0x30, ATA_LOG_SATA_SETTINGS = 0x08, ATA_LOG_DEVSLP_MDAT = 0x30,
  ATA_LOG_DEVSLP_MDAT_MASK = 0x1F, ATA_LOG_DEVSLP_DETO = 0x31, ATA_LOG_DEVSLP_VALID = 0x37, ATA_LOG_DEVSLP_VALID_MASK = 0x80,
  ATA_CMD_READ_LONG = 0x22, ATA_CMD_READ_LONG_ONCE = 0x23, ATA_CMD_WRITE_LONG = 0x32, ATA_CMD_WRITE_LONG_ONCE = 0x33,
  SETFEATURES_XFER = 0x03, XFER_UDMA_7 = 0x47, XFER_UDMA_6 = 0x46, XFER_UDMA_5 = 0x45,
  XFER_UDMA_4 = 0x44, XFER_UDMA_3 = 0x43, XFER_UDMA_2 = 0x42, XFER_UDMA_1 = 0x41,
  XFER_UDMA_0 = 0x40, XFER_MW_DMA_4 = 0x24, XFER_MW_DMA_3 = 0x23, XFER_MW_DMA_2 = 0x22,
  XFER_MW_DMA_1 = 0x21, XFER_MW_DMA_0 = 0x20, XFER_SW_DMA_2 = 0x12, XFER_SW_DMA_1 = 0x11,
  XFER_SW_DMA_0 = 0x10, XFER_PIO_6 = 0x0E, XFER_PIO_5 = 0x0D, XFER_PIO_4 = 0x0C,
  XFER_PIO_3 = 0x0B, XFER_PIO_2 = 0x0A, XFER_PIO_1 = 0x09, XFER_PIO_0 = 0x08,
  XFER_PIO_SLOW = 0x00, SETFEATURES_WC_ON = 0x02, SETFEATURES_WC_OFF = 0x82, SETFEATURES_AAM_ON = 0x42,
  SETFEATURES_AAM_OFF = 0xC2, SETFEATURES_SPINUP = 0x07, SETFEATURES_SATA_ENABLE = 0x10, SETFEATURES_SATA_DISABLE = 0x90,
  SATA_FPDMA_OFFSET = 0x01, SATA_FPDMA_AA = 0x02, SATA_DIPM = 0x03, SATA_FPDMA_IN_ORDER = 0x04,
  SATA_AN = 0x05, SATA_SSP = 0x06, SATA_DEVSLP = 0x09, ATA_SET_MAX_ADDR = 0x00,
  ATA_SET_MAX_PASSWD = 0x01, ATA_SET_MAX_LOCK = 0x02, ATA_SET_MAX_UNLOCK = 0x03, ATA_SET_MAX_FREEZE_LOCK = 0x04,
  ATA_DCO_RESTORE = 0xC0, ATA_DCO_FREEZE_LOCK = 0xC1, ATA_DCO_IDENTIFY = 0xC2, ATA_DCO_SET = 0xC3,
  ATA_SMART_ENABLE = 0xD8, ATA_SMART_READ_VALUES = 0xD0, ATA_SMART_READ_THRESHOLDS = 0xD1, ATA_DSM_TRIM = 0x01,
  ATA_SMART_LBAM_PASS = 0x4F, ATA_SMART_LBAH_PASS = 0xC2, ATAPI_PKT_DMA = (1 << 0), ATAPI_DMADIR = (1 << 2),
  ATAPI_CDB_LEN = 16, SATA_PMP_MAX_PORTS = 15, SATA_PMP_CTRL_PORT = 15, SATA_PMP_GSCR_DWORDS = 128,
  SATA_PMP_GSCR_PROD_ID = 0, SATA_PMP_GSCR_REV = 1, SATA_PMP_GSCR_PORT_INFO = 2, SATA_PMP_GSCR_ERROR = 32,
  SATA_PMP_GSCR_ERROR_EN = 33, SATA_PMP_GSCR_FEAT = 64, SATA_PMP_GSCR_FEAT_EN = 96, SATA_PMP_PSCR_STATUS = 0,
  SATA_PMP_PSCR_ERROR = 1, SATA_PMP_PSCR_CONTROL = 2, SATA_PMP_FEAT_BIST = (1 << 0), SATA_PMP_FEAT_PMREQ = (1 << 1),
  SATA_PMP_FEAT_DYNSSC = (1 << 2), SATA_PMP_FEAT_NOTIFY = (1 << 3), ATA_CBL_NONE = 0, ATA_CBL_PATA40 = 1,
  ATA_CBL_PATA80 = 2, ATA_CBL_PATA40_SHORT = 3, ATA_CBL_PATA_UNK = 4, ATA_CBL_PATA_IGN = 5,
  ATA_CBL_SATA = 6, SCR_STATUS = 0, SCR_ERROR = 1, SCR_CONTROL = 2,
  SCR_ACTIVE = 3, SCR_NOTIFICATION = 4, SERR_DATA_RECOVERED = (1 << 0), SERR_COMM_RECOVERED = (1 << 1),
  SERR_DATA = (1 << 8), SERR_PERSISTENT = (1 << 9), SERR_PROTOCOL = (1 << 10), SERR_INTERNAL = (1 << 11),
  SERR_PHYRDY_CHG = (1 << 16), SERR_PHY_INT_ERR = (1 << 17), SERR_COMM_WAKE = (1 << 18), SERR_10B_8B_ERR = (1 << 19),
  SERR_DISPARITY = (1 << 20), SERR_CRC = (1 << 21), SERR_HANDSHAKE = (1 << 22), SERR_LINK_SEQ_ERR = (1 << 23),
  SERR_TRANS_ST_ERROR = (1 << 24), SERR_UNRECOG_FIS = (1 << 25), SERR_DEV_XCHG = (1 << 26), ATA_TFLAG_LBA48 = (1 << 0),
  ATA_TFLAG_ISADDR = (1 << 1), ATA_TFLAG_DEVICE = (1 << 2), ATA_TFLAG_WRITE = (1 << 3), ATA_TFLAG_LBA = (1 << 4),
  ATA_TFLAG_FUA = (1 << 5), ATA_TFLAG_POLLING = (1 << 6), ATA_PROT_FLAG_PIO = (1 << 0), ATA_PROT_FLAG_DMA = (1 << 1),
  ATA_PROT_FLAG_DATA = ATA_PROT_FLAG_PIO | ATA_PROT_FLAG_DMA, ATA_PROT_FLAG_NCQ = (1 << 2), ATA_PROT_FLAG_ATAPI = (1 << 3)
}
 
enum  ata_tf_protocols {
  ATA_PROT_UNKNOWN, ATA_PROT_NODATA, ATA_PROT_PIO, ATA_PROT_DMA,
  ATA_PROT_NCQ, ATAPI_PROT_NODATA, ATAPI_PROT_PIO, ATAPI_PROT_DMA
}
 
enum  ata_ioctls { ATA_IOC_GET_IO32 = 0x309, ATA_IOC_SET_IO32 = 0x324 }
 

Macro Definition Documentation

#define ATA_DMA_BOUNDARY   0xffffUL

Definition at line 38 of file ata.h.

#define ATA_DMA_MASK   0xffffffffULL

Definition at line 39 of file ata.h.

#define ata_id_cdb_intr (   id)    (((id)[ATA_ID_CONFIG] & 0x60) == 0x20)

Definition at line 593 of file ata.h.

#define ata_id_has_atapi_AN (   id)
Value:
((((id)[ATA_ID_SATA_CAPABILITY] != 0x0000) && \
((id)[ATA_ID_SATA_CAPABILITY] != 0xffff)) && \
((id)[ATA_ID_FEATURE_SUPP] & (1 << 5)))

Definition at line 575 of file ata.h.

#define ata_id_has_da (   id)    ((id)[ATA_ID_SATA_CAPABILITY_2] & (1 << 4))

Definition at line 594 of file ata.h.

#define ata_id_has_devslp (   id)    ((id)[ATA_ID_FEATURE_SUPP] & (1 << 8))

Definition at line 595 of file ata.h.

#define ata_id_has_dma (   id)    ((id)[ATA_ID_CAPABILITY] & (1 << 8))

Definition at line 571 of file ata.h.

#define ata_id_has_fpdma_aa (   id)
Value:
((((id)[ATA_ID_SATA_CAPABILITY] != 0x0000) && \
((id)[ATA_ID_SATA_CAPABILITY] != 0xffff)) && \
((id)[ATA_ID_FEATURE_SUPP] & (1 << 2)))

Definition at line 579 of file ata.h.

#define ata_id_has_iordy (   id)    ((id)[ATA_ID_CAPABILITY] & (1 << 11))

Definition at line 584 of file ata.h.

#define ata_id_has_lba (   id)    ((id)[ATA_ID_CAPABILITY] & (1 << 9))

Definition at line 570 of file ata.h.

#define ata_id_has_ncq (   id)    ((id)[ATA_ID_SATA_CAPABILITY] & (1 << 8))

Definition at line 572 of file ata.h.

#define ata_id_iordy_disable (   id)    ((id)[ATA_ID_CAPABILITY] & (1 << 10))

Definition at line 583 of file ata.h.

#define ata_id_is_ata (   id)    (((id)[ATA_ID_CONFIG] & (1 << 15)) == 0)

Definition at line 569 of file ata.h.

#define ata_id_queue_depth (   id)    (((id)[ATA_ID_QUEUE_DEPTH] & 0x1f) + 1)

Definition at line 573 of file ata.h.

#define ata_id_removeable (   id)    ((id)[ATA_ID_CONFIG] & (1 << 7))

Definition at line 574 of file ata.h.

#define ata_id_u32 (   id,
  n 
)    (((u32) (id)[(n) + 1] << 16) | ((u32) (id)[(n)]))

Definition at line 585 of file ata.h.

#define ata_id_u64 (   id,
  n 
)
Value:
( ((u64) (id)[(n) + 3] << 48) | \
((u64) (id)[(n) + 2] << 32) | \
((u64) (id)[(n) + 1] << 16) | \
((u64) (id)[(n) + 0]) )

Definition at line 587 of file ata.h.

#define sata_pmp_gscr_devid (   gscr)    ((gscr)[SATA_PMP_GSCR_PROD_ID] >> 16)

Definition at line 1089 of file ata.h.

#define sata_pmp_gscr_ports (   gscr)    ((gscr)[SATA_PMP_GSCR_PORT_INFO] & 0xf)

Definition at line 1091 of file ata.h.

#define sata_pmp_gscr_rev (   gscr)    (((gscr)[SATA_PMP_GSCR_REV] >> 8) & 0xff)

Definition at line 1090 of file ata.h.

#define sata_pmp_gscr_vendor (   gscr)    ((gscr)[SATA_PMP_GSCR_PROD_ID] & 0xffff)

Definition at line 1088 of file ata.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
ATA_MAX_DEVICES 
ATA_MAX_PRD 
ATA_SECT_SIZE 
ATA_MAX_SECTORS_128 
ATA_MAX_SECTORS 
ATA_MAX_SECTORS_LBA48 
ATA_MAX_SECTORS_TAPE 
ATA_ID_WORDS 
ATA_ID_CONFIG 
ATA_ID_CYLS 
ATA_ID_HEADS 
ATA_ID_SECTORS 
ATA_ID_SERNO 
ATA_ID_BUF_SIZE 
ATA_ID_FW_REV 
ATA_ID_PROD 
ATA_ID_MAX_MULTSECT 
ATA_ID_DWORD_IO 
ATA_ID_CAPABILITY 
ATA_ID_OLD_PIO_MODES 
ATA_ID_OLD_DMA_MODES 
ATA_ID_FIELD_VALID 
ATA_ID_CUR_CYLS 
ATA_ID_CUR_HEADS 
ATA_ID_CUR_SECTORS 
ATA_ID_MULTSECT 
ATA_ID_LBA_CAPACITY 
ATA_ID_SWDMA_MODES 
ATA_ID_MWDMA_MODES 
ATA_ID_PIO_MODES 
ATA_ID_EIDE_DMA_MIN 
ATA_ID_EIDE_DMA_TIME 
ATA_ID_EIDE_PIO 
ATA_ID_EIDE_PIO_IORDY 
ATA_ID_ADDITIONAL_SUPP 
ATA_ID_QUEUE_DEPTH 
ATA_ID_SATA_CAPABILITY 
ATA_ID_SATA_CAPABILITY_2 
ATA_ID_FEATURE_SUPP 
ATA_ID_MAJOR_VER 
ATA_ID_COMMAND_SET_1 
ATA_ID_COMMAND_SET_2 
ATA_ID_CFSSE 
ATA_ID_CFS_ENABLE_1 
ATA_ID_CFS_ENABLE_2 
ATA_ID_CSF_DEFAULT 
ATA_ID_UDMA_MODES 
ATA_ID_HW_CONFIG 
ATA_ID_SPG 
ATA_ID_LBA_CAPACITY_2 
ATA_ID_SECTOR_SIZE 
ATA_ID_WWN 
ATA_ID_LOGICAL_SECTOR_SIZE 
ATA_ID_LAST_LUN 
ATA_ID_DLF 
ATA_ID_CSFO 
ATA_ID_CFA_POWER 
ATA_ID_CFA_KEY_MGMT 
ATA_ID_CFA_MODES 
ATA_ID_DATA_SET_MGMT 
ATA_ID_ROT_SPEED 
ATA_ID_PIO4 
ATA_ID_SERNO_LEN 
ATA_ID_FW_REV_LEN 
ATA_ID_PROD_LEN 
ATA_ID_WWN_LEN 
ATA_PCI_CTL_OFS 
ATA_PIO0 
ATA_PIO1 
ATA_PIO2 
ATA_PIO3 
ATA_PIO4 
ATA_PIO5 
ATA_PIO6 
ATA_PIO4_ONLY 
ATA_SWDMA0 
ATA_SWDMA1 
ATA_SWDMA2 
ATA_SWDMA2_ONLY 
ATA_MWDMA0 
ATA_MWDMA1 
ATA_MWDMA2 
ATA_MWDMA3 
ATA_MWDMA4 
ATA_MWDMA12_ONLY 
ATA_MWDMA2_ONLY 
ATA_UDMA0 
ATA_UDMA1 
ATA_UDMA2 
ATA_UDMA3 
ATA_UDMA4 
ATA_UDMA5 
ATA_UDMA6 
ATA_UDMA7 
ATA_UDMA24_ONLY 
ATA_UDMA_MASK_40C 
ATA_PRD_SZ 
ATA_PRD_TBL_SZ 
ATA_PRD_EOT 
ATA_DMA_TABLE_OFS 
ATA_DMA_STATUS 
ATA_DMA_CMD 
ATA_DMA_WR 
ATA_DMA_START 
ATA_DMA_INTR 
ATA_DMA_ERR 
ATA_DMA_ACTIVE 
ATA_HOB 
ATA_NIEN 
ATA_LBA 
ATA_DEV1 
ATA_DEVICE_OBS 
ATA_DEVCTL_OBS 
ATA_BUSY 
ATA_DRDY 
ATA_DF 
ATA_DSC 
ATA_DRQ 
ATA_CORR 
ATA_IDX 
ATA_ERR 
ATA_SRST 
ATA_ICRC 
ATA_BBK 
ATA_UNC 
ATA_MC 
ATA_IDNF 
ATA_MCR 
ATA_ABORTED 
ATA_TRK0NF 
ATA_AMNF 
ATAPI_LFS 
ATAPI_EOM 
ATAPI_ILI 
ATAPI_IO 
ATAPI_COD 
ATA_REG_DATA 
ATA_REG_ERR 
ATA_REG_NSECT 
ATA_REG_LBAL 
ATA_REG_LBAM 
ATA_REG_LBAH 
ATA_REG_DEVICE 
ATA_REG_STATUS 
ATA_REG_FEATURE 
ATA_REG_CMD 
ATA_REG_BYTEL 
ATA_REG_BYTEH 
ATA_REG_DEVSEL 
ATA_REG_IRQ 
ATA_CMD_DEV_RESET 
ATA_CMD_CHK_POWER 
ATA_CMD_STANDBY 
ATA_CMD_IDLE 
ATA_CMD_EDD 
ATA_CMD_DOWNLOAD_MICRO 
ATA_CMD_NOP 
ATA_CMD_FLUSH 
ATA_CMD_FLUSH_EXT 
ATA_CMD_ID_ATA 
ATA_CMD_ID_ATAPI 
ATA_CMD_SERVICE 
ATA_CMD_READ 
ATA_CMD_READ_EXT 
ATA_CMD_READ_QUEUED 
ATA_CMD_READ_STREAM_EXT 
ATA_CMD_READ_STREAM_DMA_EXT 
ATA_CMD_WRITE 
ATA_CMD_WRITE_EXT 
ATA_CMD_WRITE_QUEUED 
ATA_CMD_WRITE_STREAM_EXT 
ATA_CMD_WRITE_STREAM_DMA_EXT 
ATA_CMD_WRITE_FUA_EXT 
ATA_CMD_WRITE_QUEUED_FUA_EXT 
ATA_CMD_FPDMA_READ 
ATA_CMD_FPDMA_WRITE 
ATA_CMD_PIO_READ 
ATA_CMD_PIO_READ_EXT 
ATA_CMD_PIO_WRITE 
ATA_CMD_PIO_WRITE_EXT 
ATA_CMD_READ_MULTI 
ATA_CMD_READ_MULTI_EXT 
ATA_CMD_WRITE_MULTI 
ATA_CMD_WRITE_MULTI_EXT 
ATA_CMD_WRITE_MULTI_FUA_EXT 
ATA_CMD_SET_FEATURES 
ATA_CMD_SET_MULTI 
ATA_CMD_PACKET 
ATA_CMD_VERIFY 
ATA_CMD_VERIFY_EXT 
ATA_CMD_WRITE_UNCORR_EXT 
ATA_CMD_STANDBYNOW1 
ATA_CMD_IDLEIMMEDIATE 
ATA_CMD_SLEEP 
ATA_CMD_INIT_DEV_PARAMS 
ATA_CMD_READ_NATIVE_MAX 
ATA_CMD_READ_NATIVE_MAX_EXT 
ATA_CMD_SET_MAX 
ATA_CMD_SET_MAX_EXT 
ATA_CMD_READ_LOG_EXT 
ATA_CMD_WRITE_LOG_EXT 
ATA_CMD_READ_LOG_DMA_EXT 
ATA_CMD_WRITE_LOG_DMA_EXT 
ATA_CMD_TRUSTED_RCV 
ATA_CMD_TRUSTED_RCV_DMA 
ATA_CMD_TRUSTED_SND 
ATA_CMD_TRUSTED_SND_DMA 
ATA_CMD_PMP_READ 
ATA_CMD_PMP_WRITE 
ATA_CMD_CONF_OVERLAY 
ATA_CMD_SEC_SET_PASS 
ATA_CMD_SEC_UNLOCK 
ATA_CMD_SEC_ERASE_PREP 
ATA_CMD_SEC_ERASE_UNIT 
ATA_CMD_SEC_FREEZE_LOCK 
ATA_CMD_SEC_DISABLE_PASS 
ATA_CMD_CONFIG_STREAM 
ATA_CMD_SMART 
ATA_CMD_MEDIA_LOCK 
ATA_CMD_MEDIA_UNLOCK 
ATA_CMD_DSM 
ATA_CMD_CHK_MED_CRD_TYP 
ATA_CMD_CFA_REQ_EXT_ERR 
ATA_CMD_CFA_WRITE_NE 
ATA_CMD_CFA_TRANS_SECT 
ATA_CMD_CFA_ERASE 
ATA_CMD_CFA_WRITE_MULT_NE 
ATA_CMD_RESTORE 
ATA_LOG_SATA_NCQ 
ATA_LOG_SATA_ID_DEV_DATA 
ATA_LOG_SATA_SETTINGS 
ATA_LOG_DEVSLP_MDAT 
ATA_LOG_DEVSLP_MDAT_MASK 
ATA_LOG_DEVSLP_DETO 
ATA_LOG_DEVSLP_VALID 
ATA_LOG_DEVSLP_VALID_MASK 
ATA_CMD_READ_LONG 
ATA_CMD_READ_LONG_ONCE 
ATA_CMD_WRITE_LONG 
ATA_CMD_WRITE_LONG_ONCE 
SETFEATURES_XFER 
XFER_UDMA_7 
XFER_UDMA_6 
XFER_UDMA_5 
XFER_UDMA_4 
XFER_UDMA_3 
XFER_UDMA_2 
XFER_UDMA_1 
XFER_UDMA_0 
XFER_MW_DMA_4 
XFER_MW_DMA_3 
XFER_MW_DMA_2 
XFER_MW_DMA_1 
XFER_MW_DMA_0 
XFER_SW_DMA_2 
XFER_SW_DMA_1 
XFER_SW_DMA_0 
XFER_PIO_6 
XFER_PIO_5 
XFER_PIO_4 
XFER_PIO_3 
XFER_PIO_2 
XFER_PIO_1 
XFER_PIO_0 
XFER_PIO_SLOW 
SETFEATURES_WC_ON 
SETFEATURES_WC_OFF 
SETFEATURES_AAM_ON 
SETFEATURES_AAM_OFF 
SETFEATURES_SPINUP 
SETFEATURES_SATA_ENABLE 
SETFEATURES_SATA_DISABLE 
SATA_FPDMA_OFFSET 
SATA_FPDMA_AA 
SATA_DIPM 
SATA_FPDMA_IN_ORDER 
SATA_AN 
SATA_SSP 
SATA_DEVSLP 
ATA_SET_MAX_ADDR 
ATA_SET_MAX_PASSWD 
ATA_SET_MAX_LOCK 
ATA_SET_MAX_UNLOCK 
ATA_SET_MAX_FREEZE_LOCK 
ATA_DCO_RESTORE 
ATA_DCO_FREEZE_LOCK 
ATA_DCO_IDENTIFY 
ATA_DCO_SET 
ATA_SMART_ENABLE 
ATA_SMART_READ_VALUES 
ATA_SMART_READ_THRESHOLDS 
ATA_DSM_TRIM 
ATA_SMART_LBAM_PASS 
ATA_SMART_LBAH_PASS 
ATAPI_PKT_DMA 
ATAPI_DMADIR 
ATAPI_CDB_LEN 
SATA_PMP_MAX_PORTS 
SATA_PMP_CTRL_PORT 
SATA_PMP_GSCR_DWORDS 
SATA_PMP_GSCR_PROD_ID 
SATA_PMP_GSCR_REV 
SATA_PMP_GSCR_PORT_INFO 
SATA_PMP_GSCR_ERROR 
SATA_PMP_GSCR_ERROR_EN 
SATA_PMP_GSCR_FEAT 
SATA_PMP_GSCR_FEAT_EN 
SATA_PMP_PSCR_STATUS 
SATA_PMP_PSCR_ERROR 
SATA_PMP_PSCR_CONTROL 
SATA_PMP_FEAT_BIST 
SATA_PMP_FEAT_PMREQ 
SATA_PMP_FEAT_DYNSSC 
SATA_PMP_FEAT_NOTIFY 
ATA_CBL_NONE 
ATA_CBL_PATA40 
ATA_CBL_PATA80 
ATA_CBL_PATA40_SHORT 
ATA_CBL_PATA_UNK 
ATA_CBL_PATA_IGN 
ATA_CBL_SATA 
SCR_STATUS 
SCR_ERROR 
SCR_CONTROL 
SCR_ACTIVE 
SCR_NOTIFICATION 
SERR_DATA_RECOVERED 
SERR_COMM_RECOVERED 
SERR_DATA 
SERR_PERSISTENT 
SERR_PROTOCOL 
SERR_INTERNAL 
SERR_PHYRDY_CHG 
SERR_PHY_INT_ERR 
SERR_COMM_WAKE 
SERR_10B_8B_ERR 
SERR_DISPARITY 
SERR_CRC 
SERR_HANDSHAKE 
SERR_LINK_SEQ_ERR 
SERR_TRANS_ST_ERROR 
SERR_UNRECOG_FIS 
SERR_DEV_XCHG 
ATA_TFLAG_LBA48 
ATA_TFLAG_ISADDR 
ATA_TFLAG_DEVICE 
ATA_TFLAG_WRITE 
ATA_TFLAG_LBA 
ATA_TFLAG_FUA 
ATA_TFLAG_POLLING 
ATA_PROT_FLAG_PIO 
ATA_PROT_FLAG_DMA 
ATA_PROT_FLAG_DATA 
ATA_PROT_FLAG_NCQ 
ATA_PROT_FLAG_ATAPI 

Definition at line 41 of file ata.h.

enum ata_ioctls
Enumerator:
ATA_IOC_GET_IO32 
ATA_IOC_SET_IO32 

Definition at line 477 of file ata.h.

Enumerator:
ATA_PROT_UNKNOWN 
ATA_PROT_NODATA 
ATA_PROT_PIO 
ATA_PROT_DMA 
ATA_PROT_NCQ 
ATAPI_PROT_NODATA 
ATAPI_PROT_PIO 
ATAPI_PROT_DMA 

Definition at line 465 of file ata.h.