Я новичок в программировании SCSI CDB. У меня есть некоторый кусок кода, написанного для команды записи с помощью 6byte CDBСоздание SCSI 10 байт CDB
ccb = (Exec_IO_CCB *)(buffer + header_size);
ccb->ccb_length = sizeof(Exec_IO_CCB);
ccb->cam_opcode = 0x1;
ccb->connect_id = 0;
ccb->data_buf_ptr = (long)(header_size + ccb->ccb_length + MAX_SENSE_LEN);
ccb->data_xfer_length = (long)(XFER_BUFSIZE - ccb->data_buf_ptr);
ccb->sense_buf_ptr = (long)(header_size + ccb->ccb_length);
ccb->sense_buf_length = MAX_SENSE_LEN;
ccb->time_out = CAM_TIMEOUT;
ccb->cdb_length = 6;
ccb->cam_flags = DATA_OUT;
ccb->cdb[0] = 0xA; /* 0xA SCSI Opcode for write operation */
ccb->cdb[1] = 0;
ccb->cdb[2] = (ccb->data_xfer_length & 0xFF0000) >> 16;
ccb->cdb[3] = (ccb->data_xfer_length & 0xFF00) >> 8;
ccb->cdb[4] = (ccb->data_xfer_length & 0xFF);
ccb->cdb[5] = 0;
Из приведенного выше кода, я не понимаю, как CDB [2] и CDB [3] получены?
В аналогичной строке я пытаюсь разработать 10 байт CDB для команды записи. Как заполнить данные для cdb [2-5], на которые приходится LBA?
ccb->cam_flags = DATA_OUT;
ccb->cdb[0] = 0x2A; /* 0x2A SCSI Opcode for write10 CDB */
ccb->cdb[1] = 0;
ccb->cdb[2] = ??
ccb->cdb[3] = ??
ccb->cdb[4] = ??
ccb->cdb[5] = ??
ccb->cdb[6] = 0;
ccb->cdb[7] = (ccb->data_xfer_length & 0xFF);
ccb->cdb[8] = (ccb->data_xfer_length & 0xFF);
ccb->cdb[9] = 0;
Большое спасибо за информацию. – arun
Я не мог открыть документ. Извините, что снова задал основной вопрос. Я не получил большую ясность в отношении cdb [2] и cdb [3]? ccb-> cdb [2] = (ccb-> data_xfer_length & 0xFF0000) >> 16; ccb-> cdb [3] = (ccb-> data_xfer_length & 0xFF00) >> 8; – arun
ok .. Получил смысл. Теперь я построил 10 байт. Напишите CDB ccb-> cam_flags = DATA_OUT; ccb-> cdb [0] = 0x2A; ccb-> cdb [1] = 0; ccb-> cdb [2] = 0; ccb-> cdb [3] = 0; ccb-> cdb [4] = 0; ccb-> cdb [5] = 2048; ccb-> cdb [6] = 0; \t ccb-> cdb [7] = (ccb-> data_xfer_length & 0xFF); \t ccb-> cdb [8] = (ccb-> data_xfer_length & 0xFF); \t ccb-> cdb [9] = 0; Теперь я планирую писать на 2048-м LBA, и поэтому я разместил его на cdb [5]. Надеюсь, я прав. – arun