Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/iscsi Start to move the in-kernel iSCSI initiator, k...



details:   https://anonhg.NetBSD.org/src/rev/24bfe69fb183
branches:  trunk
changeset: 770571:24bfe69fb183
user:      agc <agc%NetBSD.org@localhost>
date:      Sun Oct 23 21:15:02 2011 +0000

description:
Start to move the in-kernel iSCSI initiator, kindly contributed to the
NetBSD Foundation by Wasabi Systems, from

        othersrc/external/bsd/iscsi/sys/dev/iscsi

to

        src/sys/dev/iscsi

diffstat:

 sys/dev/iscsi/Makefile          |     7 +
 sys/dev/iscsi/base64.c          |   182 +++
 sys/dev/iscsi/base64.h          |    38 +
 sys/dev/iscsi/files.iscsi       |    19 +
 sys/dev/iscsi/iscsi.h           |   217 ++++
 sys/dev/iscsi/iscsi_globals.h   |   843 ++++++++++++++++++
 sys/dev/iscsi/iscsi_ioctl.c     |  1647 ++++++++++++++++++++++++++++++++++++
 sys/dev/iscsi/iscsi_ioctl.h     |   439 +++++++++
 sys/dev/iscsi/iscsi_main.c      |   580 ++++++++++++
 sys/dev/iscsi/iscsi_pdu.h       |   442 +++++++++
 sys/dev/iscsi/iscsi_perf.h      |   116 ++
 sys/dev/iscsi/iscsi_profile.c   |   251 +++++
 sys/dev/iscsi/iscsi_profile.h   |    89 +
 sys/dev/iscsi/iscsi_rcv.c       |  1220 ++++++++++++++++++++++++++
 sys/dev/iscsi/iscsi_send.c      |  1643 +++++++++++++++++++++++++++++++++++
 sys/dev/iscsi/iscsi_test.c      |  1087 +++++++++++++++++++++++
 sys/dev/iscsi/iscsi_test.h      |   264 +++++
 sys/dev/iscsi/iscsi_testlocal.h |   105 ++
 sys/dev/iscsi/iscsi_text.c      |  1780 +++++++++++++++++++++++++++++++++++++++
 sys/dev/iscsi/iscsi_utils.c     |   706 +++++++++++++++
 20 files changed, 11675 insertions(+), 0 deletions(-)

diffs (truncated from 11755 to 300 lines):

diff -r 317efd74169b -r 24bfe69fb183 sys/dev/iscsi/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/dev/iscsi/Makefile    Sun Oct 23 21:15:02 2011 +0000
@@ -0,0 +1,7 @@
+#      $wasabi: Makefile,v 1.2 2006/04/19 02:06:26 wrstuden Exp $
+
+INCSDIR= /usr/include/dev/iscsi
+
+INCS= iscsi.h iscsi_ioctl.h iscsi_test.h iscsi_perf.h
+
+.include <bsd.kinc.mk>
diff -r 317efd74169b -r 24bfe69fb183 sys/dev/iscsi/base64.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/dev/iscsi/base64.c    Sun Oct 23 21:15:02 2011 +0000
@@ -0,0 +1,182 @@
+/*     $NetBSD: base64.c,v 1.1 2011/10/23 21:15:02 agc Exp $   */
+
+/*-
+ * Copyright (c) 2005,2006,2011 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Wasabi Systems, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Adapted for kernel mode use with minimal changes from
+ * /usr/src/crypto/dist/heimdal/lib/roken/base64.c
+ *
+ * Original:
+ * Copyright (c) 1995-2001 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the Institute nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include "iscsi_globals.h"
+#include "base64.h"
+
+static char base64_chars[] =
+       "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+static int
+pos(char c)
+{
+       char *p;
+
+       for (p = base64_chars; *p; p++) {
+               if (*p == c) {
+                       return (int)(p - base64_chars);
+               }
+       }
+       return -1;
+}
+
+int
+base64_encode(const void *data, int size, uint8_t * buffer)
+{
+       uint8_t *p;
+       int i;
+       int c;
+       const uint8_t *q;
+
+       p = buffer;
+       q = (const uint8_t *) data;
+       *p++ = '0';
+       *p++ = 'b';
+
+       i = 0;
+       for (i = 0; i < size;) {
+               c = q[i++];
+               c *= 256;
+               if (i < size) {
+                       c += q[i];
+               }
+               i++;
+               c *= 256;
+               if (i < size) {
+                       c += q[i];
+               }
+               i++;
+               p[0] = base64_chars[(c & 0x00fc0000) >> 18];
+               p[1] = base64_chars[(c & 0x0003f000) >> 12];
+               p[2] = base64_chars[(c & 0x00000fc0) >> 6];
+               p[3] = base64_chars[(c & 0x0000003f) >> 0];
+               if (i > size) {
+                       p[3] = '=';
+               }
+               if (i > size + 1) {
+                       p[2] = '=';
+               }
+               p += 4;
+       }
+       *p = 0;
+       return strlen(buffer);
+}
+
+#define DECODE_ERROR 0xffffffff
+
+static uint32_t
+token_decode(uint8_t * token)
+{
+       int i;
+       uint32_t val = 0;
+       int marker = 0;
+
+       if (strlen(token) < 4) {
+               return DECODE_ERROR;
+       }
+       for (i = 0; i < 4; i++) {
+               val *= 64;
+               if (token[i] == '=') {
+                       marker++;
+               } else if (marker > 0) {
+                       return DECODE_ERROR;
+               } else {
+                       val += pos(token[i]);
+               }
+       }
+       if (marker > 2) {
+               return DECODE_ERROR;
+       }
+       return (marker << 24) | val;
+}
+
+
+uint8_t *
+base64_decode(uint8_t * str, void *data, int *datalen)
+{
+       uint8_t *p, *q;
+       uint32_t marker = 0;
+
+       q = data;
+       for (p = str; *p; p += 4) {
+               uint32_t val = token_decode(p);
+               marker = (val >> 24) & 0xff;
+               if (val == DECODE_ERROR) {
+                       return NULL;
+               }
+               *q++ = (val >> 16) & 0xff;
+               if (marker < 2) {
+                       *q++ = (val >> 8) & 0xff;
+               }
+               if (marker < 1) {
+                       *q++ = val & 0xff;
+               }
+       }
+       *datalen = (int)(q - (uint8_t *) data);
+
+       return p - marker + 1;
+}
diff -r 317efd74169b -r 24bfe69fb183 sys/dev/iscsi/base64.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/dev/iscsi/base64.h    Sun Oct 23 21:15:02 2011 +0000
@@ -0,0 +1,38 @@
+/*     $NetBSD: base64.h,v 1.1 2011/10/23 21:15:02 agc Exp $   */
+
+/*-
+ * Copyright (c) 2005,2006,2011 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Wasabi Systems, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* size of result string including term. zero and "0b" prefix */
+#define base64_enclen(size)   ((size) * 4 / 3 + 4 + 2)
+
+/* encode "size" bytes of "data" into "buffer" returning length */
+int base64_encode(const void *, int, uint8_t *);
+/* decode "str" into "data" returning end of source string */
+uint8_t *base64_decode(uint8_t *, void *, int *);
diff -r 317efd74169b -r 24bfe69fb183 sys/dev/iscsi/files.iscsi
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/dev/iscsi/files.iscsi Sun Oct 23 21:15:02 2011 +0000
@@ -0,0 +1,19 @@
+# $NetBSD: files.iscsi,v 1.1 2011/10/23 21:15:02 agc Exp $
+#
+# Configuration file for iSCSI initiator
+
+defpseudodev   iscsi : scsi
+
+defflag                ISCSI_DEBUG
+defflag                ISCSI_PERFTEST
+defflag                ISCSI_TEST_MODE
+
+file   dev/iscsi/base64.c              iscsi
+file   dev/iscsi/iscsi_ioctl.c         iscsi
+file   dev/iscsi/iscsi_main.c          iscsi
+file   dev/iscsi/iscsi_profile.c       iscsi
+file   dev/iscsi/iscsi_rcv.c           iscsi
+file   dev/iscsi/iscsi_send.c          iscsi
+file   dev/iscsi/iscsi_test.c          iscsi
+file   dev/iscsi/iscsi_text.c          iscsi
+file   dev/iscsi/iscsi_utils.c
diff -r 317efd74169b -r 24bfe69fb183 sys/dev/iscsi/iscsi.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/dev/iscsi/iscsi.h     Sun Oct 23 21:15:02 2011 +0000
@@ -0,0 +1,217 @@
+/*     $NetBSD: iscsi.h,v 1.1 2011/10/23 21:15:02 agc Exp $    */
+
+/*-
+ * Copyright (c) 2004,2006,2011 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Wasabi Systems, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef _ISCSI_H
+#define _ISCSI_H
+
+#define ISCSI_DEV_MAJOR    202



Home | Main Index | Thread Index | Old Index