ata_cmd
struct ata_cmd ata_cmd;
ata_cmd.command = ata_pass_16->command;
ata_cmd.control = ata_pass_16->control;
ata_cmd.features = ata_pass_16->features;
ata_op_string(&ata_cmd),
warn("error sending ATA %s via pass_16", ata_op_string(&ata_cmd));
warnx("ATA %s via pass_16 failed", ata_op_string(&ata_cmd));
struct ata_cmd cmd;
ata_cmd_string(struct ata_cmd *cmd, char *cmd_string, size_t len)
ata_cmd_sbuf(struct ata_cmd *cmd, struct sbuf *sb)
ata_op_string(struct ata_cmd *cmd)
char * ata_op_string(struct ata_cmd *cmd);
char * ata_cmd_string(struct ata_cmd *cmd, char *cmd_string, size_t len);
void ata_cmd_sbuf(struct ata_cmd *cmd, struct sbuf *sb);
char cdb_str[(sizeof(struct ata_cmd) * 3) + 1];
struct ata_cmd cmd; /* ATA command register set */
struct ata_pass_16 *ata_cmd;
ata_cmd = (struct ata_pass_16 *)&csio->cdb_io.cdb_bytes;
ata_cmd->opcode = ATA_PASS_16;
ata_cmd->protocol = protocol;
ata_cmd->flags = ata_flags;
ata_cmd->features_ext = features >> 8;
ata_cmd->features = features;
ata_cmd->sector_count_ext = sector_count >> 8;
ata_cmd->sector_count = sector_count;
ata_cmd->lba_low = lba;
ata_cmd->lba_mid = lba >> 8;
ata_cmd->lba_high = lba >> 16;
ata_cmd->device = ATA_DEV_LBA;
ata_cmd->lba_low_ext = lba >> 24;
ata_cmd->lba_mid_ext = lba >> 32;
ata_cmd->lba_high_ext = lba >> 40;
ata_cmd->device |= (lba >> 24) & 0x0f;
ata_cmd->command = command;
ata_cmd->control = control;
sizeof(*ata_cmd),
struct ata_cmd *cmd = &ccb->ataio.cmd;