Base files for new TTY driver.
--- a/Kbuild.in Mon Nov 23 11:55:25 2009 +0100
+++ b/Kbuild.in Mon Nov 30 18:02:29 2009 +0100
@@ -25,8 +25,14 @@
# EtherCAT technology and brand is only permitted in compliance with the
# industrial property and similar rights of Beckhoff Automation GmbH.
#
+# vi: syntax=make
+#
#------------------------------------------------------------------------------
obj-m := examples/ master/ devices/
+ifeq (@ENABLE_TTY@,1)
+ obj-m += tty/
+endif
+
#------------------------------------------------------------------------------
--- a/Makefile.am Mon Nov 23 11:55:25 2009 +0100
+++ b/Makefile.am Mon Nov 30 18:02:29 2009 +0100
@@ -43,6 +43,10 @@
SUBDIRS += lib
endif
+if ENABLE_TTY
+SUBDIRS += tty
+endif
+
# userspace example depends on lib/
SUBDIRS += examples
@@ -54,7 +58,8 @@
m4 \
master \
script \
- tool
+ tool \
+ tty
noinst_HEADERS = \
globals.h
--- a/configure.ac Mon Nov 23 11:55:25 2009 +0100
+++ b/configure.ac Mon Nov 30 18:02:29 2009 +0100
@@ -519,6 +519,29 @@
AM_CONDITIONAL(ENABLE_USERLIB, test "x$userlib" = "x1")
#------------------------------------------------------------------------------
+# TTY driver
+#------------------------------------------------------------------------------
+
+AC_ARG_ENABLE([tty],
+ AS_HELP_STRING([--enable-tty],
+ [Generation of the ec_tty module (default: no)]),
+ [
+ case "${enableval}" in
+ yes) tty=1
+ ;;
+ no) tty=0
+ ;;
+ *) AC_MSG_ERROR([Invalid value for --enable-tty])
+ ;;
+ esac
+ ],
+ [tty=0]
+)
+
+AM_CONDITIONAL(ENABLE_TTY, test "x$tty" = "x1")
+AC_SUBST(ENABLE_TTY,[$tty])
+
+#------------------------------------------------------------------------------
AC_CONFIG_FILES([
Doxyfile
@@ -548,6 +571,8 @@
script/init.d/ethercat
script/sysconfig/Makefile
tool/Makefile
+ tty/Makefile
+ tty/Kbuild
])
AC_OUTPUT
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tty/Kbuild.in Mon Nov 30 18:02:29 2009 +0100
@@ -0,0 +1,47 @@
+#------------------------------------------------------------------------------
+#
+# $Id$
+#
+# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
+#
+# This file is part of the IgH EtherCAT Master.
+#
+# The IgH EtherCAT Master is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License version 2, as
+# published by the Free Software Foundation.
+#
+# The IgH EtherCAT Master is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with the IgH EtherCAT Master; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# ---
+#
+# The license mentioned above concerns the source code only. Using the EtherCAT
+# technology and brand is only permitted in compliance with the industrial
+# property and similar rights of Beckhoff Automation GmbH.
+#
+# ---
+#
+# vi: syntax=make
+#
+#------------------------------------------------------------------------------
+
+obj-m := ec_tty.o
+
+ec_tty-objs := \
+ module.o
+
+REV := $(shell if test -s $(src)/../revision; then \
+ cat $(src)/../revision; \
+ else \
+ hg id -i $(src)/.. 2>/dev/null || echo "unknown"; \
+ fi)
+
+CFLAGS_module.o := -DREV=$(REV)
+
+#------------------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tty/Makefile.am Mon Nov 30 18:02:29 2009 +0100
@@ -0,0 +1,59 @@
+#------------------------------------------------------------------------------
+#
+# $Id$
+#
+# Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
+#
+# This file is part of the IgH EtherCAT Master.
+#
+# The IgH EtherCAT Master is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License version 2, as
+# published by the Free Software Foundation.
+#
+# The IgH EtherCAT Master is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with the IgH EtherCAT Master; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# ---
+#
+# The license mentioned above concerns the source code only. Using the
+# EtherCAT technology and brand is only permitted in compliance with the
+# industrial property and similar rights of Beckhoff Automation GmbH.
+#
+#------------------------------------------------------------------------------
+
+# using HEADERS to enable tags target
+noinst_HEADERS = \
+ module.c
+
+EXTRA_DIST = \
+ Kbuild.in
+
+BUILT_SOURCES = \
+ Kbuild
+
+modules:
+ $(MAKE) -C "$(LINUX_SOURCE_DIR)" M="@abs_srcdir@" modules
+
+modules_install:
+ mkdir -p $(DESTDIR)$(LINUX_MOD_PATH)
+ cp $(srcdir)/ec_tty.ko $(DESTDIR)$(LINUX_MOD_PATH)
+
+clean-local:
+ $(MAKE) -C "$(LINUX_SOURCE_DIR)" M="@abs_srcdir@" clean
+
+modulesdir=@prefix@/modules
+SYMVERS=`echo $(top_builddir)/Module*.symvers`
+
+install-data-local:
+ @test -n "$(SYMVERS)" && \
+ mkdir -p $(DESTDIR)$(modulesdir) && \
+ cp -vf $(SYMVERS) \
+ $(DESTDIR)$(modulesdir)/ec_tty.symvers
+
+#------------------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tty/module.c Mon Nov 30 18:02:29 2009 +0100
@@ -0,0 +1,98 @@
+/******************************************************************************
+ *
+ * $Id$
+ *
+ * Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH
+ *
+ * This file is part of the IgH EtherCAT Master.
+ *
+ * The IgH EtherCAT Master is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version 2, as
+ * published by the Free Software Foundation.
+ *
+ * The IgH EtherCAT Master is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with the IgH EtherCAT Master; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * ---
+ *
+ * The license mentioned above concerns the source code only. Using the
+ * EtherCAT technology and brand is only permitted in compliance with the
+ * industrial property and similar rights of Beckhoff Automation GmbH.
+ *
+ *****************************************************************************/
+
+/** \file
+ * EtherCAT tty driver module.
+ */
+
+/*****************************************************************************/
+
+#include <linux/module.h>
+#include <linux/err.h>
+
+#include "../master/globals.h"
+
+/*****************************************************************************/
+
+int __init ec_tty_init_module(void);
+void __exit ec_tty_cleanup_module(void);
+
+unsigned int debug_level = 0;
+char *ec_master_version_str = EC_MASTER_VERSION; /**< Version string. */
+
+/*****************************************************************************/
+
+/** \cond */
+
+MODULE_AUTHOR("Florian Pose <fp@igh-essen.com>");
+MODULE_DESCRIPTION("EtherCAT TTY driver module");
+MODULE_LICENSE("GPL");
+MODULE_VERSION(EC_MASTER_VERSION);
+
+module_param_named(debug_level, debug_level, uint, S_IRUGO);
+MODULE_PARM_DESC(debug_level, "Debug level");
+
+/** \endcond */
+
+/*****************************************************************************/
+
+/** Module initialization.
+ *
+ * \return 0 on success, else < 0
+ */
+int __init ec_tty_init_module(void)
+{
+ int ret = 0;
+
+ EC_INFO("TTY driver %s\n", EC_MASTER_VERSION);
+
+ return ret;
+}
+
+/*****************************************************************************/
+
+/** Module cleanup.
+ *
+ * Clears all master instances.
+ */
+void __exit ec_tty_cleanup_module(void)
+{
+ EC_INFO("TTY module cleaned up.\n");
+}
+
+/*****************************************************************************/
+
+/** \cond */
+
+module_init(ec_tty_init_module);
+module_exit(ec_tty_cleanup_module);
+
+/** \endcond */
+
+/*****************************************************************************/