<def f='src/src/sys/dev/ata/atavar.h' l='237' ll='277'/>
<size>56</size>
<doc f='src/src/sys/dev/ata/atavar.h' l='224'>/*
 * ATA/ATAPI commands description
 *
 * This structure defines the interface between the ATA/ATAPI device driver
 * and the controller for short commands. It contains the command&apos;s parameter,
 * the length of data to read/write (if any), and a function to call upon
 * completion.
 * If no sleep is allowed, the driver can poll for command completion.
 * Once the command completed, if the error registered is valid, the flag
 * AT_ERROR is set and the error register value is copied to r_error .
 * A separate interface is needed for read/write or ATAPI packet commands
 * (which need multiple interrupts per commands).
 */</doc>
<mbr r='ata_command::r_lba' o='0' t='__uint64_t'/>
<mbr r='ata_command::r_count' o='64' t='__uint16_t'/>
<mbr r='ata_command::r_device' o='104' t='__uint8_t'/>
<mbr r='ata_command::r_st_bmask' o='112' t='__uint8_t'/>
<mbr r='ata_command::r_st_pmask' o='120' t='__uint8_t'/>
<mbr r='ata_command::flags' o='128' t='volatile __uint16_t'/>
<mbr r='ata_command::timeout' o='160' t='int'/>
<mbr r='ata_command::data' o='192' t='void *'/>
<mbr r='ata_command::bcount' o='256' t='int'/>
<mbr r='ata_command::callback' o='320' t='void (*)(void *)'/>
<mbr r='ata_command::callback_arg' o='384' t='void *'/>
