diff options
Diffstat (limited to 'sg_cmds_basic.c')
-rw-r--r-- | sg_cmds_basic.c | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/sg_cmds_basic.c b/sg_cmds_basic.c index a9651d1a..d9613e14 100644 --- a/sg_cmds_basic.c +++ b/sg_cmds_basic.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999-2006 Douglas Gilbert. + * Copyright (c) 1999-2007 Douglas Gilbert. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -40,14 +40,12 @@ #include <stdlib.h> #include <string.h> #include <unistd.h> -#include <errno.h> -#include <sys/ioctl.h> #include "sg_lib.h" #include "sg_cmds_basic.h" #include "sg_pt.h" -static char * version_str = "1.35 20061012"; +static char * version_str = "1.38 20070124"; #define SENSE_BUFF_LEN 32 /* Arbitrary, could be larger */ @@ -244,7 +242,7 @@ int sg_ll_inquiry(int sg_fd, int cmddt, int evpd, int pg_op, fprintf(sg_warnings_strm, "\n"); } if (resp && (mx_resp_len > 0)) { - up = resp; + up = (unsigned char *)resp; up[0] = 0x7f; /* defensive prefill */ if (mx_resp_len > 4) up[4] = 0; @@ -256,7 +254,7 @@ int sg_ll_inquiry(int sg_fd, int cmddt, int evpd, int pg_op, } set_scsi_pt_cdb(ptvp, inqCmdBlk, sizeof(inqCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_in(ptvp, resp, mx_resp_len); + set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "inquiry", res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); @@ -570,7 +568,7 @@ int sg_ll_readcap_16(int sg_fd, int pmi, unsigned long long llba, } set_scsi_pt_cdb(ptvp, rcCmdBlk, sizeof(rcCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_in(ptvp, resp, mx_resp_len); + set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "read capacity (16)", res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); @@ -636,7 +634,7 @@ int sg_ll_readcap_10(int sg_fd, int pmi, unsigned int lba, } set_scsi_pt_cdb(ptvp, rcCmdBlk, sizeof(rcCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_in(ptvp, resp, mx_resp_len); + set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "read capacity (10)", res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); @@ -703,7 +701,7 @@ int sg_ll_mode_sense6(int sg_fd, int dbd, int pc, int pg_code, int sub_pg_code, } set_scsi_pt_cdb(ptvp, modesCmdBlk, sizeof(modesCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_in(ptvp, resp, mx_resp_len); + set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "mode sense (6)", res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); @@ -730,7 +728,7 @@ int sg_ll_mode_sense6(int sg_fd, int dbd, int pc, int pg_code, int sub_pg_code, if ((verbose > 2) && (ret > 0)) { fprintf(sg_warnings_strm, " mode sense (6): response%s\n", (ret > 256 ? ", first 256 bytes" : "")); - dStrHex(resp, (ret > 256 ? 256 : ret), -1); + dStrHex((const char *)resp, (ret > 256 ? 256 : ret), -1); } ret = 0; } @@ -777,7 +775,7 @@ int sg_ll_mode_sense10(int sg_fd, int llbaa, int dbd, int pc, int pg_code, } set_scsi_pt_cdb(ptvp, modesCmdBlk, sizeof(modesCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_in(ptvp, resp, mx_resp_len); + set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "mode sense (10)", res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); @@ -804,7 +802,7 @@ int sg_ll_mode_sense10(int sg_fd, int llbaa, int dbd, int pc, int pg_code, if ((verbose > 2) && (ret > 0)) { fprintf(sg_warnings_strm, " mode sense (10): response%s\n", (ret > 256 ? ", first 256 bytes" : "")); - dStrHex(resp, (ret > 256 ? 256 : ret), -1); + dStrHex((const char *)resp, (ret > 256 ? 256 : ret), -1); } ret = 0; } @@ -852,7 +850,7 @@ int sg_ll_mode_select6(int sg_fd, int pf, int sp, void * paramp, } set_scsi_pt_cdb(ptvp, modesCmdBlk, sizeof(modesCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_out(ptvp, paramp, param_len); + set_scsi_pt_data_out(ptvp, (unsigned char *)paramp, param_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "mode select (6)", res, 0, sense_b, noisy, verbose, &sense_cat); @@ -923,7 +921,7 @@ int sg_ll_mode_select10(int sg_fd, int pf, int sp, void * paramp, } set_scsi_pt_cdb(ptvp, modesCmdBlk, sizeof(modesCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_out(ptvp, paramp, param_len); + set_scsi_pt_data_out(ptvp, (unsigned char *)paramp, param_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "mode select (10)", res, 0, sense_b, noisy, verbose, &sense_cat); @@ -1008,7 +1006,7 @@ int sg_mode_page_offset(const unsigned char * resp, int resp_len, * SG_LIB_CAT_ILLEGAL_REQ -> bad field in cdb, SG_LIB_CAT_UNIT_ATTENTION, * SG_LIB_CAT_NOT_READY -> device not ready, * SG_LIB_CAT_MALFORMED -> bad response, -1 -> other failure. - * If success_mask pointer is not NULL then zeroes it then sets bit 0, 1, + * If success_mask pointer is not NULL then zeros it then sets bit 0, 1, * 2 and/or 3 if the current, changeable, default and saved values * respectively have been fetched. If error on current page * then stops and returns that error; otherwise continues if an error is @@ -1152,7 +1150,7 @@ int sg_ll_request_sense(int sg_fd, int desc, void * resp, int mx_resp_len, } set_scsi_pt_cdb(ptvp, rsCmdBlk, sizeof(rsCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_in(ptvp, resp, mx_resp_len); + set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "request sense", res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); @@ -1190,7 +1188,8 @@ int sg_ll_request_sense(int sg_fd, int desc, void * resp, int mx_resp_len, /* Invokes a SCSI REPORT LUNS command. Return of 0 -> success, * SG_LIB_CAT_INVALID_OP -> Report Luns not supported, * SG_LIB_CAT_ILLEGAL_REQ -> bad field in cdb, - * SG_LIB_CAT_ABORTED_COMMAND, -1 -> other failure */ + * SG_LIB_CAT_ABORTED_COMMAND, + * SG_LIB_NOT_READY (shouldn't happen), -1 -> other failure */ int sg_ll_report_luns(int sg_fd, int select_report, void * resp, int mx_resp_len, int noisy, int verbose) { @@ -1221,7 +1220,7 @@ int sg_ll_report_luns(int sg_fd, int select_report, void * resp, } set_scsi_pt_cdb(ptvp, rlCmdBlk, sizeof(rlCmdBlk)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); - set_scsi_pt_data_in(ptvp, resp, mx_resp_len); + set_scsi_pt_data_in(ptvp, (unsigned char *)resp, mx_resp_len); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); ret = sg_cmds_process_resp(ptvp, "report luns", res, mx_resp_len, sense_b, noisy, verbose, &sense_cat); @@ -1232,13 +1231,13 @@ int sg_ll_report_luns(int sg_fd, int select_report, void * resp, case SG_LIB_CAT_INVALID_OP: case SG_LIB_CAT_ILLEGAL_REQ: case SG_LIB_CAT_ABORTED_COMMAND: + case SG_LIB_CAT_NOT_READY: /* shouldn't happen ?? */ ret = sense_cat; break; case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_NO_SENSE: ret = 0; break; - case SG_LIB_CAT_NOT_READY: /* shouldn't happen ?? */ default: ret = -1; break; |