# HG changeset patch # User Florian Pose # Date 1259600549 -3600 # Node ID 8c526cfe13991181445b8be625f71477e906b621 # Parent 75e8fd4ec427d906721f62a3c3605f1ff63de9f0 Base files for new TTY driver. diff -r 75e8fd4ec427 -r 8c526cfe1399 Kbuild.in --- 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 + #------------------------------------------------------------------------------ diff -r 75e8fd4ec427 -r 8c526cfe1399 Makefile.am --- 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 diff -r 75e8fd4ec427 -r 8c526cfe1399 configure.ac --- 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 diff -r 75e8fd4ec427 -r 8c526cfe1399 tty/Kbuild.in --- /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) + +#------------------------------------------------------------------------------ diff -r 75e8fd4ec427 -r 8c526cfe1399 tty/Makefile.am --- /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 + +#------------------------------------------------------------------------------ diff -r 75e8fd4ec427 -r 8c526cfe1399 tty/module.c --- /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 +#include + +#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 "); +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 */ + +/*****************************************************************************/