Lines Matching defs:args

361 	u8 args[4], *argbuf = NULL;
370 if (copy_from_user(args, arg, sizeof(args)))
376 if (args[3]) {
377 argsize = ATA_SECT_SIZE * args[3];
396 scsi_cmd[4] = args[2];
397 if (args[0] == ATA_CMD_SMART) { /* hack -- ide driver does this too */
398 scsi_cmd[6] = args[3];
399 scsi_cmd[8] = args[1];
403 scsi_cmd[6] = args[1];
405 scsi_cmd[14] = args[0];
427 args[0] = desc[13]; /* status */
428 args[1] = desc[3]; /* error */
429 args[2] = desc[5]; /* sector count (0:7) */
430 if (copy_to_user(arg, args, sizeof(args)))
442 && copy_to_user(arg + sizeof(args), argbuf, argsize))
465 u8 args[7];
472 if (copy_from_user(args, arg, sizeof(args)))
480 scsi_cmd[4] = args[1];
481 scsi_cmd[6] = args[2];
482 scsi_cmd[8] = args[3];
483 scsi_cmd[10] = args[4];
484 scsi_cmd[12] = args[5];
485 scsi_cmd[13] = args[6] & 0x4f;
486 scsi_cmd[14] = args[0];
508 args[0] = desc[13]; /* status */
509 args[1] = desc[3]; /* error */
510 args[2] = desc[5]; /* sector count (0:7) */
511 args[3] = desc[7]; /* lbal */
512 args[4] = desc[9]; /* lbam */
513 args[5] = desc[11]; /* lbah */
514 args[6] = desc[12]; /* select */
515 if (copy_to_user(arg, args, sizeof(args)))
1819 * @args: device IDENTIFY data / SCSI command of interest.
1832 static void ata_scsi_rbuf_fill(struct ata_scsi_args *args,
1833 unsigned int (*actor)(struct ata_scsi_args *args, u8 *rbuf))
1837 struct scsi_cmnd *cmd = args->cmd;
1841 rc = actor(args, rbuf);
1850 * @args: device IDENTIFY data / SCSI command of interest.
1859 static unsigned int ata_scsiop_inq_std(struct ata_scsi_args *args, u8 *rbuf)
1901 if (ata_id_removable(args->id) ||
1902 (args->dev->link->ap->pflags & ATA_PFLAG_EXTERNAL))
1905 if (args->dev->class == ATA_DEV_ZAC) {
1912 ata_id_string(args->id, &rbuf[16], ATA_ID_PROD, 16);
1915 ata_id_string(args->id, &rbuf[32], ATA_ID_FW_REV + 2, 4);
1917 ata_id_string(args->id, &rbuf[32], ATA_ID_FW_REV, 4);
1922 if (ata_id_zoned_cap(args->id) || args->dev->class == ATA_DEV_ZAC)
1932 * @args: device IDENTIFY data / SCSI command of interest.
1940 static unsigned int ata_scsiop_inq_00(struct ata_scsi_args *args, u8 *rbuf)
1955 if (!(args->dev->flags & ATA_DFLAG_ZAC))
1964 * @args: device IDENTIFY data / SCSI command of interest.
1972 static unsigned int ata_scsiop_inq_80(struct ata_scsi_args *args, u8 *rbuf)
1982 ata_id_string(args->id, (unsigned char *) &rbuf[4],
1989 * @args: device IDENTIFY data / SCSI command of interest.
2000 static unsigned int ata_scsiop_inq_83(struct ata_scsi_args *args, u8 *rbuf)
2012 ata_id_string(args->id, (unsigned char *) rbuf + num,
2024 ata_id_string(args->id, (unsigned char *) rbuf + num, ATA_ID_PROD,
2027 ata_id_string(args->id, (unsigned char *) rbuf + num, ATA_ID_SERNO,
2031 if (ata_id_has_wwn(args->id)) {
2038 ata_id_string(args->id, (unsigned char *) rbuf + num,
2048 * @args: device IDENTIFY data / SCSI command of interest.
2056 static unsigned int ata_scsiop_inq_89(struct ata_scsi_args *args, u8 *rbuf)
2077 memcpy(&rbuf[60], &args->id[0], 512);
2081 static unsigned int ata_scsiop_inq_b0(struct ata_scsi_args *args, u8 *rbuf)
2083 struct ata_device *dev = args->dev;
2096 min_io_sectors = 1 << ata_id_log2_per_physical_sector(args->id);
2108 if (ata_id_has_trim(args->id)) {
2121 static unsigned int ata_scsiop_inq_b1(struct ata_scsi_args *args, u8 *rbuf)
2123 int form_factor = ata_id_form_factor(args->id);
2124 int media_rotation_rate = ata_id_rotation_rate(args->id);
2125 u8 zoned = ata_id_zoned_cap(args->id);
2138 static unsigned int ata_scsiop_inq_b2(struct ata_scsi_args *args, u8 *rbuf)
2148 static unsigned int ata_scsiop_inq_b6(struct ata_scsi_args *args, u8 *rbuf)
2159 if (args->dev->zac_zoned_cap & 1)
2161 put_unaligned_be32(args->dev->zac_zones_optimal_open, &rbuf[8]);
2162 put_unaligned_be32(args->dev->zac_zones_optimal_nonseq, &rbuf[12]);
2163 put_unaligned_be32(args->dev->zac_zones_max_open, &rbuf[16]);
2284 * @args: device IDENTIFY data / SCSI command of interest.
2294 static unsigned int ata_scsiop_mode_sense(struct ata_scsi_args *args, u8 *rbuf)
2296 struct ata_device *dev = args->dev;
2297 u8 *scsicmd = args->cmd->cmnd, *p = rbuf;
2352 p += ata_msense_caching(args->id, p, page_control == 1);
2356 p += ata_msense_control(args->dev, p, page_control == 1);
2361 p += ata_msense_caching(args->id, p, page_control == 1);
2362 p += ata_msense_control(args->dev, p, page_control == 1);
2371 if (ata_dev_supports_fua(args->id) && (dev->flags & ATA_DFLAG_LBA48) &&
2396 ata_scsi_set_invalid_field(dev, args->cmd, fp, bp);
2400 ata_scsi_set_sense(dev, args->cmd, ILLEGAL_REQUEST, 0x39, 0x0);
2407 * @args: device IDENTIFY data / SCSI command of interest.
2415 static unsigned int ata_scsiop_read_cap(struct ata_scsi_args *args, u8 *rbuf)
2417 struct ata_device *dev = args->dev;
2429 if (args->cmd->cmnd[0] == READ_CAPACITY) {
2466 if (ata_id_has_trim(args->id) &&
2470 if (ata_id_has_zero_after_trim(args->id) &&
2476 if (ata_id_zoned_cap(args->id) ||
2477 args->dev->class == ATA_DEV_ZAC)
2485 * @args: device IDENTIFY data / SCSI command of interest.
2493 static unsigned int ata_scsiop_report_luns(struct ata_scsi_args *args, u8 *rbuf)
3295 * @args: device MAINTENANCE_IN data / SCSI command of interest.
3303 static unsigned int ata_scsiop_maint_in(struct ata_scsi_args *args, u8 *rbuf)
3305 struct ata_device *dev = args->dev;
3306 u8 *cdb = args->cmd->cmnd;
4168 struct ata_scsi_args args;
4172 args.dev = dev;
4173 args.id = dev->id;
4174 args.cmd = cmd;
4181 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_std);
4184 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_00);
4187 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_80);
4190 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_83);
4193 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_89);
4196 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_b0);
4199 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_b1);
4202 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_b2);
4206 ata_scsi_rbuf_fill(&args, ata_scsiop_inq_b6);
4218 ata_scsi_rbuf_fill(&args, ata_scsiop_mode_sense);
4222 ata_scsi_rbuf_fill(&args, ata_scsiop_read_cap);
4227 ata_scsi_rbuf_fill(&args, ata_scsiop_read_cap);
4233 ata_scsi_rbuf_fill(&args, ata_scsiop_report_luns);
4263 ata_scsi_rbuf_fill(&args, ata_scsiop_maint_in);