Lines Matching refs:com
97 struct DomainServerCommon *com;
167 DBG(1, "DomainSCSIOpen: dev='%s', fd=%d\n", com->open_path, fd);
168 len = strlen(com->open_path);
169 scsi_$acquire((char *)com->open_path, len, &scsi_handle, &com->CommandStatus);
170 if (com->CommandStatus.all != status_$ok)
173 DBG(1, "DomainSCSIOpen: acquire failed, Domain/OS status is %08x\n", com->CommandStatus.all);
174 error_$print(com->CommandStatus);
182 tmpnam(com->open_path);
183 DBG(2, "DomainSCSIOpen: Data block name will be '%s'\n", com->open_path);
184 DataBasePtr = ms_$crmapl(com->open_path, strlen(com->open_path), 0, DomainMaxDataSize + DomainSenseSize, ms_$cowriters, &com->CommandStatus);
185 DomainErrorCheck(com->CommandStatus, "Creating Data Area");
189 scsi_$wire(scsi_handle, (void *)DataBasePtr, DomainMaxDataSize + DomainSenseSize, &com->CommandStatus);
190 if (com->CommandStatus.all == status_$ok)
198 DBG(1, "Buffer wire failed, Domain/OS status is %08x\n", com->CommandStatus.all);
199 error_$print(com->CommandStatus);
222 com->fd = fd;
228 DomainFdInfo[com->fd].in_use = 0;
229 DBG(1, "sanei_scsi_close: fd=%d\n", com->fd);
231 scsi_$unwire(DomainFdInfo[com->fd].scsi_handle, DomainFdInfo[com->fd].DomainSCSIPtr, DomainMaxDataSize + DomainSenseSize, true, &com->CommandStatus);
232 DomainErrorCheck(com->CommandStatus, "Unwiring SCSI buffers");
234 scsi_$release(DomainFdInfo[com->fd].scsi_handle, &com->CommandStatus);
235 DomainErrorCheck(com->CommandStatus, "Releasing device");
237 ms_$unmap(DomainFdInfo[com->fd].DomainSCSIPtr, DomainMaxDataSize + DomainSenseSize, &com->CommandStatus);
238 DomainErrorCheck(com->CommandStatus, "Unmapping device data area");
266 wait_index = scsi_$wait(DomainFdInfo[com->fd].scsi_handle, DomainScsiTimeout, true, DomainFdInfo[com->fd].op_id, 1, status_list, &return_count, &com->CommandStatus);
267 DBG(2, " scsi_$wait returned status = %08x\n", com->CommandStatus.all);
268 if (com->CommandStatus.all == status_$ok)
281 com->CommandStatus.all = scsi_$operation_timeout;
315 com->CommandStatus.all = status_$ok | 0x80000000;
316 com->SCSIStatus = scsi_busy;
331 scsi_$do_command_2(DomainFdInfo[com->fd].scsi_handle, sense_cdb, sense_cdb_size, DomainFdInfo[com->fd].DomainSensePtr, DomainSenseSize, scsi_read, &sense_op_id, &sense_status);
333 scsi_$wait(DomainFdInfo[com->fd].scsi_handle, DomainScsiTimeout, true, sense_op_id, 1, status_list, &sense_return_count, &sense_status);
335 DBG(2, "Sense information: Error code=%02x, ASC=%02x, ASCQ=%02x\n", ((u_char *)DomainFdInfo[com->fd].DomainSensePtr)[0], ((char *)DomainFdInfo[com->fd].DomainSensePtr)[0xc], ((char *)DomainFdInfo[com->fd].DomainSensePtr)[0xd]);
338 DBG(2, " %02x", ((u_char *)DomainFdInfo[com->fd].DomainSensePtr)[temp]);
342 if ((((char *)DomainFdInfo[com->fd].DomainSensePtr)[0] == 0xf0) && (((char *)DomainFdInfo[com->fd].DomainSensePtr)[2] & 0x20) && (com->cdb.g0.cmd == 0x28))
346 DBG(2, "Shortening destination length by %x bytes\n", *(int *)(((char *)DomainFdInfo[com->fd].DomainSensePtr)+3));
347 com->dst_size -= *(int *)(((char *)DomainFdInfo[com->fd].DomainSensePtr)+3);
348 DBG(2, "Final dest size is %x\n", com->dst_size);
353 com->CommandStatus.all = status_$ok | 0x80000000;
354 com->SCSIStatus = scsi_check_condition;
369 com->CommandStatus = status_list[count].cmd_status;
378 if (com->direction == scsi_read)
381 for (return_count = 0; return_count < com->dst_size; return_count++)
382 DBG(3, "%02X%c", ((unsigned char *)DomainFdInfo[com->fd].DomainSCSIPtr)[return_count], (return_count % 16) == 15 ? '\n' : ' ');
389 DBG(1, "scsi_$wait failed, status is %08x\n", com->CommandStatus.all);
399 DBG(1, "Entering DomainSCSIEnter, fd=%d, opcode=%02X\n", com->fd, com->cdb.all[0]);
401 for (count = 0; count < com->cdb_size; count++)
402 DBG(2, " %02X", com->cdb.all[count]);
404 DBG(2, "Buffer address is 0x%08x\n", DomainFdInfo[com->fd].DomainSCSIPtr);
405 DBG(2, "Buffer size is %x\n", com->buf_size);
406 DBG(2, "Direction is %s\n", (com->direction == scsi_read) ? "READ" : "WRITE");
408 scsi_$do_command_2(DomainFdInfo[com->fd].scsi_handle, com->cdb, com->cdb_size, DomainFdInfo[com->fd].DomainSCSIPtr, com->buf_size, com->direction, &DomainFdInfo[com->fd].op_id, &com->CommandStatus);
409 if (com->CommandStatus.all == status_$ok)
412 DBG(2, " scsi_$do_command_2 was successful, op_id is %x\n", DomainFdInfo[com->fd].op_id);
426 DBG(1, " scsi_$do_command_2 failed, status is %08x\n", com->CommandStatus.all);
449 com = ms_$mapl(path, strlen(path), 0, sizeof(struct DomainServerCommon), ms_$cowriters, ms_$wr, true, &length_mapped, &status);
458 ms_$mk_temporary(com, &status);
462 ec2_$advance(&com->ResultReady, &status);
465 CommandAvailablePtr[0] = &com->CommandAvailable;
466 CommandTriggerValue = ec2_$read(com->CommandAvailable) + 1;
485 CommandTriggerValue = ec2_$read(com->CommandAvailable) + 1;
487 DBG(2, "Received a command - opcode is %x\n", com->opcode);
488 switch(com->opcode)
492 ec2_$advance(&com->CommandAccepted, &status);
497 ec2_$advance(&com->CommandAccepted, &status);
502 ec2_$advance(&com->CommandAccepted, &status);
509 ec2_$advance(&com->CommandAccepted, &status);
513 DBG(1, "Invalid command %x received\n", com->opcode);
521 ms_$unmap(com, sizeof(struct DomainServerCommon), &status);