version 1.1.1.1, 2013/07/22 01:17:35
|
version 1.1.1.2, 2013/10/14 07:54:03
|
Line 356 int generic_areca_device::arcmsr_get_dev_type()
|
Line 356 int generic_areca_device::arcmsr_get_dev_type()
|
int ctlr_type = -1; |
int ctlr_type = -1; |
int encnum = get_encnum(); |
int encnum = get_encnum(); |
int disknum = get_disknum(); |
int disknum = get_disknum(); |
unsigned char areca_packet[] = {0x5E, 0x01, 0x61, 0x03, 0x00, 0x22, disknum - 1, encnum - 1, 0x00}; | unsigned char areca_packet[] = {0x5E, 0x01, 0x61, 0x03, 0x00, 0x22, |
| (unsigned char)(disknum - 1), (unsigned char)(encnum - 1), 0x00}; |
|
|
memset(return_buff, 0, sizeof(return_buff)); |
memset(return_buff, 0, sizeof(return_buff)); |
expected = arcmsr_ui_handler(areca_packet, sizeof(areca_packet), return_buff); |
expected = arcmsr_ui_handler(areca_packet, sizeof(areca_packet), return_buff); |
Line 612 bool generic_areca_device::arcmsr_scsi_pass_through(st
|
Line 613 bool generic_areca_device::arcmsr_scsi_pass_through(st
|
|
|
// ----- BEGIN TO SEND TO ARECA DRIVER ------ |
// ----- BEGIN TO SEND TO ARECA DRIVER ------ |
expected = arcmsr_ui_handler(areca_packet, areca_packet_len, return_buff); |
expected = arcmsr_ui_handler(areca_packet, areca_packet_len, return_buff); |
if ( expected < 0 ) | |
{ | if (expected < 0) |
return set_err(EIO); | return set_err(EIO, "arcmsr_scsi_pass_through: I/O error"); |
} | if (expected < 15) // 7 bytes if port is empty |
| return set_err(EIO, "arcmsr_scsi_pass_through: missing data (%d bytes, expected %d)", expected, 15); |
|
|
int scsi_status = return_buff[5]; |
int scsi_status = return_buff[5]; |
int in_data_len = return_buff[11] | return_buff[12] << 8 | return_buff[13] << 16 | return_buff[14] << 24; |
int in_data_len = return_buff[11] | return_buff[12] << 8 | return_buff[13] << 16 | return_buff[14] << 24; |