148 lines
4.1 KiB
Plaintext
148 lines
4.1 KiB
Plaintext
diff --git a/usr/ibmvio/ibmvio.c b/usr/ibmvio/ibmvio.c
|
|
index ff91f14..c21b8e1 100644
|
|
--- a/usr/ibmvio/ibmvio.c
|
|
+++ b/usr/ibmvio/ibmvio.c
|
|
@@ -35,9 +35,9 @@ #include <stdint.h>
|
|
#include <syscall.h>
|
|
#include <unistd.h>
|
|
#include <linux/fs.h>
|
|
-#include <scsi/scsi.h>
|
|
#include <sys/mman.h>
|
|
|
|
+#include "scsi.h"
|
|
#include "list.h"
|
|
#include "util.h"
|
|
#include "tgtd.h"
|
|
diff --git a/usr/iscsi/iscsid.c b/usr/iscsi/iscsid.c
|
|
index 0a2578a..4d5afb4 100644
|
|
--- a/usr/iscsi/iscsid.c
|
|
+++ b/usr/iscsi/iscsid.c
|
|
@@ -17,9 +17,9 @@ #include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
-#include <scsi/scsi.h>
|
|
#include <sys/epoll.h>
|
|
|
|
+#include "scsi.h"
|
|
#include "iscsid.h"
|
|
#include "tgtd.h"
|
|
#include "util.h"
|
|
diff --git a/usr/scsi.h b/usr/scsi.h
|
|
index f70dfd7..d8a607a 100644
|
|
--- a/usr/scsi.h
|
|
+++ b/usr/scsi.h
|
|
@@ -100,6 +100,9 @@ #define SAM_STAT_TASK_SET_FULL 0x28
|
|
#define SAM_STAT_ACA_ACTIVE 0x30
|
|
#define SAM_STAT_TASK_ABORTED 0x40
|
|
|
|
+/* This looks wrong */
|
|
+#define TASK_ABORTED 0x20
|
|
+
|
|
#define NO_SENSE 0x00
|
|
#define RECOVERED_ERROR 0x01
|
|
#define NOT_READY 0x02
|
|
@@ -133,16 +136,36 @@ #define TYPE_NO_LUN 0x7f
|
|
|
|
#define TYPE_SPT 0xff
|
|
|
|
-#define MSG_SIMPLE_TAG 0x20
|
|
-#define MSG_HEAD_TAG 0x21
|
|
-#define MSG_ORDERED_TAG 0x22
|
|
-
|
|
-#define ABORT_TASK 0x0d
|
|
+#define COMMAND_COMPLETE 0x00
|
|
+#define EXTENDED_MESSAGE 0x01
|
|
+#define EXTENDED_MODIFY_DATA_POINTER 0x00
|
|
+#define EXTENDED_SDTR 0x01
|
|
+#define EXTENDED_EXTENDED_IDENTIFY 0x02 /* SCSI-I only */
|
|
+#define EXTENDED_WDTR 0x03
|
|
+#define EXTENDED_PPR 0x04
|
|
+#define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05
|
|
+#define SAVE_POINTERS 0x02
|
|
+#define RESTORE_POINTERS 0x03
|
|
+#define DISCONNECT 0x04
|
|
+#define INITIATOR_ERROR 0x05
|
|
#define ABORT_TASK_SET 0x06
|
|
-#define CLEAR_ACA 0x16
|
|
+#define MESSAGE_REJECT 0x07
|
|
+#define NOP 0x08
|
|
+#define MSG_PARITY_ERROR 0x09
|
|
+#define LINKED_CMD_COMPLETE 0x0a
|
|
+#define LINKED_FLG_CMD_COMPLETE 0x0b
|
|
+#define TARGET_RESET 0x0c
|
|
+#define ABORT_TASK 0x0d
|
|
#define CLEAR_TASK_SET 0x0e
|
|
+#define INITIATE_RECOVERY 0x0f /* SCSI-II only */
|
|
+#define RELEASE_RECOVERY 0x10 /* SCSI-II only */
|
|
+#define CLEAR_ACA 0x16
|
|
#define LOGICAL_UNIT_RESET 0x17
|
|
-#define TASK_ABORTED 0x20
|
|
-#define SAM_STAT_TASK_ABORTED 0x40
|
|
+#define SIMPLE_QUEUE_TAG 0x20
|
|
+#define HEAD_OF_QUEUE_TAG 0x21
|
|
+#define ORDERED_QUEUE_TAG 0x22
|
|
+#define IGNORE_WIDE_RESIDUE 0x23
|
|
+#define ACA 0x24
|
|
+#define QAS_REQUEST 0x55
|
|
|
|
#endif
|
|
diff --git a/usr/target.c b/usr/target.c
|
|
index f48839e..7539daa 100644
|
|
--- a/usr/target.c
|
|
+++ b/usr/target.c
|
|
@@ -357,26 +357,26 @@ static int cmd_enabled(struct tgt_cmd_qu
|
|
{
|
|
int enabled = 0;
|
|
|
|
- if (cmd->attribute != MSG_SIMPLE_TAG)
|
|
+ if (cmd->attribute != SIMPLE_QUEUE_TAG)
|
|
dprintf("non simple attribute %" PRIx64 " %x %" PRIu64 " %d\n",
|
|
cmd->tag, cmd->attribute, cmd->dev ? cmd->dev->lun : UINT64_MAX,
|
|
q->active_cmd);
|
|
|
|
switch (cmd->attribute) {
|
|
- case MSG_SIMPLE_TAG:
|
|
+ case SIMPLE_QUEUE_TAG:
|
|
if (!queue_blocked(q))
|
|
enabled = 1;
|
|
break;
|
|
- case MSG_ORDERED_TAG:
|
|
+ case ORDERED_QUEUE_TAG:
|
|
if (!queue_blocked(q) && !queue_active(q))
|
|
enabled = 1;
|
|
break;
|
|
- case MSG_HEAD_TAG:
|
|
+ case HEAD_OF_QUEUE_TAG:
|
|
enabled = 1;
|
|
break;
|
|
default:
|
|
eprintf("unknown command attribute %x\n", cmd->attribute);
|
|
- cmd->attribute = MSG_ORDERED_TAG;
|
|
+ cmd->attribute = ORDERED_QUEUE_TAG;
|
|
if (!queue_blocked(q) && !queue_active(q))
|
|
enabled = 1;
|
|
}
|
|
@@ -388,8 +388,8 @@ static void cmd_post_perform(struct tgt_
|
|
{
|
|
q->active_cmd++;
|
|
switch (cmd->attribute) {
|
|
- case MSG_ORDERED_TAG:
|
|
- case MSG_HEAD_TAG:
|
|
+ case ORDERED_QUEUE_TAG:
|
|
+ case HEAD_OF_QUEUE_TAG:
|
|
set_queue_blocked(q);
|
|
break;
|
|
}
|
|
@@ -522,8 +522,8 @@ static void __cmd_done(struct target *ta
|
|
|
|
q->active_cmd--;
|
|
switch (cmd->attribute) {
|
|
- case MSG_ORDERED_TAG:
|
|
- case MSG_HEAD_TAG:
|
|
+ case ORDERED_QUEUE_TAG:
|
|
+ case HEAD_OF_QUEUE_TAG:
|
|
clear_queue_blocked(q);
|
|
break;
|
|
}
|