SCSI 프로그래밍에 익숙하지 않아서 기본적인 질문을해서 죄송합니다. SCSI 조회 명령을 6 바이트 CDB를 통해 테이프 장치로 보냈습니다.SCSI 문의 데이터
ccb = (Exec_IO_CCB *) (buffer + header_size);
ccb-> ccb_length = sizeof (Exec_IO_CCB);
ccb-> cam_opcode = 0x1;
ccb-> connect_id = 0;
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;
/* 메시지 cam_flags 및 CDB를 세트 [0] */
ccb-> cam_flags = NO_DATA;
ccb-> cdb [0] = INQUIRY;/* 0x12 문의 명령 용 SCSI Opcode */
ccb-> cdb [1] = 0;
ccb-> cdb [2] = 0;
ccb-> cdb [3] = 0;
ccb-> cdb [4] = 3200;
ccb-> cdb [5] = 0;
SCSI 명령이 성공적으로 수행되었습니다. 내가 얻을 수있는 INQUIRY 명령의 출력을 어떻게 캡처합니까? 공급 업체 ID/제품 ID ??
제가
타입 정의 구조체 {
long ccb_address; /* Address of this CCB */
short ccb_length; /* CAM Control Block Length */
char cam_opcode; /* CAM Operation Code */
char status; /* CAM Status */
long connect_id; /* Connect ID - no fields supported */
long cam_flags; /* CAM Flags */
long pd_pointer; /* Peripheral driver pointer */
long next_ccb_ptr; /* Next CCB Pointer */
long req_map_info; /* Request mapping information */
long call_on_comp; /* Callback on completion */
long data_buf_ptr; /* Data Buffer Pointer */
long data_xfer_length; /* Data transfer length */
long sense_buf_ptr; /* Sense information buffer pointer */
char sense_buf_length; /* Sense information buffer length */
char cdb_length; /* Command Descriptor Block (CDB) **
** length */
short num_sg_entries; /* Number of scatter/gather entries */
long vendor_unique; /* Vendor Unique field */
char scsi_status; /* SCSI status */
char auto_resid; /* Auto sense residual length */
short reserved; /* Reserved */
long resid_length; /* Residual length */
char cdb[12]; /* Command Descriptor Block (CDB) */
long time_out; /* Time-out value */
long msg_buf_ptr; /* Message buffer pointer */
short msg_buf_length; /* Message buffer length */
short vu_flags; /* Vendor-unique flags */
char tag_queue_act; /* Tagged Queue action */
char tag_id; /* Tag ID (target only) */
char init_id; /* Initiator ID (target only) */
char reserved2; /* Reserved */
} Exec_IO_CCB를 다음과 같이은/O 버퍼 SCSI I 실행 선언;
이 구조는 절대로 SCSI 출력을 캡처하지 않습니까?
다음과 같이 문의 구조를 선언했습니다. 하지만 Inquire 명령을 수행하는 방법을 잘 모릅니다. 채우기 Inquiry_Data 구조 데이터 ??
타입 정의 구조체 {
short data_valid; /* Flag that indicates whether or not the */
/* structure has been filled in with */
/* inquiry data from the device. */
byte periph_qual;
byte periph_dev_type;
byte rmb;
byte iso_version;
byte ecma_version;
byte ansi_version;
byte resp_data_format;
byte rel_adr;
byte sync;
byte linked;
byte cmd_que;
byte sft_rst;
char vendor_id[9];
char prod_id[17];
char prod_rev[5];
char reserved;
Inquiry_Data};
위의 질문 조회 명령의 출력을 캡처하는 데 도움이 될 수 있습니까 ?? – arun