public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 19/19] Target_Core_Mod Makefile/Kconfig and div64.c
@ 2009-09-12  1:58 Nicholas A. Bellinger
  2009-09-13  9:51 ` Boaz Harrosh
  0 siblings, 1 reply; 4+ messages in thread
From: Nicholas A. Bellinger @ 2009-09-12  1:58 UTC (permalink / raw)
  To: LKML, linux-scsi
  Cc: Andrew Morton, Greg KH, Douglas Gilbert, James Bottomley,
	Hannes Reinecke, FUJITA Tomonori, Mike Christie, Joel Becker,
	Martin K. Petersen, Christoph Hellwig, Linus Torvalds, Alan Stern,
	Boaz Harrosh, Florian Haas, Philipp Reisner

[RFC PATCH 19/19] Target_Core_Mod Makefile/Kconfig and div64.c

This patch adds the remaining misc Makefile and Kconfig changes

It also has wrappers for unsigned long division in div64c, that will be converted to
include/asm-generic/div64.h

Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
diff --git a/drivers/target/div64.c b/drivers/target/div64.c
new file mode 100644
index 0000000..6d59864
--- /dev/null
+++ b/drivers/target/div64.c
@@ -0,0 +1,16 @@
+#include <asm/types.h>
+#include <asm/div64.h>
+
+#if BITS_PER_LONG == 32
+
+u64 __udivdi3(u64 a, u64 b)
+{
+  do_div(a, b);
+  return a;
+}
+
+u64 __umoddi3(u64 a, u64 b)
+{
+  return do_div(a, b);
+}
+#endif
diff --git a/drivers/target/Makefile b/drivers/target/Makefile
new file mode 100644
index 0000000..3e413b0
--- /dev/null
+++ b/drivers/target/Makefile
@@ -0,0 +1,96 @@
+CWD=$(shell pwd)
+
+PYX_ISCSI_VENDOR ?="Linux-iSCSI.org"
+
+# Transport Plugins and Devices.
+ #
+LINUX_PARALLEL_SCSI ?= 1
+LINUX_STGT ?= 1
+LINUX_SCSI_MEDIA_ROM ?= 1
+LINUX_PARALLEL_ATA ?= 0
+LINUX_IBLOCK ?= 1
+LINUX_RAMDISK ?= 1
+LINUX_FILEIO ?= 1
+
+LINUX_VPD_PAGE_CHECK?=1
+LIO_TARGET_CONFIGFS?=1
+
+MODVER ?= 1
+USEGDB ?= 1
+DEBUG_DEV ?= 0
+SNMP_FEATURE ?= 1
+
+obj-$(CONFIG_TARGET_CORE)		+=	target_core_mod.o
+target_core_mod-objs			:=	target_core_configfs.o \
+						target_core_device.o \
+						target_core_hba.o \
+						target_core_plugin.o \
+						target_core_pr.o \
+						target_core_alua.o \
+						target_core_scdb.o \
+						target_core_seobj.o \
+						target_core_tmr.o \
+						target_core_tpg.o \
+						target_core_transport.o \
+						target_core_ua.o \
+						div64.o
+
+ifeq ($(LINUX_IBLOCK), 1)
+target_core_mod-objs			+=	target_core_iblock.o
+EXTRA_CFLAGS				+=	-DPYX_IBLOCK
+endif
+ifeq ($(LINUX_PARALLEL_SCSI), 1)
+target_core_mod-objs			+=	target_core_pscsi.o
+EXTRA_CFLAGS				+=	-DPARALLEL_SCSI
+endif
+ifeq ($(LINUX_STGT), 1)
+target_core_mod-objs			+=	target_core_stgt.o
+EXTRA_CFLAGS				+=	-DSTGT_PLUGIN
+endif
+ifeq ($(LINUX_RAMDISK), 1)
+target_core_mod-objs			+=	target_core_rd.o
+EXTRA_CFLAGS				+=	-DPYX_RAMDISK
+endif
+ifeq ($(LINUX_FILEIO), 1)
+target_core_mod-objs			+=	target_core_file.o
+EXTRA_CFLAGS				+=	-DPYX_FILEIO
+endif
+ifeq ($(SNMP_FEATURE), 1)
+target_core_mod-objs			+=	target_core_mib.o
+EXTRA_CFLAGS				+=	-DSNMP_SUPPORT
+endif
+ifeq ($(LINUX_VPD_PAGE_CHECK), 1)
+EXTRA_CFLAGS += -DLINUX_VPD_PAGE_CHECK
+endif
+ifeq ($(LINUX_SCSI_MEDIA_ROM), 1)
+EXTRA_CFLAGS += -DLINUX_SCSI_MEDIA_ROM
+endif
+ifeq ($(DEBUG_DEV), 1)
+EXTRA_CFLAGS += -DDEBUG_DEV
+endif
+
+
+EXTRA_CFLAGS+=-I$(CWD)/drivers/target/ -I$(CWD)/drivers/scsi/
+EXTRA_CFLAGS+=-D_TARGET -DLINUX -DLINUX_KERNEL_26 -DLINUX_SCSI_HOST_LOCK -DLINUX_USE_SIGHAND
+EXTRA_CFLAGS+=-DLINUX_SCATTERLIST_HAS_PAGE -DPYX_ISCSI_VENDOR='"Linux-iSCSI.org"'
+
+all:
+	$(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(CWD) modules CWD=$(CWD) ARCH=$(ARCH) KBUILD_VERBOSE=0
+
+install ins:
+	rm -f /lib/modules/`uname -r`/kernel/drivers/scsi/iscsi_target_mod.ko
+	rm -f /lib/modules/`uname -r`/kernel/drivers/iscsi/iscsi_target_mod.ko
+	mkdir -p /lib/modules/`uname -r`/kernel/drivers/iscsi
+	cp -f iscsi_target_mod.ko /lib/modules/`uname -r`/kernel/drivers/iscsi
+	cp -f target_core_mod.ko /lib/modules/`uname -r`/kernel/drivers/iscsi
+	depmod -ae
+
+
+
+clean:
+	rm -f $(foreach prog,$(target_core_mod-objs) $(obj-m),$(CWD)/$(prog)) $(CWD)/target_core_mod.mod.o
+	rm -f target_core_mod.ko target_core_mod.mod.c
+	rm -f .*.cmd ../common/.*.cmd .make_autoconfig *~
+	rm -fr .tmp_versions
+
+
diff --git a/drivers/target/Kconfig b/drivers/target/Kconfig
new file mode 100644
index 0000000..04564f1
--- /dev/null
+++ b/drivers/target/Kconfig
@@ -0,0 +1,7 @@
+config TARGET_CORE
+        tristate "Generic Target Core Engine and ConfigFS Infrastructure"
+	select CONFIGFS_FS
+	select SCSI_TGT
+        default m
+        ---help---
+        Say Y here to enable the Storage Engine, Subsystem Plugins, and ConfigFS enabled control path for the Generic Target Engine.



^ permalink raw reply related	[flat|nested] 4+ messages in thread
* [RFC PATCH 19/19] Target_Core_Mod Makefile/Kconfig and div64.c
@ 2009-09-18 22:09 Nicholas A. Bellinger
  0 siblings, 0 replies; 4+ messages in thread
From: Nicholas A. Bellinger @ 2009-09-18 22:09 UTC (permalink / raw)
  To: LKML, linux-scsi
  Cc: Andrew Morton, Greg KH, Douglas Gilbert, James Bottomley,
	Hannes Reinecke, FUJITA Tomonori, Mike Christie, Joel Becker,
	Martin K. Petersen, Christoph Hellwig, Linus Torvalds, Alan Stern,
	Boaz Harrosh, Florian Haas, Philipp Reisner, Lars Ellenberg,
	Daniel Walker

[RFC PATCH 19/19] Target_Core_Mod Makefile/Kconfig and div64.c

This patch adds the remaining Kbuild and Kconfig items for TCM

Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
 
diff --git a/drivers/target/Kbuild b/drivers/target/Kbuild
new file mode 100644
index 0000000..4dd0f53
--- /dev/null
+++ b/drivers/target/Kbuild
@@ -0,0 +1,54 @@
+EXTRA_CFLAGS += -I$(srctree)/drivers/target/ -I$(srctree)/drivers/scsi/
+
+target_core_mod-y		:= target_core_configfs.o \
+				   target_core_device.o \
+				   target_core_hba.o \
+				   target_core_plugin.o \
+				   target_core_pr.o \
+				   target_core_alua.o \
+				   target_core_scdb.o \
+				   target_core_seobj.o \
+				   target_core_tmr.o \
+				   target_core_tpg.o \
+				   target_core_transport.o \
+				   target_core_ua.o
+
+ifdef CONFIG_TCM_IBLOCK
+target_core_mod-y		+= target_core_iblock.o
+EXTRA_CFLAGS			+= -DPYX_IBLOCK
+endif
+
+ifdef CONFIG_TCM_PSCSI
+target_core_mod-y		+= target_core_pscsi.o
+EXTRA_CFLAGS			+= -DPARALLEL_SCSI
+endif
+
+ifdef CONFIG_TCM_STGT
+target_core_mod-y		+= target_core_stgt.o
+EXTRA_CFLAGS			+= -DSTGT_PLUGIN
+endif
+
+ifdef CONFIG_TCM_RAMDISK
+target_core_mod-y		+= target_core_rd.o
+EXTRA_CFLAGS			+= -DPYX_RAMDISK
+endif
+
+ifdef CONFIG_TCM_FILEIO
+target_core_mod-y		+= target_core_file.o
+EXTRA_CFLAGS			+= -DPYX_FILEIO
+endif
+
+ifdef CONFIG_TCM_SNMP
+target_core_mod-y		+= target_core_mib.o
+EXTRA_CFLAGS			+= -DSNMP_SUPPORT
+endif
+
+ifdef CONFIG_TCM_PSCSI_VPD_PAGE_CHECK
+EXTRA_CFLAGS			+= -DLINUX_VPD_PAGE_CHECK
+endif
+
+ifdef CONFIG_TCM_DEBUG_DEV
+EXTRA_CFLAGS			+= -DDEBUG_DEV
+endif
+
+obj-$(CONFIG_TARGET_CORE)	+= target_core_mod.o
diff --git a/drivers/target/Kconfig b/drivers/target/Kconfig
new file mode 100644
index 0000000..607036e
--- /dev/null
+++ b/drivers/target/Kconfig
@@ -0,0 +1,64 @@
+config TARGET_CORE
+        tristate "Generic Target Core Mod (TCM) and ConfigFS Infrastructure"
+	select CONFIGFS_FS
+        default m
+        ---help---
+        Say Y or M here to enable the TCM Storage Engine and ConfigFS enabled control path for target_core_mod
+
+config TCM_IBLOCK
+	tristate "TCM/IBLOCK Subsystem Plugin for Linux/BLOCK"
+	depends on TARGET_CORE
+	default y
+	---help---
+	Say Y here to enable the TCM/IBLOCK subsystem plugin for non-buffered access to Linux/Block devices using BIO in TCM
+
+config TCM_PSCSI
+	tristate "TCM/pSCSI Subsystem Plugin for Linux/SCSI"
+	depends on TARGET_CORE
+	default y
+	---help---
+	Say Y here to enable the TCM/pSCSI subsystem plugin for non-buffered passthrough access to Linux/SCSI devices in TCM	
+
+config TCM_PSCSI_VPD_PAGE_CHECK
+	tristate "TCM/pSCSI EVPD Page Emulation for Linux/SCSI"
+	depends on TARGET_CORE && TCM_PSCSI
+	default y
+	---help---
+	Say Y here to enable the TCM/pSCSI EVPD emulation that is required to register emulated SCSI LUNs on some non Linux OSes when using the Linux/SCSI passthrough for certain devices.
+
+config TCM_FILEIO
+	tristate "TCM/FILEIO Subsystem Plugin for Linux/VFS"
+	depends on TARGET_CORE
+	default y
+	---help---
+	Say Y here to enable the TCM/FILEIO subsystem plugin for buffered access to Linux/VFS files or block devices in TCM
+
+config TCM_RAMDISK
+	tristate "TCM/RAMDISK Subsystem Plugin"
+	depends on TARGET_CORE
+	default y
+	---help---
+	Say Y here to enable the TCM/RAMDISK subsystem plugins for internal struct page ramdisk device access for performance testing and debugging
+
+config TCM_STGT
+	tristate "TCM/STGT Subsystem Plugin"
+	depends on TARGET_CORE && EXPERIMENTAL
+	select SCSI_TGT
+	default y
+	---help---
+	Say Y here to enable the WIP TCM/STGT subsystem plugin for accessing STGT device in TCM
+
+config TCM_SNMP
+	tristate "TCM SCSI MIBs"
+	depends on TARGET_CORE && PROC_FS
+	default y
+	---help---
+	Say Y here to enable the SCSI MIBs via procfs for TCM
+
+config TCM_DEBUG_DEV
+	tristate "TCM Debug device code"
+	depends on TARGET_CORE
+	default n
+	---help---
+	Say Y here to enable the TCM Debug device code
+	



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-09-18 22:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-12  1:58 [RFC PATCH 19/19] Target_Core_Mod Makefile/Kconfig and div64.c Nicholas A. Bellinger
2009-09-13  9:51 ` Boaz Harrosh
2009-09-14 19:57   ` Nicholas A. Bellinger
  -- strict thread matches above, loose matches on Subject: below --
2009-09-18 22:09 Nicholas A. Bellinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox