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