~ubuntu-branches/ubuntu/intrepid/sg3-utils/intrepid

« back to all changes in this revision

Viewing changes to archive/sgq_old_dd.c

  • Committer: Bazaar Package Importer
  • Author(s): Luk Claes
  • Date: 2006-11-05 17:23:29 UTC
  • mfrom: (1.1.4 upstream) (3.1.2 edgy)
  • Revision ID: james.westby@ubuntu.com-20061105172329-l4loha00sk36qz6k
* Non-maintainer upload.
* Fix FTBFS due to old syscall usage (Closes: #395512).

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
#include <sys/ioctl.h>
10
10
#include <sys/types.h>
11
11
#include <sys/stat.h>
12
 
#include "sg_include.h"
13
 
#include "sg_err.h"
 
12
#include "sg_lib.h"
 
13
#include "sg_linux_inc.h"
14
14
 
15
15
/* A utility program for the Linux OS SCSI generic ("sg") device driver.
16
16
*  Copyright (C) 1999 D. Gilbert and P. Allworth
143
143
        return -1;
144
144
    }
145
145
    res = sg_err_category3(&io_hdr);
146
 
    if (SG_ERR_CAT_MEDIA_CHANGED == res)
 
146
    if (SG_LIB_CAT_UNIT_ATTENTION == res)
147
147
        return 2; /* probably have another go ... */
148
 
    else if (SG_ERR_CAT_CLEAN != res) {
 
148
    else if (SG_LIB_CAT_CLEAN != res) {
149
149
        sg_chk_n_print3("read capacity", &io_hdr);
150
150
        return -1;
151
151
    }
253
253
        *repp = rep;
254
254
 
255
255
    switch (sg_err_category3(hp)) {
256
 
        case SG_ERR_CAT_CLEAN:
 
256
        case SG_LIB_CAT_CLEAN:
257
257
            break;
258
 
        case SG_ERR_CAT_RECOVERED:
 
258
        case SG_LIB_CAT_RECOVERED:
259
259
            printf("Recovered error on block=%d, num=%d\n",
260
260
                   rep->blk, rep->num_blks);
261
261
            break;
262
 
        case SG_ERR_CAT_MEDIA_CHANGED:
 
262
        case SG_LIB_CAT_UNIT_ATTENTION:
263
263
            return 1;
264
264
        default:
265
265
            sg_chk_n_print3(rep->wr ? "writing": "reading", hp);
295
295
    return 0;
296
296
}
297
297
 
298
 
int get_num(char * buf)
299
 
{
300
 
    int res, num;
301
 
    char c, cc;
302
 
 
303
 
    res = sscanf(buf, "%d%c", &num, &c);
304
 
    if (0 == res)
305
 
        return -1;
306
 
    else if (1 == res)
307
 
        return num;
308
 
    else {
309
 
        cc = (char)toupper(c);
310
 
        if ('B' == cc)
311
 
            return num * 512;
312
 
        else if ('C' == cc)
313
 
            return num;
314
 
        else if ('K' == cc)
315
 
            return num * 1024;
316
 
        else if ('M' == cc)
317
 
            return num * 1024 * 1024;
318
 
        else {
319
 
            printf("unrecognized multiplier\n");
320
 
            return -1;
321
 
        }
322
 
    }
323
 
}
324
 
 
325
298
void init_elems(Rq_coll * clp)
326
299
{
327
300
    Rq_elem * rep;
648
621
        else if (strcmp(key,"of") == 0)
649
622
            strcpy(outf, buf);
650
623
        else if (0 == strcmp(key,"ibs"))
651
 
            ibs = get_num(buf);
 
624
            ibs = sg_get_num(buf);
652
625
        else if (0 == strcmp(key,"obs"))
653
 
            obs = get_num(buf);
 
626
            obs = sg_get_num(buf);
654
627
        else if (0 == strcmp(key,"bs"))
655
 
            rcoll.bs = get_num(buf);
 
628
            rcoll.bs = sg_get_num(buf);
656
629
        else if (0 == strcmp(key,"bpt"))
657
 
            rcoll.bpt = get_num(buf);
 
630
            rcoll.bpt = sg_get_num(buf);
658
631
        else if (0 == strcmp(key,"skip"))
659
 
            skip = get_num(buf);
 
632
            skip = sg_get_num(buf);
660
633
        else if (0 == strcmp(key,"seek"))
661
 
            seek = get_num(buf);
 
634
            seek = sg_get_num(buf);
662
635
        else if (0 == strcmp(key,"count"))
663
 
            count = get_num(buf);
 
636
            count = sg_get_num(buf);
664
637
        else if (0 == strcmp(key,"dio"))
665
 
            rcoll.dio = get_num(buf);
 
638
            rcoll.dio = sg_get_num(buf);
666
639
        else if (0 == strcmp(key,"deb"))
667
 
            rcoll.debug = get_num(buf);
 
640
            rcoll.debug = sg_get_num(buf);
668
641
        else {
669
642
            printf("Unrecognized argument '%s'\n", key);
670
643
            usage();