• Home
  • Raw
  • Download

Lines Matching +full:foo +full:- +full:queue

1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 1999, 2001-2003 Hewlett-Packard Co
6 * David Mosberger-Tang <davidm@hpl.hp.com>
28 #define DEFAULT_SIMSCSI_ROOT "/var/ski-disks/sd"
65 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
70 } queue[SIMSCSI_REQ_QUEUE_LEN]; variable
82 * to use /foo/bar/disk[a-z] as disk images
83 * you have to specify simscsi=/foo/bar/disk on the command line
90 printk(KERN_ERR "simscsi_setup: prefix too long---using default %s\n", in simscsi_setup()
104 while ((sc = queue[rd].sc) != NULL) { in simscsi_interrupt()
106 queue[rd].sc = NULL; in simscsi_interrupt()
108 printk("simscsi_interrupt: done with %ld\n", sc->serial_number); in simscsi_interrupt()
109 (*sc->scsi_done)(sc); in simscsi_interrupt()
132 stat.fd = desc[sc->device->id]; in simscsi_sg_readwrite()
136 req.len = sl->length; in simscsi_sg_readwrite()
140 scsi_sg_count(sc) - i, sl->length); in simscsi_sg_readwrite()
146 sc->result = DID_ERROR << 16; in simscsi_sg_readwrite()
149 offset += sl->length; in simscsi_sg_readwrite()
151 sc->result = GOOD; in simscsi_sg_readwrite()
155 * function handling both READ_6/WRITE_6 (non-scatter/gather mode)
164 offset = (((sc->cmnd[1] & 0x1f) << 16) | (sc->cmnd[2] << 8) | sc->cmnd[3])*512; in simscsi_readwrite6()
184 ia64_ssc(fd, 1, __pa(&req), ((sectors | bit) - 1)*512, SSC_READ); in simscsi_get_disk_size()
190 return sectors - 1; /* return last valid sector number */ in simscsi_get_disk_size()
198 offset = (((unsigned long)sc->cmnd[2] << 24) in simscsi_readwrite10()
199 | ((unsigned long)sc->cmnd[3] << 16) in simscsi_readwrite10()
200 | ((unsigned long)sc->cmnd[4] << 8) in simscsi_readwrite10()
201 | ((unsigned long)sc->cmnd[5] << 0))*512UL; in simscsi_readwrite10()
208 unsigned int target_id = sc->device->id; in simscsi_queuecommand_lck()
218 target_id, sc->cmnd[0], sc->serial_number, sp, done); in simscsi_queuecommand_lck()
221 sc->result = DID_BAD_TARGET << 16; in simscsi_queuecommand_lck()
222 sc->scsi_done = done; in simscsi_queuecommand_lck()
223 if (target_id <= 15 && sc->device->lun == 0) { in simscsi_queuecommand_lck()
224 switch (sc->cmnd[0]) { in simscsi_queuecommand_lck()
239 buf[2] = 2; /* SCSI-2 compliant device */ in simscsi_queuecommand_lck()
240 buf[3] = 2; /* SCSI-2 response data format */ in simscsi_queuecommand_lck()
247 sc->result = GOOD; in simscsi_queuecommand_lck()
251 sc->result = GOOD; in simscsi_queuecommand_lck()
295 sc->result = GOOD; in simscsi_queuecommand_lck()
300 /* sd.c uses this to determine whether disk does write-caching. */ in simscsi_queuecommand_lck()
303 sc->result = GOOD; in simscsi_queuecommand_lck()
311 panic("simscsi: unknown SCSI command %u\n", sc->cmnd[0]); in simscsi_queuecommand_lck()
314 if (sc->result == DID_BAD_TARGET) { in simscsi_queuecommand_lck()
315 sc->result |= DRIVER_SENSE << 24; in simscsi_queuecommand_lck()
316 sc->sense_buffer[0] = 0x70; in simscsi_queuecommand_lck()
317 sc->sense_buffer[2] = 0x00; in simscsi_queuecommand_lck()
320 panic("Attempt to queue command while command is pending!!"); in simscsi_queuecommand_lck()
323 queue[wr].sc = sc; in simscsi_queuecommand_lck()
346 .this_id = -1,
360 return -ENOMEM; in simscsi_init()