mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-02-06 03:41:52 +08:00
Base files for new TTY driver.
This commit is contained in:
@@ -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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@@ -43,6 +43,10 @@ if ENABLE_USERLIB
|
||||
SUBDIRS += lib
|
||||
endif
|
||||
|
||||
if ENABLE_TTY
|
||||
SUBDIRS += tty
|
||||
endif
|
||||
|
||||
# userspace example depends on lib/
|
||||
SUBDIRS += examples
|
||||
|
||||
@@ -54,7 +58,8 @@ DIST_SUBDIRS = \
|
||||
m4 \
|
||||
master \
|
||||
script \
|
||||
tool
|
||||
tool \
|
||||
tty
|
||||
|
||||
noinst_HEADERS = \
|
||||
globals.h
|
||||
|
||||
25
configure.ac
25
configure.ac
@@ -518,6 +518,29 @@ AC_ARG_ENABLE([userlib],
|
||||
|
||||
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([
|
||||
@@ -548,6 +571,8 @@ AC_CONFIG_FILES([
|
||||
script/init.d/ethercat
|
||||
script/sysconfig/Makefile
|
||||
tool/Makefile
|
||||
tty/Makefile
|
||||
tty/Kbuild
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
||||
|
||||
47
tty/Kbuild.in
Normal file
47
tty/Kbuild.in
Normal file
@@ -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)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
59
tty/Makefile.am
Normal file
59
tty/Makefile.am
Normal file
@@ -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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
98
tty/module.c
Normal file
98
tty/module.c
Normal file
@@ -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 */
|
||||
|
||||
/*****************************************************************************/
|
||||
Reference in New Issue
Block a user