Lines Matching refs:cmd

54 	scsi_cmd_inquiry* cmd = (scsi_cmd_inquiry*)ccb->cdb;
55 memset(cmd, 0, sizeof(scsi_cmd_inquiry));
56 cmd->opcode = SCSI_OP_INQUIRY;
57 cmd->lun = ccb->target_lun;
58 cmd->evpd = 1;
59 cmd->page_code = page;
64 cmd->allocation_length = length;
118 scsi_cmd_prevent_allow cmd;
122 memset(&cmd, 0, sizeof(cmd));
123 cmd.opcode = SCSI_OP_PREVENT_ALLOW;
124 cmd.prevent = prevent;
126 return periph_simple_exec(device, (uint8 *)&cmd, sizeof(cmd), NULL, 0,
133 raw_command(scsi_periph_device_info *device, raw_device_command *cmd)
144 bool dataIn = (cmd->flags & B_RAW_DEVICE_DATA_IN) != 0;
145 bool dataOut = !dataIn && cmd->data_length != 0;
147 void* buffer = cmd->data;
151 buffer = malloc(cmd->data_length);
158 && user_memcpy(buffer, cmd->data, cmd->data_length) != B_OK) {
176 request->data_length = cmd->data_length;
178 request->timeout = cmd->timeout;
180 memcpy(request->cdb, cmd->command, SCSI_MAX_CDB_SIZE);
181 request->cdb_length = cmd->command_length;
188 cmd->cam_status = request->subsys_status;
189 cmd->scsi_status = request->device_status;
192 && cmd->sense_data != NULL) {
193 size_t length = min_c(cmd->sense_data_length,
195 if (IS_USER_ADDRESS(cmd->sense_data)) {
196 if (user_memcpy(cmd->sense_data, request->sense, length) != B_OK)
201 memcpy(cmd->sense_data, request->sense, length);
205 if (dataIn && user_memcpy(cmd->data, buffer, cmd->data_length) != B_OK)
208 if ((cmd->flags & B_RAW_DEVICE_REPORT_RESIDUAL) != 0) {
212 cmd->data_length = cmd->data_length - request->data_resid;
213 cmd->sense_data_length = SCSI_MAX_SENSE_SIZE - request->sense_resid;
288 scsi_cmd_rw_6 *cmd = (scsi_cmd_rw_6 *)request->cdb;
292 memset(cmd, 0, sizeof(*cmd));
293 cmd->opcode = isWrite ? SCSI_OP_WRITE_6 : SCSI_OP_READ_6;
294 cmd->high_lba = (pos >> 16) & 0x1f;
295 cmd->mid_lba = (pos >> 8) & 0xff;
296 cmd->low_lba = pos & 0xff;
297 cmd->length = numBlocks;
299 request->cdb_length = sizeof(*cmd);
301 scsi_cmd_rw_10 *cmd = (scsi_cmd_rw_10 *)request->cdb;
305 memset(cmd, 0, sizeof(*cmd));
306 cmd->opcode = isWrite ? SCSI_OP_WRITE_10 : SCSI_OP_READ_10;
307 cmd->relative_address = 0;
308 cmd->force_unit_access = 0;
309 cmd->disable_page_out = 0;
310 cmd->lba = B_HOST_TO_BENDIAN_INT32(pos);
311 cmd->length = B_HOST_TO_BENDIAN_INT16(numBlocks);
313 request->cdb_length = sizeof(*cmd);
315 scsi_cmd_rw_12 *cmd = (scsi_cmd_rw_12 *)request->cdb;
317 memset(cmd, 0, sizeof(*cmd));
318 cmd->opcode = isWrite ? SCSI_OP_WRITE_12 : SCSI_OP_READ_12;
319 cmd->relative_address = 0;
320 cmd->force_unit_access = 0;
321 cmd->disable_page_out = 0;
322 cmd->lba = B_HOST_TO_BENDIAN_INT32(pos);
323 cmd->length = B_HOST_TO_BENDIAN_INT32(numBlocks);
325 request->cdb_length = sizeof(*cmd);
327 scsi_cmd_rw_16 *cmd = (scsi_cmd_rw_16 *)request->cdb;
329 memset(cmd, 0, sizeof(*cmd));
330 cmd->opcode = isWrite ? SCSI_OP_WRITE_16 : SCSI_OP_READ_16;
331 cmd->force_unit_access_non_volatile = 0;
332 cmd->force_unit_access = 0;
333 cmd->disable_page_out = 0;
334 cmd->lba = B_HOST_TO_BENDIAN_INT64(offset);
335 cmd->length = B_HOST_TO_BENDIAN_INT32(numBlocks);
337 request->cdb_length = sizeof(*cmd);