"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/sg_zone.c" between
sg3_utils-1.47r908.tgz and sg3_utils-1.47r915.tar.xz

About: sg3_utils contains utilities that send SCSI commands to devices. Beta version.

sg_zone.c  (sg3_utils-1.47r908.tgz):sg_zone.c  (sg3_utils-1.47r915.tar.xz)
skipping to change at line 40 skipping to change at line 40
#include "sg_unaligned.h" #include "sg_unaligned.h"
#include "sg_pr2serr.h" #include "sg_pr2serr.h"
/* A utility program originally written for the Linux OS SCSI subsystem. /* A utility program originally written for the Linux OS SCSI subsystem.
* *
* *
* This program issues a SCSI CLOSE ZONE, FINISH ZONE or OPEN ZONE command * This program issues a SCSI CLOSE ZONE, FINISH ZONE or OPEN ZONE command
* to the given SCSI device. Based on zbc-r04c.pdf . * to the given SCSI device. Based on zbc-r04c.pdf .
*/ */
static const char * version_str = "1.15 20210122"; static const char * version_str = "1.16 20210830";
#define SG_ZONING_OUT_CMDLEN 16 #define SG_ZONING_OUT_CMDLEN 16
#define CLOSE_ZONE_SA 0x1 #define CLOSE_ZONE_SA 0x1
#define FINISH_ZONE_SA 0x2 #define FINISH_ZONE_SA 0x2
#define OPEN_ZONE_SA 0x3 #define OPEN_ZONE_SA 0x3
#define SEQUENTIALIZE_ZONE_SA 0x10 #define SEQUENTIALIZE_ZONE_SA 0x10
#define REM_ELEM_MOD_ZONES_SA 0x1a /* uses SERVICE ACTION IN(16) */ #define REM_ELEM_MOD_ZONES_SA 0x1a /* uses SERVICE ACTION IN(16) */
#define SENSE_BUFF_LEN 64 /* Arbitrary, could be larger */ #define SENSE_BUFF_LEN 64 /* Arbitrary, could be larger */
#define DEF_PT_TIMEOUT 60 /* 60 seconds */ #define DEF_PT_TIMEOUT 60 /* 60 seconds */
skipping to change at line 72 skipping to change at line 72
{"reset_all", no_argument, 0, 'R'}, {"reset_all", no_argument, 0, 'R'},
{"sequentialize", no_argument, 0, 'S'}, {"sequentialize", no_argument, 0, 'S'},
{"verbose", no_argument, 0, 'v'}, {"verbose", no_argument, 0, 'v'},
{"version", no_argument, 0, 'V'}, {"version", no_argument, 0, 'V'},
{"zone", required_argument, 0, 'z'}, {"zone", required_argument, 0, 'z'},
{0, 0, 0, 0}, {0, 0, 0, 0},
}; };
/* Indexed by service action */ /* Indexed by service action */
static const char * sa_name_arr[] = { static const char * sa_name_arr[] = {
"no SA=0", /* 0x0 */ "no SA=0", /* 0x0 */
"Close zone", "Close zone",
"Finish zone", "Finish zone",
"Open zone", "Open zone",
"-", "-", "-", "-", "-", "-", "-", "-",
"Zone activate", /* 0x8 */ "Zone activate", /* 0x8 */
"-", "-", "-", "-", "-", "-", "-", "-",
"-", "-",
"-", "-",
"-", "-",
"Sequentialize zone", /* 0x10 */ "Sequentialize zone", /* 0x10 */
skipping to change at line 166 skipping to change at line 166
ptvp = construct_scsi_pt_obj(); ptvp = construct_scsi_pt_obj();
if (NULL == ptvp) { if (NULL == ptvp) {
pr2serr("%s: out of memory\n", b); pr2serr("%s: out of memory\n", b);
return -1; return -1;
} }
set_scsi_pt_cdb(ptvp, zo_cdb, sizeof(zo_cdb)); set_scsi_pt_cdb(ptvp, zo_cdb, sizeof(zo_cdb));
set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b)); set_scsi_pt_sense(ptvp, sense_b, sizeof(sense_b));
res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose); res = do_scsi_pt(ptvp, sg_fd, DEF_PT_TIMEOUT, verbose);
ret = sg_cmds_process_resp(ptvp, b, res, noisy, ret = sg_cmds_process_resp(ptvp, b, res, noisy,
verbose, &sense_cat); verbose, &sense_cat);
if (-1 == ret) if (-1 == ret) {
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp)); if (get_scsi_pt_transport_err(ptvp))
else if (-2 == ret) { ret = SG_LIB_TRANSPORT_ERROR;
else
ret = sg_convert_errno(get_scsi_pt_os_err(ptvp));
} else if (-2 == ret) {
switch (sense_cat) { switch (sense_cat) {
case SG_LIB_CAT_RECOVERED: case SG_LIB_CAT_RECOVERED:
case SG_LIB_CAT_NO_SENSE: case SG_LIB_CAT_NO_SENSE:
ret = 0; ret = 0;
break; break;
default: default:
ret = sense_cat; ret = sense_cat;
break; break;
} }
} else } else
 End of changes. 3 change blocks. 
5 lines changed or deleted 8 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)