$NetBSD: patch-af,v 1.2 2005/11/03 10:54:17 agc Exp $

--- src/disk.c	8 Oct 2005 22:21:15 -0000	1.1.1.1
+++ src/disk.c	8 Oct 2005 23:37:34 -0000	1.3
@@ -58,9 +58,15 @@
 #include <unistd.h>
 #endif
 #endif
-#ifndef FreeBSD
+
+#ifdef __linux__
 #include <scsi/scsi.h>
 #endif
+
+#ifdef __NetBSD__
+#include "scsi_cmd_codes.h"
+#endif
+
 #include "iscsi.h"
 #include "util.h"
 #include "device.h"
@@ -272,8 +278,13 @@
 
       TRACE(TRACE_SCSI_CMD, "READ_CAPACITY\n");
       data = args->send_data;
-      *((unsigned *) data) = HTONL(disk_num_blocks-1);   // Max LBA
-      *((unsigned *) (data+4)) = HTONL(disk_block_len);  // Block len
+      {
+	uint32_t	maxLBA;
+
+      maxLBA = (disk_num_blocks - 1);   /*  Max LBA */
+      *((unsigned *) data) = ISCSI_HTONL(maxLBA);   /*  Max LBA */
+      }
+      *((unsigned *) (data+4)) = ISCSI_HTONL(disk_block_len);  /*  Block len */
       args->input = 8;
       args->length = 8;
       args->status = 0;
@@ -281,7 +292,7 @@
 
     case WRITE_6:
 
-      lba = NTOHL(*((unsigned *)cdb))&0x001fffff;
+      lba = ISCSI_NTOHL(*((unsigned *)cdb))&0x001fffff;
       len = cdb[4];
       if (!len) len = 256;
       TRACE(TRACE_SCSI_CMD, "WRITE_6(lba %u, len %u blocks)\n", lba, len);
@@ -295,7 +306,7 @@
 
     case READ_6:
 
-      lba = NTOHL(*((unsigned *)cdb))&0x001fffff;
+      lba = ISCSI_NTOHL(*((unsigned *)cdb))&0x001fffff;
       len = cdb[4];
       if (!len) len = 256;
       TRACE(TRACE_SCSI_CMD, "READ_6(lba %u, len %u blocks)\n", lba, len);
@@ -372,6 +383,17 @@
 	  args->status = 0;
 	  break;
 
+	case REPORT_LUNS:
+		TRACE(TRACE_SCSI_CMD, "REPORT LUNS\n");
+		data = args->send_data;
+		data[3] = CONFIG_DISK_MAX_LUNS;
+			/* just report the maximum (CONFIG_DISK_MAX_LUNS) to the initiator */
+		args->input = 8;
+		args->length = 16;
+		args->status = 0;
+		break;
+
+
     default:
       //TRACE_ERROR("UNKNOWN OPCODE 0x%x\n", cdb[0]); // comment to not cause confusion with some initiator
       args->status = 0x02;
