summary refs log tree commit diff stats
path: root/util/scsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/scsi.c')
-rw-r--r--util/scsi.c90
1 files changed, 0 insertions, 90 deletions
diff --git a/util/scsi.c b/util/scsi.c
deleted file mode 100644
index 472293d59b..0000000000
--- a/util/scsi.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *  SCSI helpers
- *
- *  Copyright 2017 Red Hat, Inc.
- *
- *  Authors:
- *   Fam Zheng <famz@redhat.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- */
-
-#include "qemu/osdep.h"
-#include "scsi/scsi.h"
-
-int scsi_sense_to_errno(int key, int asc, int ascq)
-{
-    switch (key) {
-    case 0x00: /* NO SENSE */
-    case 0x01: /* RECOVERED ERROR */
-    case 0x06: /* UNIT ATTENTION */
-        /* These sense keys are not errors */
-        return 0;
-    case 0x0b: /* COMMAND ABORTED */
-        return ECANCELED;
-    case 0x02: /* NOT READY */
-    case 0x05: /* ILLEGAL REQUEST */
-    case 0x07: /* DATA PROTECTION */
-        /* Parse ASCQ */
-        break;
-    default:
-        return EIO;
-    }
-    switch ((asc << 8) | ascq) {
-    case 0x1a00: /* PARAMETER LIST LENGTH ERROR */
-    case 0x2000: /* INVALID OPERATION CODE */
-    case 0x2400: /* INVALID FIELD IN CDB */
-    case 0x2600: /* INVALID FIELD IN PARAMETER LIST */
-        return EINVAL;
-    case 0x2100: /* LBA OUT OF RANGE */
-    case 0x2707: /* SPACE ALLOC FAILED */
-        return ENOSPC;
-    case 0x2500: /* LOGICAL UNIT NOT SUPPORTED */
-        return ENOTSUP;
-    case 0x3a00: /* MEDIUM NOT PRESENT */
-    case 0x3a01: /* MEDIUM NOT PRESENT TRAY CLOSED */
-    case 0x3a02: /* MEDIUM NOT PRESENT TRAY OPEN */
-        return ENOMEDIUM;
-    case 0x2700: /* WRITE PROTECTED */
-        return EACCES;
-    case 0x0401: /* NOT READY, IN PROGRESS OF BECOMING READY */
-        return EAGAIN;
-    case 0x0402: /* NOT READY, INITIALIZING COMMAND REQUIRED */
-        return ENOTCONN;
-    default:
-        return EIO;
-    }
-}
-
-int scsi_sense_buf_to_errno(const uint8_t *sense, size_t sense_size)
-{
-    int key, asc, ascq;
-    if (sense_size < 1) {
-        return EIO;
-    }
-    switch (sense[0]) {
-    case 0x70: /* Fixed format sense data. */
-        if (sense_size < 14) {
-            return EIO;
-        }
-        key = sense[2] & 0xF;
-        asc = sense[12];
-        ascq = sense[13];
-        break;
-    case 0x72: /* Descriptor format sense data. */
-        if (sense_size < 4) {
-            return EIO;
-        }
-        key = sense[1] & 0xF;
-        asc = sense[2];
-        ascq = sense[3];
-        break;
-    default:
-        return EIO;
-        break;
-    }
-    return scsi_sense_to_errno(key, asc, ascq);
-}